Использование библиотеки Pytube для загрузки ссылок YouTube из CSV
Я пытаюсь использовать библиотеку 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
1 ответ
Для его установки необходимо использовать
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
являются необязательными, (расширение, имя файла и разрешение)
Однако для вас я бы посоветовал, пожалуй, лучше всего поместить их все в плейлист, а затем использовать превосходный загрузчик плейлистов Python Youtube от Jordan Mear.
В сноске обычно все [внешние] библиотеки должны быть импортированы. Подробнее об импорте вы можете прочитать здесь, в онлайн-уроках по питону
Вы можете сделать что-то вроде этого:
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