首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >YouTube接口,拉取一个频道上的所有视频

YouTube接口,拉取一个频道上的所有视频
EN

Stack Overflow用户
提问于 2013-09-23 15:07:07
回答 8查看 289.4K关注 0票数 253

我们需要一个频道名为YouTube的视频列表(使用接口)。

我们可以通过以下接口获取频道列表(只有频道名称):

代码语言:javascript
复制
https://gdata.youtube.com/feeds/api/channels?v=2&q=tendulkar

下面是渠道的直接链接

代码语言:javascript
复制
https://www.youtube.com/channel/UCqAEtEr0A0Eo2IVcuWBfB9g

代码语言:javascript
复制
WWW.YouTube.com/channel/HC-8jgBP-4rlI

现在,我们需要>> UCqAEtEr0A0Eo2IVcuWBfB9g频道或HC-8jgBP-4rlI频道的视频。

我们试过了

https://gdata.youtube.com/feeds/api/videos?v=2&uploader=partner&User=UC7Xayrf2k0NZiz3S04WuDNQ https://gdata.youtube.com/feeds/api/videos?v=2&uploader=partner&q=UC7Xayrf2k0NZiz3S04WuDNQ

但是,这并没有帮助。

我们需要所有发布在频道上的视频。上传到一个频道的视频可能来自多个用户,因此我不认为提供用户参数会有帮助……

EN

回答 8

Stack Overflow用户

发布于 2013-12-27 14:00:01

您需要查看YouTube Data API。您可以在那里找到有关如何访问API的文档。您还可以找到client libraries

您也可以自己提出请求。以下是一个从频道检索最新视频的示例URL:

代码语言:javascript
复制
https://www.googleapis.com/youtube/v3/search?key={your_key_here}&channelId={channel_id_here}&part=snippet,id&order=date&maxResults=20

之后,您将收到一个包含视频ids和详细信息的JSON,您可以这样构建您的视频地址:

代码语言:javascript
复制
http://www.youtube.com/watch?v={video_id_here}
票数 259
EN

Stack Overflow用户

发布于 2015-01-10 10:27:02

首先,您需要从用户/频道获取代表上传内容的播放列表的ID:

https://developers.google.com/youtube/v3/docs/channels/list#try-it

您可以使用forUsername={username}参数指定用户名,或者指定mine=true来获取您自己的用户名(您需要先进行身份验证)。包含part=contentDetails以查看播放列表。

代码语言:javascript
复制
GET https://www.googleapis.com/youtube/v3/channels?part=contentDetails&forUsername=jambrose42&key={YOUR_API_KEY}

在结果中,"relatedPlaylists"将包含"likes""uploads"播放列表。获取"upload"播放列表ID。还要注意,"id"是您的channelID,以备将来参考。

接下来,获取该播放列表中的视频列表:

https://developers.google.com/youtube/v3/docs/playlistItems/list#try-it

只需在playlistId中使用!

代码语言:javascript
复制
GET https://www.googleapis.com/youtube/v3/playlistItems?part=snippet%2CcontentDetails&maxResults=50&playlistId=UUpRmvjdu3ixew5ahydZ67uA&key={YOUR_API_KEY}
票数 162
EN

Stack Overflow用户

发布于 2017-11-15 00:32:08

下面是一个不需要任何特殊包的Python替代方案。通过提供频道id,它返回该频道的视频链接列表。请注意,您需要一个API Key才能使其工作。

代码语言:javascript
复制
import urllib
import json

def get_all_video_in_channel(channel_id):
    api_key = YOUR API KEY

    base_video_url = 'https://www.youtube.com/watch?v='
    base_search_url = 'https://www.googleapis.com/youtube/v3/search?'

    first_url = base_search_url+'key={}&channelId={}&part=snippet,id&order=date&maxResults=25'.format(api_key, channel_id)

    video_links = []
    url = first_url
    while True:
        inp = urllib.urlopen(url)
        resp = json.load(inp)

        for i in resp['items']:
            if i['id']['kind'] == "youtube#video":
                video_links.append(base_video_url + i['id']['videoId'])

        try:
            next_page_token = resp['nextPageToken']
            url = first_url + '&pageToken={}'.format(next_page_token)
        except:
            break
    return video_links
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18953499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档