【问题标题】:Get a youtube ID based on URL API V3?获取基于 URL API V3 的 youtube ID?
【发布时间】:2015-06-15 13:12:13
【问题描述】:

我正在尝试根据任何 youtube URL 获取 youtube id。我生成了一个密钥。事情是基于这个 id 我想像下面的 URL 检索标题和描述

https://www.googleapis.com/youtube/v3/videos?part=snippet&id=MY_ID&key=MY_KEY&alt=json&prettyprint=true

现在我正在使用 PHP 从 ULR 中提取视频 ID,然后使用我在 stackoverflow 中找到的这种方法将其传递到上面的链接

$url_string = parse_url($url, PHP_URL_QUERY);
parse_str($url_string, $args);
return isset($args['v']) ? $args['v'] : false;

这种方法并非每次都奏效。我也尝试了正则表达式,但我遇到了同样的问题。另外,我搜索了https://developers.google.com/youtube/v3/docs/。有什么建议!!

谢谢。

【问题讨论】:

  • 你能给出一个这个方法不起作用的示例 URL 吗?

标签: php youtube


【解决方案1】:

类似的东西会根据 URL 获取 YouTube 电影的标题和描述(将 $url 设置为适当的 URL):

<?php

$url="https://www.youtube.com/watch?v=7SpNHMwwID4";
parse_str(parse_url($url)['query'], $args);

$googleAPI = "https://www.googleapis.com/youtube/v3/videos";
$googleAPI .= "?part=snippet";
$googleAPI .= "&id=" . $args['v'];
$googleAPI .= "&key={YOUR-API-KEY}";

$JSON = file_get_contents($googleAPI);
$videoResponse = json_decode($JSON, true);

?>

<!doctype html>
<html>
  <head>
    <title>Video information</title>
  </head>
  <body>
  Title: <?= $videoResponse['items'][0]['snippet']['title']; ?><br/>
  Description: <?= $videoResponse['items'][0]['snippet']['description']; ?>
  </body>
</html>

您可以使用 YouTube PHP 客户端库执行类似操作(再次适当地设置 $url):

<?php

require_once 'Google/autoload.php';
require_once 'Google/Client.php';
require_once 'Google/Service/YouTube.php';

$client = new Google_Client();
$client->setDeveloperKey('{YOUR-API-KEY}');
$youtube = new Google_Service_YouTube($client);

$url="https://www.youtube.com/watch?v=7SpNHMwwID4";
parse_str(parse_url($url)['query'], $args);

$videoResponse = $youtube->videos->listVideos('snippet', array(
    'id' => $args['v']
));

$title = $videoResponse['items'][0]['snippet']['title'];
$description = $videoResponse['items'][0]['snippet']['description'];
?>

<!doctype html>
<html>
  <head>
    <title>Video information</title>
  </head>
  <body>
  Title: <?= $title ?><br/>
  Description: <?= $description ?>
  </body>
</html>

【讨论】:

  • 此方法不适用于youtube.com/…
  • 我刚刚在顶部代码中尝试了 URL https://www.youtube.com/watch?v=RgKAFK5djSk&amp;list=PLc6GzkmQ1nEscjVMc6OcD1kz-O4JO2FE0,它似乎工作正常。你有错误吗?
  • 您是否收到此代码错误?您提供的示例 URL 对我来说似乎没问题。它对你来说失败了吗?是否有另一个不起作用的示例 URL?
猜你喜欢
  • 2016-01-21
  • 2023-03-31
  • 2014-06-05
  • 2015-12-01
  • 1970-01-01
  • 2015-10-12
  • 2013-01-09
  • 1970-01-01
  • 2018-04-26
相关资源
最近更新 更多