Search code examples
javavideotwittertwitter4j

Get video url from twitter with twitter4j


Is there anyone who can help me to find video url in twitter post with twitter4j?

I can not find video url with getExtendedMediaEntities() method.

EDIT:

ExtendedMediaEntity[] extendedMediaEntities = status.getExtendedMediaEntities();
                        for (int i = 0; i < extendedMediaEntities.length; i++) {
                            ExtendedMediaEntity extendedMediaEntity = extendedMediaEntities[i];
                            System.out.println("extendedMediaEntity type : "+extendedMediaEntity.getType());
                            String url = extendedMediaEntity.getURL();
                            System.out.println("extended url: "+ extendedMediaEntity.getMediaURL());
                        }

Thank you


Solution

  • You will need to use the Variant on the ExtendedMediaEntities to retrieve the video URL. This will give you multiple URLs in a multiple formats. getExpandedURL() will give you the direct url to the video post.

    Please find below example with the use of variant:

        Paging paging = new Paging();
        paging.setCount(200);
    
        List<Status> statuses = twitter.getHomeTimeline(paging);
        for (Status status : statuses) {
            MediaEntity[] media = status.getMediaEntities();
            ExtendedMediaEntity[] extendedMediaEntities = status.getExtendedMediaEntities();
            for (int i = 0; i < extendedMediaEntities.length; i++) {
                ExtendedMediaEntity extendedMediaEntity = extendedMediaEntities[i];
                ExtendedMediaEntity.Variant[] variant = extendedMediaEntity.getVideoVariants();
                if (extendedMediaEntity.getType().equals("video")) {
                    for (int j = 0; j < variant.length; j++) {
                        System.out.println("variant url: " + variant[j].getUrl());
                    }
                    String url = extendedMediaEntity.getURL();
                    System.out.println("extended url: " + extendedMediaEntity.getExpandedURL());
                }
            }
        }
    

    Which will give the output like below:

    variant url: https://video.twimg.com/amplify_video/829771724442959873/pl/jKd0KfMseDh88K0s.m3u8 variant url:

    https://video.twimg.com/amplify_video/829771724442959873/vid/1280x720/QtF1QLexBBjcpt_L.mp4 variant url: https://video.twimg.com/amplify_video/829771724442959873/vid/320x180/b-bsY76n5VkngoAo.mp4 variant url: https://video.twimg.com/amplify_video/829771724442959873/vid/640x360/YjWDVec8gD19LHOE.mp4 extended url: https://twitter.com/mashable/status/918201793208762368/video/1