检索YouTube播放列表ID

时间:2019-06-20 09:55:45

标签: youtube-data-api laravel-5.8

我正在使用laravel 5.8并使用此软件包https://github.com/alaouy/Youtube

它可以很好地用于检索视频详细信息和按频道ID播放列表视频。 我想从播放列表URL获取播放列表ID。

我尝试过这种方式:

$string = 'http://www.youtube.com/watch?v=A7izsd5IXq8&playnext=1&list=PL6753173C0F0BE9ED';
$url = parse_url($string);
parse_str($url['query'],$q);
$list = $q['list'];

$video = Youtube::getPlaylistItemsByPlaylistId($list);

但是没有用。 它显示此错误:

  

错误404找不到用请求playlistId参数标识的播放列表。 :playlistNotFound

如果您知道,请帮助。

谢谢!

2 个答案:

答案 0 :(得分:0)

由于未在代码$q中定义,您会收到一条错误消息。因此,您将获得无效的播放列表ID ,从而导致错误。

正如@ miken32在评论中建议的那样,$q不是这里的问题。只是您的播放列表ID 不存在。

尝试一下:

<?php
  $YOUTUBEURL = "http://www.youtube.com/watch?v=A7izsd5IXq8&playnext=1&list=PL6753173C0F0BE9ED";
  $QUERIES = array();
  parse_str(parse_url($YOUTUBEURL)['query'], $QUERIES);
  echo $QUERIES['list']; //playlistid
?>

答案 1 :(得分:0)

您收到该错误消息,因为实际上播放列表PL6753173C0F0BE9ED不存在:

$ wget \
--quiet \
--no-check-certif \
--output-document=- \
--content-on-error \
--user-agent='...' \
'https://www.googleapis.com/youtube/v3/playlistItems?key=...&playlistId=PL6753173C0F0BE9ED&part=contentDetails,id,snippet,status&maxResults=50'
{
 "error": {
  "errors": [
   {
    "domain": "youtube.playlistItem",
    "reason": "playlistNotFound",
    "message": "The playlist identified with the requests \u003ccode\u003eplaylistId\u003c/code\u003e parameter cannot be found.",
    "locationType": "parameter",
    "location": "playlistId"
   }
  ],
  "code": 404,
  "message": "The playlist identified with the requests \u003ccode\u003eplaylistId\u003c/code\u003e parameter cannot be found."
 }
}

在浏览器中检查视频A7izsd5IXq8也不存在。