Python 3.x 检查视频是否受年龄限制
您好,我如何搜索视频属性以检查视频是否有年龄限制,如果是,则启动if语句Python 3.x 检查视频是否受年龄限制,python-3.x,youtube,discord,discord.py,youtube-data-api,Python 3.x,Youtube,Discord,Discord.py,Youtube Data Api,您好,我如何搜索视频属性以检查视频是否有年龄限制,如果是,则启动if语句 @commands.command() async def yt(self, ctx, *, search): query_string = urllib.parse.urlencode({'search_query': search}) htm_content = urllib.request.urlopen('http://www.youtube.com/results?' +
@commands.command()
async def yt(self, ctx, *, search):
query_string = urllib.parse.urlencode({'search_query': search})
htm_content = urllib.request.urlopen('http://www.youtube.com/results?' + query_string)
search_results = re.findall(r'/watch\?v=(.{11})',htm_content.read().decode())
await ctx.send('http://www.youtube.com/watch?v=' + search_results[0])
一点背景故事:我将我的机器人提交给top.gg,这是一个机器人托管网站,但它被拒绝了,因为该机器人能够在非NSFW频道发送“NSFW”内容,我真的很想继续工作,所以非常感谢所有帮助根据YouTube的数据API文档,您可以使用以下随年龄限制视频附带的财产: (字符串) YouTube用于识别年龄限制内容的分级 此属性的有效值为:
y受限制
id=VIDEO\u id
传递给它,其中VIDEO\u id
是您感兴趣的视频的id。也不需要忘记包含值contentDetails
的参数
JSON响应文本将包含您在项[0]处需要的值。contentDetails.contentRating.ytRating
;如果与ytAgeRestricted
相等,则应检查该值。还要注意,属性ytRating
很可能不存在;在这种情况下,视频不受年龄限制
在Python的上下文中,如果您正在使用,那么对
Videos.list
端点的调用如下所示:
from googleapiclient.discovery import build
youtube = build('youtube', 'v3', developerKey = APP_KEY)
response = youtube.videos().list(
id = VIDEO_ID,
part = 'contentDetails',
fields = 'items(contentDetails(contentRating(ytRating)))',
maxResults = 1
).execute()
age_restricted = response['items'][0] \
['contentDetails'] \
['contentRating'] \
.get('ytRating') == \
'ytAgeRestricted'
注意,由于没有错误处理,上面的代码被简化了很多
还要注意,上面的代码使用的参数是从端点仅获取
ytRating
属性。只向API询问真正需要的信息总是好的。根据YouTube的Data API文档,您可以使用以下附加到年龄限制视频的属性:
(字符串)
YouTube用于识别年龄限制内容的分级
此属性的有效值为:
y受限制
id=VIDEO\u id
传递给它,其中VIDEO\u id
是您感兴趣的视频的id。也不需要忘记包含值contentDetails
的参数
JSON响应文本将包含您在项[0]处需要的值。contentDetails.contentRating.ytRating
;如果与ytAgeRestricted
相等,则应检查该值。还要注意,属性ytRating
很可能不存在;在这种情况下,视频不受年龄限制
在Python的上下文中,如果您正在使用,那么对
Videos.list
端点的调用如下所示:
from googleapiclient.discovery import build
youtube = build('youtube', 'v3', developerKey = APP_KEY)
response = youtube.videos().list(
id = VIDEO_ID,
part = 'contentDetails',
fields = 'items(contentDetails(contentRating(ytRating)))',
maxResults = 1
).execute()
age_restricted = response['items'][0] \
['contentDetails'] \
['contentRating'] \
.get('ytRating') == \
'ytAgeRestricted'
注意,由于没有错误处理,上面的代码被简化了很多
还要注意,上面的代码使用的参数是从端点仅获取ytRating
属性。从API只询问真正需要的信息总是好的