如何在 youtube 上搜索视频并获得 link 和 python
How to search videos on youtube and get link with python
我正在尝试根据 YouTube 上的歌曲名称和艺术家姓名搜索歌曲,并尝试获取出现在搜索队列中的第一个视频的 link 并下载该视频,但我面对这个错误。你能帮我解决这个错误吗?
这就是我尝试实现的方式......
import re
import urllib.request
import urllib.parse
i=0
for a in artists:
for t in titles:
input = urllib.parse.urlencode({'search_query': titles[i] + ' by ' + artists[i]})
#html = requests.get("https://www.youtube.com/results?search_query=" + s_k)
html = urllib.request.urlopen("http://www.youtube.com/results?" + input)
video_ids = re.findall(r'href=\"\/watch\?v=(.{11})', html.read().decode())
print("https://www.youtube.com/watch?v=" + video_ids[0])
i+=1
if i == 809:
break
[此处,'titles' 是歌曲名称列表,'artists' 是艺术家列表。 809 是两个列表的长度]
但我明白了
这个错误意味着 video_ids 列表是空的,因为它的第一个索引,即 0,超出了范围。您可以将其包装在 try except 块中:
try:
print("https://www.youtube.com/watch?v=" + video_ids[0])
except IndexError:
pass
我正在尝试根据 YouTube 上的歌曲名称和艺术家姓名搜索歌曲,并尝试获取出现在搜索队列中的第一个视频的 link 并下载该视频,但我面对这个错误。你能帮我解决这个错误吗?
这就是我尝试实现的方式......
import re
import urllib.request
import urllib.parse
i=0
for a in artists:
for t in titles:
input = urllib.parse.urlencode({'search_query': titles[i] + ' by ' + artists[i]})
#html = requests.get("https://www.youtube.com/results?search_query=" + s_k)
html = urllib.request.urlopen("http://www.youtube.com/results?" + input)
video_ids = re.findall(r'href=\"\/watch\?v=(.{11})', html.read().decode())
print("https://www.youtube.com/watch?v=" + video_ids[0])
i+=1
if i == 809:
break
[此处,'titles' 是歌曲名称列表,'artists' 是艺术家列表。 809 是两个列表的长度]
但我明白了
这个错误意味着 video_ids 列表是空的,因为它的第一个索引,即 0,超出了范围。您可以将其包装在 try except 块中:
try:
print("https://www.youtube.com/watch?v=" + video_ids[0])
except IndexError:
pass