从 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/NAME
或https://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 [重复]