На сайте, который я разрабатываю, я вставляю видео с YouTube и хочу получить название видео и его описание.
Как мне получить эту информацию?
На сайте, который я разрабатываю, я вставляю видео с YouTube и хочу получить название видео и его описание.
Как мне получить эту информацию?
Чтобы получить элемент ОПИСАНИЕ, вам нужно получить доступ к версии видеоданных 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");
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');
}
});
Вы можете сделать это с помощью oembed. Пример:
http://www.youtube.com/oembed?url=http%3A//youtube.com/watch%3Fv%3DM3r2XDceM6A&format=json
Я немного читал эту тему. Я сделал что-то подобное, используя 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), чтобы просмотреть все доступные вам значения.
gdata больше не доступен
вы можете использовать вместо этого
https://www.googleapis.com/youtube/v3/videos?part=snippet&id=(Video_ID)&key=(API_Key)
Я бы начал с изучения API данных Youtube, чтобы получить то, что вы хотите: http://code.google.com/apis/youtube/getting_started.html#data_api
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
.