我试图使用pytube library下载我在.csv文件上的一堆链接。
修改
工作代码:
import sys
reload(sys)
sys.setdefaultencoding('Cp1252')
import os.path
from pytube import YouTube
from pprint import pprint
import csv
with open('onedialectic.csv', 'rb') as f:
reader = csv.reader(f)
for row in reader:
try:
yt = YouTube(row[1])
path = os.path.join('/videos/',row[0])
path2 = os.path.join(path + '.mp4')
print(path2)
if not os.path.exists(path2) :
print(row[0] + '\n')
pprint(yt.get_videos())
yt.set_filename(row[0])
video = yt.get('mp4', '360p')
video.download('/videos')
except Exception as e:
print("Passing on exception %s", e)
continue
答案 0 :(得分:4)
要安装它,您需要使用
pip install pytube
然后在你的代码中运行
from pytube import YouTube
我还没有看到任何使用csv的代码示例,你确定它支持吗?
您可以使用例如
直接通过命令行下载$ pytube -e mp4 -r 720p -f Dancing Scene from Pulp Fiction http://www.youtube.com/watch?v=Ik-RsDGPI5Y
-e
,-f
和-r
是可选的,(扩展程序,文件名和分辨率)
但是对于你我建议也许最好的办法就是将它们全部放在一个播放列表中然后使用Jordan Mear的优秀Python Youtube Playlist Downloader
在脚注中,通常需要导入所有[外部]库。您可以在此处详细了解导入,in the python online tutorials
你可以这样做:
import csv
from pytube import YouTube
vidcsvreader = csv.reader(open("videos.csv"), delimiter=",")
header1 = vidcsvreader.next() #header
for id, url in vidcsvreader:
yt = url #assign url to var
#set resolution and filetype
video = yt.get('mp4', '720p')
# set a destination directory for download
video.download('/tmp/')
break