是否可以通过创建随机网址来访问随机的 YouTube 视频

问题描述 投票:0回答:1

我正在尝试通过创建随机 ID 来查找随机视频。根据我的逻辑,我为链接创建随机视频 ID 并检查其 html。如果视频存在,则有多个视频 id,例如 15 或 20。如果不是有效的 url,则 html 中只有 5 或 6 个视频 id。

import urllib.request
import re
import random
import string

def random_url():
    #There is random 11 digit after v=
    url_base = "https://www.youtube.com/watch?v="

    for _ in range(11):
        url_base += (random.choice(string.ascii_letters + string.digits))

    #valid videos has at least 10 video id on the html. 
    #Thats how code i check it is valid video or not
    html = urllib.request.urlopen(url_base)
    video_ids = re.findall(r"watch\?v=(\S{11})", html.read().decode())
    
    if len(video_ids) < 10:
        print(url_base)
        return random_url()
    else:
        print(video_ids)
        print(url_base)
        print("done")


random_url()

当我测试时,检测工作正常,但在递归限制出现之前我找不到任何视频。我该怎么办?

python url youtube
1个回答
0
投票

正如 Eduardo 的评论中提到的,在达到递归限制之前,您不太可能找到视频。

因此,递归在这里不是正确的方法。

解决此问题的一个简单方法是用循环替换递归。 让

random_url
返回一些内容(例如,表示是否找到视频的布尔值),然后您可以循环直到找到这样的视频:

while not random_url():
    pass

当然,这仍然不是一个有效的解决方案,但至少不会遇到递归的限制。

© www.soinside.com 2019 - 2024. All rights reserved.