web-dev-qa-db-fra.com

Comment obtenir le titre d'une vidéo youtube si j'ai l'identifiant vidéo?

Je joue maintenant avec l'API Youtube et j'ai commencé un petit projet (pour le plaisir).

Le problème est que je ne peux pas trouver le moyen d'obtenir le titre d'une vidéo à partir de l'ID. (exemple: ylLzyHk54Z0)

J'ai consulté la documentation de l'API DATA et PLAYER et je ne la trouve pas.

Si quelqu'un sait comment faire cela ou si quelqu'un pourrait m'aider à trouver le moyen de le faire, veuillez m'aider.

REMARQUE: j'utilise javascript. Ce sera une application web.

EDIT: J'ai une idée. Peut-être en utilisant une expression régulière pour analyser le titre du titre de la page. J'y travaille.

31
Aaron de Windt

Pas tout à fait possible en javascript car vous essayez d'obtenir un document d'un autre domaine. Si vous êtes content de jeter un peu de php, essayez ceci. Testé ok:

<?
    $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>
36
SimonDever

C'est ainsi que vous pouvez le faire avec JavaScript et l'API de données YouTube V3.

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);
});
25
cbaigorri

Appel http://gdata.youtube.com/feeds/api/videos/ylLzyHk54Z0.

Dans ce fichier XML, lisez la valeur de <title> tag.

Documentation YouTube Api

15
powtac

Vous pouvez utiliser une demande JSON pour: http://gdata.youtube.com/feeds/api/videos/ylLzyHk54Z0?v=2&alt=jsonc

14
CamelCamelCamel

Cette réponse est exacte en décembre 2015.

Pour obtenir le titre vidéo à partir d'un identifiant vidéo YouTube, vous devrez créer l'URL suivante, à l'aide de l'API YouTube Data (vous devez utiliser une clé API, sinon la demande échouera):

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

Faites une demande GET et vous obtiendrez une réponse JSON similaire au fragment ci-dessous. Pour le titre, il existe dans le snippet/title clé.

{
   "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"
            }
         }
      }
   ]
}

Pour plus d'informations, visitez la page de documentation de l'API .

4
Robert Sim

Les réponses de Robert Sim et cbaigorri étaient les meilleures, c'est la bonne façon de le faire en ce moment avec JS, demandez GET à:

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

Une petite spécification à ce sujet: vous pouvez utiliser des ID de vidéo YouTube séparés par des virgules pour obtenir plusieurs informations sur les vidéos en une seule demande.

Pour obtenir 1 vidéo, remplacez {YOUTUBE_VIDEO_ID} avec ID vidéo (ex: 123456) Pour obtenir plus de vidéos en une seule demande, remplacez {YOUTUBE_VIDEO_ID} avec des ID séparés par des virgules (ex: 123456,234567,345678,456789)

Cela comptera comme une seule demande dans les quotas, de cette façon, vous pouvez obtenir beaucoup de détails vidéo avec seulement 1 coût de quota/demande.

2
mFlorin

Le titre de la vidéo est dans l'API et accessible en JavaScript en utilisant la notation par points:

the_name_of_your_video_object.A.videoData.title
2
AaronS

Ma solution est:

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

Cela obtient le titre de la vidéo.

1
jruzafa

Au lieu d'utiliser http://gdata.youtube.com/feeds/api/videos/ ....

Si vous avez chargé la vidéo, vous pouvez utiliser la méthode getVideoData () de l'objet lecteur pour récupérer des informations sur la vidéo, y compris le titre. Il retournera un objet qui contient: video_id, author, title.

1
whamsicore