Com*_*ind 20 youtube-api youtube-data-api
我想要一种从 YouTube API 获取特定频道的 YouTube 短片的方法。我到处找遍了,但什么也没找到。
目前我可以使用此端点获取所有频道视频的播放列表ID:
request = youtube.channels().list(
part="contentDetails",
id=id
)
Run Code Online (Sandbox Code Playgroud)
我也尝试过这些参数:
request = youtube.channels().list(
part="snippet,contentDetails,statistics,brandingSettings",
id=id
)
Run Code Online (Sandbox Code Playgroud)
那么有没有办法从 YouTube API 或任何其他来源(如果可用)获取特定频道的 YouTube 短片。
Joo*_*uur 24
无需使用 API 即可检测 YouTube 视频 ID 是否为 Short 的一种方法是尝试对/shorts/
URL 版本发出 HEAD HTTP 请求,看看它是否会重定向您。
https://www.youtube.com/shorts/hKwrn5-7FjQ是一个短视频,如果您访问该网址,您将获得 HTTP 状态代码 200,并且该网址不会更改。
https://www.youtube.com/watch?v=B-s71n0dHUk不是 Short,如果您访问https://www.youtube.com/shorts/B-s71n0dHUk,您会收到 303 重定向回原始网址。
请记住,此行为可能会发生变化,但从 2022 年 5 月开始有效。
Ben*_*son 12
YouTube Data API v3 似乎再次没有提供基本功能。
我建议您使用我的开源 YouTube 操作 API。事实上,通过请求包含布尔值的JSON 文档https://yt.lemnoslife.com/videos?part=short&id=VIDEO_IDitem["short"]["available"]
,您的问题就解决了。
短 ID 示例:ydPkyvWtmg4
我建议您使用我的开源 YouTube 操作 API。事实上,通过请求 JSON 文档https://yt.lemnoslife.com/channels?part=shorts&id=CHANNEL_ID。该条目item["shorts"]
包含您正在查找的数据。请注意,分页的工作方式与YouTube Data API v3 的分页相同。
通道结果示例UC5O114-PQNYkurlTg6hekZw
:
{
"kind": "youtube#channelListResponse",
"etag": "NotImplemented",
"items": [
{
"kind": "youtube#channel",
"etag": "NotImplemented",
"id": "UC5O114-PQNYkurlTg6hekZw",
"shorts": [
{
"videoId": "fP8nKVauFwc",
"title": "India: United Nations Counter Terrorism Committee Watch LIVE #shorts",
"thumbnails": [
{
"url": "https:\/\/i.ytimg.com\/vi\/fP8nKVauFwc\/hq720_2.jpg?sqp=-oaymwEYCNAFENAFSFryq4qpAwoIARUAAIhC0AEB&rs=AOn4CLCgJEYgv_msT5pkfWeEEN3VBt4wjg",
"width": 720,
"height": 720
}
],
"viewCount": 3700
},
...
],
"nextPageToken": "4qmFsgLlARIYVUM1TzExNC1QUU5Za3VybFRnNmhla1p3GsgBOGdhU0FScVBBVktNQVFxSEFRcGZRME00VVVGU2IyWnZaMWxqUTJob1ZsRjZWbEJOVkVVd1RGWkNVbFJzYkhKa1dFcHpWa2RqTW1GSFZuSlhibU5SUVZOSlVrTm5PSGhQYWtVeVRtcGplVTE2VlRST2FrVXdUbXBCY1VSUmIweFhWRUl5VGtab1dGSllSbGRNVmtVU0pEWXpOakJoTkRVNUxUQXdNREF0TWpKaE15MDRObUV6TFdRMFpqVTBOMlZqWVRSbFl4Z0I=,CgtuNjFmZlJlR0QxcyiVgICbBg=="
}
]
}
Run Code Online (Sandbox Code Playgroud)
小智 9
'creatorContentType'
您可以使用从Youtube Analytics 和 Reports API调用的新维度。
// You can get IDs from PlaylistItems or Search API
const IDs = ["videoID1", "videoID2", "videoID3"];
// Get the analytics data of selected videos based on their IDs
const { data: analyticsData } = await youtubeAnalytics.reports.query({
ids: "channel==MINE",
startDate: "2019-01-01",
// Today's date
endDate: new Date().toISOString().split("T")[0],
metrics: "views",
dimensions: "video,creatorContentType",
filters: `video==${IDs.join(",")}`,
access_token,
});
Run Code Online (Sandbox Code Playgroud)
它基本上返回下面列出的值:
价值 | 描述 |
---|---|
现场直播 | 观看的内容是 YouTube 直播。 |
短裤 | 观看的内容是 YouTube Short。 |
故事 | 观看的内容是 YouTube 故事。 |
视频点播 | 观看的内容是不属于其他维度值之一的 YouTube 视频。 |
未指定 | 所查看内容的内容类型未知。 |
笔记:
小智 9
查看可以从API检索的播放列表ID contentDetails.relatedPlaylists.uploads
,我们可以看到频道ID开头的“UC”被替换为“UU”。
可以使用相同的格式,通过将频道ID开头的“UC”替换为“UUSH”来获得仅包含短视频的播放列表。
例如,频道 ID “UCutJqz56653xV2wwSvut_hQ”将导致播放列表 ID “UUSHutJqz56653xV2wwSvut_hQ”。
此外,还存在其他前缀:
字首 | 内容 |
---|---|
超超低频 | 视频 |
超超低电压 | 热门视频 |
超低电压 | 直播 |
UUMF | 会员专享视频 |
乌莫 | 会员专享内容(视频、短视频和直播) |
UMS | 会员专享短视频 |
无人无人车辆 | 会员专享直播 |
联合不间断电源 | 热门短视频 |
超超无人车辆 | 热门直播 |
乌苏什 | 短视频 |
不过,这个模式是我通过获取从“UUAA”到“UUZZ”的所有播放列表发现的,YouTube并未正式公布。
归档时间: |
|
查看次数: |
21357 次 |
最近记录: |