The*_*ard 4 python csv video python-3.x pytube
我正在尝试使用pytube 库下载我在 .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
Run Code Online (Sandbox Code Playgroud)
要安装它,您需要使用
pip install pytube
Run Code Online (Sandbox Code Playgroud)
然后在你的代码中运行
from pytube import YouTube
Run Code Online (Sandbox Code Playgroud)
不过,我还没有看到将它与 csv 一起使用的任何代码示例,您确定它受支持吗?
您可以直接使用例如通过命令行下载
$ pytube -e mp4 -r 720p -f Dancing Scene from Pulp Fiction http://www.youtube.com/watch?v=Ik-RsDGPI5Y
Run Code Online (Sandbox Code Playgroud)
-e, -f和-r是可选的,(扩展名、文件名和分辨率)
但是对你来说,我建议最好的办法是将它们全部放在一个播放列表中,然后使用 Jordan Mear 出色的Python Youtube 播放列表下载器
在脚注中,通常需要导入所有 [外部] 库。您可以在 python 在线教程中阅读有关此处导入的更多信息
你也许可以做这样的事情:
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
Run Code Online (Sandbox Code Playgroud)