2015-06-04 18 views
2

Вопрос: Я работаю с twitter API сейчас и когда публикация содержит видео. Twitter возвращает только эскизы эскизов, а не основной URL-адрес видеофайла. Twitter возвращает такие JSON:Получить twitter video mp4 url ​​

["media_url"]=> string(86) "http://pbs.twimg.com/ext_tw_video_thumb/../pu/img/p1R5iC_7fN-lqNuK.jpg" 
["media_url_https"]=> string(87) "https://pbs.twimg.com/ext_tw_video_thumb/.../pu/img/p1R5iC_7fN-lqNuK.jpg" 
["url"]=> string(22) "http://t.co/UViL9KykF*" 
["expanded_url"]=> string(63) "http://twitter.com/.../status/..../video/1" 

И первые два являются jpg, а другие URL перенаправляются прямо на почту. Как я использую PHP, чтобы получить всю информацию, для vine.co был такой код:

$dom = new DomFinder($media_url); 
$video_cell = $dom->find("//meta[@property='twitter:player:stream']", 'content'); 

Но щебет не имеет таких мета-теги, и я не могу найти способ, чтобы получить доступ к видео-файл. Возможно, кто-то знает, как получить URL-адрес mp4?

ответ

3

Сотрудники Twitter сообщили here, что они не будут поддерживать выбор видео, используя поиск. Вам нужно будет получить видео с другим вызовом API.

Допустим, у вас есть твит неправдоподобным, используя поиск/твиты, сохраненные в $ твит

// 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); 
    } 
} 

Пример результата

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) 
Смежные вопросы