Подтвердить что ты не робот

Получение заголовка и описание встроенного видео YouTube

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

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

4b9b3361

Ответ 1

Чтобы получить элемент ОПИСАНИЕ, вам нужно получить доступ к версии видеоданных 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");

Ответ 2

API Youtube 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');
     }   
    });

Ответ 3

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

http://www.youtube.com/oembed?url=http%3A//youtube.com/watch%3Fv%3DM3r2XDceM6A&format=json

Ответ 4

Я немного читал эту тему. Я сделал что-то подобное, используя 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), чтобы просмотреть все доступные вам значения.

Ответ 7

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.