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.
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>
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);
});
Appel http://gdata.youtube.com/feeds/api/videos/ylLzyHk54Z0
.
Dans ce fichier XML, lisez la valeur de <title>
tag.
Vous pouvez utiliser une demande JSON pour: http://gdata.youtube.com/feeds/api/videos/ylLzyHk54Z0?v=2&alt=jsonc
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 .
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.
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
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.
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.