我正在尝试做一个程序来下载带有 pytube 的播放列表的视频,但它不起作用

问题描述

我正在尝试编写一个从 youtube 下载播放列表视频的程序,这是该程序:

from pytube import Playlist
from pytube import YouTube



playlist = Playlist('https://www.youtube.com/playlist?list=PLZ1u221jNfYGCxHU4RbChwG60X-_nq8HK')
print('Number of videos in playlist: %s' % len(playlist.video_urls))
for video_url in playlist.video_urls:
f = open (r'D:\Nueva carpeta (4)\lista_viejas.txt','a')
f.write("\n")
f.write(str(video_url))

f.close()

with open(r'D:\Nueva carpeta (4)\lista_viejas.txt','r') as file1:
with open(r'D:\Nueva carpeta (4)\lista_viejass.txt','r') as file2:
    with open (r'D:\Nueva carpeta (4)\output.txt',"w") as out_file:
        f2_lines = set(file2)
        for line in file1:
            if line not in f2_lines:
                
                yt = YouTube(str(line))
                video = yt.streams.first()
                video.download(r'D:\Nueva carpeta (4)')
                
                out_file.write(line)
                f2_lines.add(line)
                

我不知道为什么会在这部分出现此错误

Exception has occurred: RegexMatchError
regex_search: Could not find match for (?:v=|\/)([0-9A-Za-z_-]{11}).*
File "C:\Users\Andres\Desktop\Untitled-1.py",line 22,in <module>
yt = YouTube(str(line))



yt = YouTube(str(line))
                video = yt.streams.first()
                video.download(r'D:\Nueva carpeta (4)')
                

如果我将参数“line”更改为 line_prove=input(),它会起作用。

解决方法

好吧,我不知道为什么,但我试着用另一种方式写它,我刚刚添加了它的修复

    YouTube(line).streams.first().download(r'D:\Nueva carpeta (4)' 

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...