Search code examples
phpvideotwitter

using php to get videos from twitter


Been looking for a while now so it's time to ask. How is it I can get the twitter videos in my custom php feed. I can pull in the photos urls no problem using something like..

$tweet->entities->media[0]->media_url;

But I cannot find a solution to get a user feeds video url, or even a poster image url for the video would be great too.


Solution

  • Let's say you have a tweet fetched using search/tweets saved in $tweet

    // Check if tweet has media
    if (!empty($tweet->entities->media)) {
        $searchArray = array(
            "id" => $tweet->id, // id of the tweet we just fetched
            "include_entities" => true // tells twitter API to return videos and stuff
        );
    
        // Get extended_entities
        $extendedEntities = $connection->get("statuses/show", $searchArray);
        foreach($extendedEntities->extended_entities->media as $media){
            var_dump($media->video_info->variants);
        }
    }
    

    Example result

    array (size=6)
      0 => 
        object(stdClass)[265]
          public 'bitrate' => int 832000
          public 'content_type' => string 'video/webm' (length=10)
          public 'url' => string 'https://video.twimg.com/ext_tw_video/560049056895209473/pu/vid/480x480/gj_fzyk29R9dMPBY.webm' (length=92)
      1 => 
        object(stdClass)[266]
          public 'bitrate' => int 832000
          public 'content_type' => string 'video/mp4' (length=9)
          public 'url' => string 'https://video.twimg.com/ext_tw_video/560049056895209473/pu/vid/480x480/gj_fzyk29R9dMPBY.mp4' (length=91)
      2 => 
        object(stdClass)[267]
          public 'bitrate' => int 1280000
          public 'content_type' => string 'video/mp4' (length=9)
          public 'url' => string 'https://video.twimg.com/ext_tw_video/560049056895209473/pu/vid/720x720/S7F4BF2wKR2txCpA.mp4' (length=91)
      3 => 
        object(stdClass)[268]
          public 'content_type' => string 'application/dash+xml' (length=20)
          public 'url' => string 'https://video.twimg.com/ext_tw_video/560049056895209473/pu/pl/udxtIM8FytsAE4HQ.mpd' (length=82)
      4 => 
        object(stdClass)[269]
          public 'bitrate' => int 320000
          public 'content_type' => string 'video/mp4' (length=9)
          public 'url' => string 'https://video.twimg.com/ext_tw_video/560049056895209473/pu/vid/240x240/v5jqpUNnkaeuVZbx.mp4' (length=91)
      5 => 
        object(stdClass)[270]
          public 'content_type' => string 'application/x-mpegURL' (length=21)
          public 'url' => string 'https://video.twimg.com/ext_tw_video/560049056895209473/pu/pl/udxtIM8FytsAE4HQ.m3u8' (length=83)