Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 检查视频是否受年龄限制_Python 3.x_Youtube_Discord_Discord.py_Youtube Data Api - Fatal编程技术网

Python 3.x 检查视频是否受年龄限制

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?' +

您好,我如何搜索视频属性以检查视频是否有年龄限制,如果是,则启动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?' + 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受限制
您必须调用API端点,将参数作为
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受限制
您必须调用API端点,将参数作为
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只询问真正需要的信息总是好的