使用 pytube 库从 csv 下载 youtube 链接

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)

Rac*_*len 5

要安装它,您需要使用

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)