从 Youtube 自定义 URL 获取 ChannelID

Posted

技术标签:

【中文标题】从 Youtube 自定义 URL 获取 ChannelID【英文标题】:Get ChannelID from Youtube Custom URL 【发布时间】:2018-03-06 12:30:24 【问题描述】:

有没有什么方法可以通过自定义 url(使用 Youtube API)来获取 Youtube 频道的频道 ID?

例子:

自定义 url 是这样的:

https://www.youtube.com/onepiece

我想得到它的channelID,这样我就有了这样的链接:

www.youtube.com/user/OnePieceUK

【问题讨论】:

请提供完整的网址示例 How can I get a channel ID from YouTube?这个可能的副本中查看答案和cmets 当我拥有 channelID 或用户名时,我已经在使用该请求。它与这种情况不同,因为这是一个自定义 URL 我认为this answer 概述了我见过的唯一解决方案。 【参考方案1】:

详细说明this answer of mine,我将在此处注意以下事实:

    https://www.youtube.com/c/NAMEhttps://www.youtube.com/NAME 形式的YouTube 网址中,NAME 是频道的custom URL。 (请参阅来自 Google 支持的 this official account。)

    https://www.youtube.com/user/NAME 形式的 YouTube 网址中,NAME 是频道的用户名。用户名是 API v3 的遗留功能;并非每个频道都附有一个;没有频道需要连接一个。 (请参阅 2013 年 7 月 11 日 Google 员工的this official statement。)

两个 API 概念 - 自定义 URL用户名 - 包含两个不同的类别。

上面引用的我的答案引用的公共(MIT 许可)Python 3 脚本 youtube-search.py 能够搜索自定义 URL 的 API 并分别查询 API 以获取用户名:

$ python3 youtube-search.py --custom-url onepiece
UC6LPb3zSebrzU_0Yclpwb4Q

$ python3 youtube-search.py --user-name OnePieceUK
UC6LPb3zSebrzU_0Yclpwb4Q

请注意,youtube-search.py 需要将有效的 API 密钥作为命令行选项 --app-key 的参数传递给它,否则,作为环境变量 YOUTUBE_DATA_APP_KEY 传递给它。 (使用命令行选项--help 获取简要帮助信息。)

【讨论】:

【参考方案2】:

我最近有一个类似的要求,我知道 youtube 频道的自定义 URL,并且我想获取频道 ID。所以我去了 YouTube 频道并点击了一个随机视频以从网络浏览器 url 获取视频 ID。获得视频 ID 后,我使用“视频:列表”API 获取视频详细信息:

https://youtube.googleapis.com/youtube/v3/videos?part=snippet&id=[VEDIO_ID]&key=[YOUR_API_KEY]

调整后的数据包含有关视频的所有元数据信息,包括 ChannelId :-)。

这可能不是最聪明和最优雅的做事方式,但它解决了我的目的。

【讨论】:

【参考方案3】:

试试这个

import requests
from bs4 import BeautifulSoup

resp = requests.get('https://www.youtube.com/onepiece')
soup = BeautifulSoup(resp.text, 'html.parser')

channel_id = soup.select_one('meta[property="og:url"]')['content'].strip('/').split('/')[-1]

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于从 Youtube 自定义 URL 获取 ChannelID的主要内容,如果未能解决你的问题,请参考以下文章

使用自定义字段从 Youtube 或 Vimeo 嵌入背景视频

从 youtube 嵌入 url 获取 YouTube ID [重复]

如何从 url 获取 youtube 视频 ID

从Youtube URL获取Youtube ID(也支持缩短的URL)

如何从 url 获取 youtube 标题、描述

如何从 URL 获取 YouTube 视频 ID?