2010-09-03 54 views
8

youtube-dl的YouTube-DL簡單的隊列是一個Python腳本,讓一個下載YouTube視頻。它支持批量下載的選項:在Linux shell中

-a FILE, --batch-file=FILE
包含文件可下載的網址( - 爲標準輸入「」)我想建立某種形式的隊列,這樣我可以簡單地追加網址

一個文件並且有youtube-dl處理它們。目前,它不會從批處理文件中刪除文件。我看到了' - 'stdin的選項,不知道我是否可以利用這個優勢。

實際上,我想運行youtube-dl某種形式的守護進程,這將檢查隊列文件並下載包含文件名。

我該怎麼做?

回答

4

尾巴-f將無法工作,因爲腳本一次讀取所有輸入。

如果您修改腳本來執行批處理文件的連續讀取它將工作。

然後只需運行該腳本:

% ./youtube-dl -a batch.txt -c 

當你一些數據追加到batch.txt,說:

% echo "http://www.youtube.com/watch?v=j9SgDoypXcI" >>batch.txt 

該腳本將開始下載附加的視頻批次。

這是你應適用於最新版本的 「YouTube的-DL」 補丁:

2278,2286d2277 
<  while True: 
<   batchurls = batchfd.readlines() 
<   if not batchurls: 
<    time.sleep(1) 
<    continue 
<   batchurls = [x.strip() for x in batchurls] 
<   batchurls = [x for x in batchurls if len(x) > 0] 
<   for bb in batchurls: 
<    retcode = fd.download([bb]) 

希望它能幫助, 快樂視頻觀看 ;

注):由於代碼重組這個補丁將不再起作用。將有興趣看看這是否可以添加到上游代碼。

1

你也許能夠逃脫使用tail -f從文件中讀取。它在到達文件結尾時不會退出,但會等待更多數據附加到文件。

>video.queue # erase and/or create queue file 
tail -f video.queue | youtube-dl -a - 

由於tail -f不退出,youtube-dl應繼續從標準輸入和永遠不會退出讀取文件名。