Как получить название видео на YouTube, если у меня есть идентификатор видео? - PullRequest
30 голосов
/ 19 ноября 2009

Я сейчас играю с YouTube API и начал небольшой проект (для удовольствия).

Проблема в том, что я не могу найти способ получить название видео с идентификатора. (пример: ylLzyHk54Z0)

Я просмотрел документацию API DATA и PLAYER и не могу ее найти.

Если кто-то знает, как это сделать, или если кто-то может помочь мне найти способ сделать это, пожалуйста, помогите мне.

ПРИМЕЧАНИЕ. Я использую JavaScript. Это будет веб-приложение.

РЕДАКТИРОВАТЬ: У меня есть идея. Может быть, используя регулярные выражения, чтобы разобрать заголовок из заголовка страницы. Я работаю над этим.

Ответы [ 9 ]

36 голосов
/ 19 ноября 2009

Не совсем возможно в javascript, так как вы пытаетесь получить документ из другого домена. Если вы рады добавить немного php, попробуйте это. Протестировано нормально:

<?
    $vidID = $_POST['vidID'];
    $url = "http://gdata.youtube.com/feeds/api/videos/". $vidID;
    $doc = new DOMDocument;
    $doc->load($url);
    $title = $doc->getElementsByTagName("title")->item(0)->nodeValue;
?>

<html>
    <head>
        <title>Get Video Name</title>
    </head>
    <body>
        <form action="test.php" method="post">
            <input type="text" value="ID Here" name="vidID" />
            <input type="submit" value="Get Name" />
        </form>
        <div id="page">URL: [<?= $url ?>]</div>
        <div id="title">Title: [<?= $title ?>]</div>
    </body>
</html>
23 голосов
/ 25 мая 2015

Вот как это можно сделать с помощью JavaScript и API данных V3 YouTube.

var ytApiKey = "...";
var videoId = "ylLzyHk54Z0";

$.get("https://www.googleapis.com/youtube/v3/videos?part=snippet&id=" + videoId + "&key=" + ytApiKey, function(data) {
  alert(data.items[0].snippet.title);
});
15 голосов
/ 19 ноября 2009

Звоните http://gdata.youtube.com/feeds/api/videos/ylLzyHk54Z0.

В этом XML-файле прочитайте значение тега <title>.

Документация YouTube Api

14 голосов
/ 31 мая 2012

Вы можете использовать запрос JSON для: http://gdata.youtube.com/feeds/api/videos/ylLzyHk54Z0?v=2&alt=jsonc

4 голосов
/ 08 декабря 2015

Этот ответ точен по состоянию на декабрь 2015 года.

Чтобы получить заголовок видео из идентификатора видео YouTube, вам нужно будет создать следующий URL-адрес, используя API данных YouTube (необходимо использовать ключ API, в противном случае запрос не будет выполнен):

https://www.googleapis.com/youtube/v3/videos?part=snippet&id={YOUTUBE_VIDEO_ID}&fields=items(id%2Csnippet)&key={YOUR_API_KEY}

Сделайте запрос GET, и вы получите ответ JSON, аналогичный приведенному ниже. Для заголовка он существует в ключе snippet/title.

{
   "items":[
      {
         "id":"Jglv0A0qLI8",
         "snippet":{
            "publishedAt":"2014-06-30T03:42:20.000Z",
            "channelId":"UCdTU5vd37FlTZ-xoB0xzRDA",
            "title":"AIA Malaysia - A-Plus Venus Plan - Comprehensive Female Protection and Insurance Plan",
            "description":"A comprehensive female protection plan for the modern women\n\nFor more information visit: http://www.aia.com.my/en/individuals/products-and-services/health/a-plus-venus-a-plus-venus-extra.html\n\nFor more products, visit AIA Malaysia's Products and Services playlist:\nhttps://www.youtube.com/playlist?list=PLSrgVT3aQ1fZ3SCe-dEVnFJDApBYkqolP\n\nFor more videos. subscribe to AIA Malaysia's YouTube channel:\nhttps://www.youtube.com/channel/UCdTU5vd37FlTZ-xoB0xzRDA",
            "thumbnails":{
               "default":{
                  "url":"https://i.ytimg.com/vi/Jglv0A0qLI8/default.jpg",
                  "width":120,
                  "height":90
               },
               "medium":{
                  "url":"https://i.ytimg.com/vi/Jglv0A0qLI8/mqdefault.jpg",
                  "width":320,
                  "height":180
               },
               "high":{
                  "url":"https://i.ytimg.com/vi/Jglv0A0qLI8/hqdefault.jpg",
                  "width":480,
                  "height":360
               },
               "standard":{
                  "url":"https://i.ytimg.com/vi/Jglv0A0qLI8/sddefault.jpg",
                  "width":640,
                  "height":480
               },
               "maxres":{
                  "url":"https://i.ytimg.com/vi/Jglv0A0qLI8/maxresdefault.jpg",
                  "width":1280,
                  "height":720
               }
            },
            "channelTitle":"AIA Malaysia",
            "tags":[
               "aia",
               "aia malaysia",
               "a-plus venus",
               "female health insurance",
               "female life insurance",
               "female insurance",
               "female medical insurance"
            ],
            "categoryId":"27",
            "liveBroadcastContent":"none",
            "localized":{
               "title":"AIA Malaysia - A-Plus Venus Plan - Comprehensive Female Protection and Insurance Plan",
               "description":"A comprehensive female protection plan for the modern women\n\nFor more information visit: http://www.aia.com.my/en/individuals/products-and-services/health/a-plus-venus-a-plus-venus-extra.html\n\nFor more products, visit AIA Malaysia's Products and Services playlist:\nhttps://www.youtube.com/playlist?list=PLSrgVT3aQ1fZ3SCe-dEVnFJDApBYkqolP\n\nFor more videos. subscribe to AIA Malaysia's YouTube channel:\nhttps://www.youtube.com/channel/UCdTU5vd37FlTZ-xoB0xzRDA"
            }
         }
      }
   ]
}

Для получения дополнительной информации посетите страницу документации API .

2 голосов
/ 12 апреля 2016

Ответы Роберта Сима и cbaigorri были лучшими, это правильный способ сделать это в настоящее время с JS, сделайте GET запрос:

https://www.googleapis.com/youtube/v3/videos?part=snippet&id={YOUTUBE_VIDEO_ID}&fields=items(id,snippet)&key={YOUR_API_KEY}

Небольшое уточнение по этому поводу: Вы можете использовать разделенные запятыми идентификаторы YouTube, чтобы получить информацию о нескольких видео за один запрос.

Чтобы получить 1 видео, замените {YOUTUBE_VIDEO_ID} идентификатором видео (например: 123456) Чтобы получить больше видео за один запрос, замените {YOUTUBE_VIDEO_ID} идентификаторами, разделенными запятыми (например: 123456,234567,345678,456789)

Это будет учитываться как один запрос в квотах, таким образом, вы можете получить много деталей видео всего за 1 квоту / стоимость запроса.

2 голосов
/ 07 октября 2014

Заголовок видео находится в API и доступен в JavaScript с использованием точечной нотации:

the_name_of_your_video_object.A.videoData.title
1 голос
/ 14 августа 2015

Вместо использования http://gdata.youtube.com/feeds/api/videos/....

Если у вас загружено видео, вы можете использовать метод getVideoData () объекта проигрывателя для получения информации о видео, включая заголовок. Он вернет объект, который содержит: video_id, author, title.

1 голос
/ 20 декабря 2013

Мое решение:

$xmlInfoVideo    = simplexml_load_file("http://gdata.youtube.com/feeds/api/videos/".$videoId."?v=2&fields=title");

foreach($xmlInfoVideo->children() as $title) { $videoTitle = strtoupper((string) $title); }

Это название заголовка видео.

...