Python版YouTube下载器argv索引越界问题求助
解决Python YouTube下载器的IndexError问题
错误原因
IndexError: list index out of range是因为你运行脚本时没有传入YouTube链接作为命令行参数。sys.argv列表里默认只有脚本文件名这一个元素,argv[1]试图访问不存在的第二个元素,所以触发索引越界错误。
解决方案
方法1:通过命令行传参运行
打开终端,切换到脚本所在目录,运行时在脚本名后加上YouTube链接:
python yt_downloader.py "https://www.youtube.com/watch?v=你的视频ID"
方法2:修改代码支持手动输入链接(更适合新手)
如果不想每次用命令行传参,改成让用户输入链接的方式,操作更简单:
# 必须导入pytube的YouTube类 from pytube import YouTube # 让用户手动输入视频链接 link = input("请输入YouTube视频链接:") yt = YouTube(link) print("Title: ", yt.title) print("View: ", yt.views) yd = yt.streams.get_highest_resolution() # 若YTfolder目录不存在,要么提前创建,要么改为当前目录(直接写yd.download()) yd.download('./YTfolder')
额外注意事项
- 原代码缺少
from pytube import YouTube导入语句,必须补上,否则会报NameError: name 'YouTube' is not defined。 - 确保已安装pytube库,未安装的话在终端执行:
pip install pytube - 如果
./YTfolder目录不存在,下载时会报错,建议提前创建该文件夹,或者将下载路径改为当前目录(去掉路径参数,直接用yd.download())
内容的提问来源于stack exchange,提问作者papayacodding
相关产品推荐
相关产品推荐

