2015-02-18 4 views
1

Мне удалось взломать мой первый скрипт! Что он делает, так это то, что он переходит к суб-reddit, получает верхнюю подачу, а затем загружает видео с помощью youtube-dl. и он работает!YouTube-dl, чтобы скачать и назвать видео от Reddit

import praw 
import os 

user_agent = "mybot" 

r = praw.Reddit(user_agent=user_agent) 

submissions = r.get_subreddit('unexpectedjihad').get_top(limit=10) 
urls = [] 
def yt() : 
    for x in submissions: 
     urls.append(str(x.url)) 
    return urls 

yt_urls = yt() 

for item in yt_urls: 
    print "downloading..." + " " 
    os.system("youtube-dl" + " " + item) 
    print "done" 

То, что я хочу делать дальше, чтобы получить Youtube-ДЛ, чтобы установить имя файла такой же, как название представления Reddit.

Я очень смущен, думая о том, как мне следует согласовать видеозапись заголовка видеофайла. Как мне это сделать? Спасибо большое

ответ

1

По the docs, вы хотите передать -o на YouTube-DL, EG:

for item in submissions: 
    os.system('youtube-dl -o {}.%(ext)s {}'.format(item.title, item.url)) 

Однако, учитывая проблемы, которые могут возникнуть в результате этого, вложение YDL непосредственно может быть проще , EG:

import youtube_dl 
# ... reddit stuff here ... 

for item in submissions: 
    # see options at https://github.com/rg3/youtube-dl/blob/master/youtube_dl/YoutubeDL.py#L89 
    ydl_opts = {'outtmpl': item.title + '.%(ext)s'} 
    with youtube_dl.YoutubeDL(ydl_opts) as ydl: 
     ydl.download([item.url, ]) 
+0

Примечание: вам необходимо «s» после (ext), согласно документам. I.e., '% (ext) s' вместо'% (ext) '. – piojo

+1

@piojo, обновлено, спасибо! –

+0

Кроме того, вы должны справиться с тем, что заголовок будет содержать пробелы. Я думаю, вам нужно передать отдельные аргументы, чтобы это работало. – piojo

 Смежные вопросы

  • Нет связанных вопросов^_^