Получение заголовка и описания встроенного видео на YouTube - PullRequest
14 голосов
/ 01 марта 2011

На разрабатываемом мной сайте я встраиваю видео с YouTube и хочу получить заголовок видео и его описание.

Как получить эту информацию?

Ответы [ 7 ]

13 голосов
/ 20 мая 2015

Youtube API V2.0 устарело.В заголовке "youtube.com/devicesupport" указано неправильное значение .pLease включите API V3.0

Вы можете ссылаться на следующий код PHP и изменять свой в js или jquery в соответствии с вашими потребностями.

function youtube_title($id) {
 $id = 'YOUTUBE_ID';
// returns a single line of JSON that contains the video title. Not a giant request.
$videoTitle = file_get_contents("https://www.googleapis.com/youtube/v3/videos?id=".$id."&key=YOUR_API_KEY&fields=items(id,snippet(title),statistics)&part=snippet,statistics");
// despite @ suppress, it will be false if it fails
if ($videoTitle) {
$json = json_decode($videoTitle, true);

return $json['items'][0]['snippet']['title'];
} else {
return false;
}
}

обновление:

Jquery-код для получения заголовка-

 $.getJSON('https://www.googleapis.com/youtube/v3/videos?id={VIDEOID}&key={YOUR API KEY}&part=snippet&callback=?',function(data){
    if (typeof(data.items[0]) != "undefined") {
        console.log('video exists ' + data.items[0].snippet.title);
       } else {
        console.log('video not exists');
     }   
    });
10 голосов
/ 09 декабря 2012

Чтобы получить элемент DESCRIPTION , вам нужно получить доступ к gdata-версии информации о видео, и вы можете вернуть json, используя alt = json в пути. В этом случае oHg5SJYRHA0 - это идентификатор видео, найденный в конце URL-адреса видео, с которым вы работаете на YouTube, например, www.youtube.com/watch?v=oHg5SJYRHA0

http://gdata.youtube.com/feeds/api/videos/oHg5SJYRHA0?v=2&alt=json&prettyprint=true

(симпатичный отпечаток форматирует, чтобы его было легко читать, он вам не нужен для того, что вы делаете)

Вы можете получить JSON, добавить его в переменную и получить к нему доступ с помощью jQuery:

var youTubeURL = 'http://gdata.youtube.com/feeds/api/videos/oHg5SJYRHA0?v=2&alt=json';
var json = (function() {
    var json = null;
    $.ajax({
        'async': false,
        'global': false,
        'url': youTubeURL,
        'dataType': "json",
        'success': function(data) {
            json = data;
        }
    });
    return json;
})();

Затем получите к нему доступ, используя обозначение объекта:

alert("Title: " + json.entry.title.$t +"\nDescription:\n " + json.entry.media$group.media$description.$t + "\n");
7 голосов
/ 01 марта 2011

Вы можете сделать это с помощью oembed .Пример:

http://www.youtube.com/oembed?url=http%3A//youtube.com/watch%3Fv%3DM3r2XDceM6A&format=json
1 голос
/ 21 июня 2015

gdata больше не доступен

Вы можете использовать следующее

https://www.googleapis.com/youtube/v3/videos?part=snippet&id=(Video_ID)&key=(API_Key)

1 голос
/ 05 марта 2013

Я читаю эту тему немного с задержкой. Я сделал что-то подобное, используя jSON и YT API

$json = json_decode( file_get_contents("http://gdata.youtube.com/feeds/api/videos/".$rs['vid']."?v=2&prettyprint=true&alt=jsonc") );

Примечание: $ rs ['vid'] - это идентификатор видео, динамически извлеченный из моей БД.

После того, как вы поместили содержимое в дескриптор $ json, вы можете извлечь его так:

$json->data->description;
$json->data->title;

используйте var_dump ($ json) для просмотра всех значений, к которым у вас есть доступ.

0 голосов
/ 19 июня 2017

GData устарела, но все еще можно получить описание видео, позвонив по этой конечной точке:

https://www.googleapis.com/youtube/v3/videos?part=snippet&id=[video_id]&key=[api_key]

Будет возвращен ответ в форме:

{
 "kind": "youtube#videoListResponse",
 "etag": "\"...\"",
 "pageInfo": {
  "totalResults": 1,
  "resultsPerPage": 1
 },
 "items": [
  {
   "kind": "youtube#video",
   "etag": "\"...\"",
   "id": "...",
   "snippet": {
    "publishedAt": "...",
    "channelId": "...",
    "title": "...",
    "description": "...",
    "thumbnails": { ... },
    "channelTitle": "...",
    "tags": [ ... ],
    "categoryId": "...",
    "liveBroadcastContent": "...",
    "localized": {
     "title": "...",
     "description": "..."
    },
    "defaultAudioLanguage": "..."
   }
  }
 ]
}

Описание можно найти на items.localized.description.

0 голосов
/ 01 марта 2011

Я бы начал с просмотра API данных Youtube, чтобы получить то, что вы хотите: http://code.google.com/apis/youtube/getting_started.html#data_api

...