youtube-dl安裝和使用

youtube-dl是網上開發的專門用於下載Youtube視頻的軟件,但它真正牛逼的地方在於還支持其它視頻網站的下載,包括愛情動作片們,其中pornhub,xvideo等赫然在列,甚至還有國內的優酷網、B站等。


以下是安裝方法,使用的系統是debian,若因爲時間間隔太久,該方法失效,則可以直接參考軟件作者寫的最新方法(https://rg3.github.io/youtube-dl/download.html),作者用的是sudo,我是直接在root下安裝的,等我什麼時候弄懂了怎麼開sudo再寫篇文吧。


我沒裝curl,所以用的是wget。若wget沒裝,可以先裝wget:

apt-get update

apt-get install wget -y


接下來是安裝youtube-dl兩行代碼:

# wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl

# chmod a+rx /usr/local/bin/youtube-dl


安裝完後就可以開始直接使用了。


首先因爲youtube-dl會下載到當前的目錄,所以需要確保當前的目錄是哪邊,一般如果是root登錄的話,目錄就是/root,如果不想下載到root目錄下,可以用mkdir新建一個目錄,比如如下代碼會新建一個叫Test的目錄:

mkdir Test


然後使用cd命令進入到該目錄下:

cd ./Test

這就進入到root下面新建的Test目錄裏。可以使用點號.來代替當前所在的目錄地址,這樣目錄地址就不用打全了。下面這段代碼的結果和上面是一樣的,點號.取代了/root目錄:

cd /root/Test


若要回到上層目錄可以使用如下代碼:

cd --


進入到Test目錄裏後就可以使用youtube-dl下載視頻了

語法: youtube-dl 視頻網址

代碼: youtube-dl http://...


youtube-dl會自動下載最佳的視頻格式。


若不想現在最佳格式,也可以用以下代碼查看可供下載的格式:


youtube-dl -F https://www.youtube.com/watch?v=lW9Uudkx42g


 

然後選中想下載的格式,比如想下載138:


youtube-dl -f 138 https://www.youtube.com/watch?v=lW9Uudkx42g


youtube-dl -f 138 https://www.youtube.com/watch?v=lW9Uudkx42g

 

以上就是youtube-dl的簡單操作,該操作的侷限在於不能離線,也就是說如果SSH終端不小心被關掉,或者甚至網絡連接不穩定導致SSH鏈接斷掉,則下載自動終止。


--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

每次用youtube-dl下載視頻都需要先去指定的下載文件夾比較麻煩。下面的操作可以自動將下載完成的視頻移動到指定的文件夾。


代碼

youtube-dl -v --exec "mv {} ./Downloads/{}" 視頻地址

參數:

mv :linux移動文件的命令

{} :這個是獲取文件名參數

./Downloads/:此文件夾是當前root目錄下面的Downloads文件夾,當然也可以移動到根目錄下的非root文件夾下

視頻地址接受批量下載


更方便的操作是讓vps將指定的文件夾路徑“記住”,每次下載的時候都調用該路徑。比如我同時還安裝了transmission方便BT離線下載,我可以把下載好的小電影移動到該transmission的下載文件夾,方便我隨時將視頻做種。


方法:

root目錄下有一個.config文件夾,可以在該文件夾下創建一個配置目錄:

mkdir ./.config/youtube-dl/


編輯config文件,加入需要的參數:

vi ./.config/youtube-dl/config


以下是我自己的參數內容:

-o /root/Downloads/%(title)s.%(ext)s

--external-downloader aria2c

--external-downloader-args "-x 16 -k 1M"

--exec "mv {} /var/lib/transmission/Downloads/"

第一行是下載的地址及命名規則:root目錄下的Downloads文件夾

第二行調用aria2c外部命令

第三行設置下載進程數和塊

第四行是目標保存地址:我安裝的transmission設置的Downloads文件夾


保存完config文件後,就可以試運行下載一個視頻看是否保存到了/var/lib/transmission/Downloads:youtube-dl 視頻地址

驗證成功!

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------


上面講了youtube-dl在vps上的安裝及簡單操作方法,但該方法其實只相當於一個開着的瀏覽器,瀏覽器關掉後,下載也就停掉了。這一篇主要涉及怎麼利用youtube-dl對愛情動作片進行批量下載,並讓下載在我們離線的時候也一直進行。


這裏面會用到screen、文檔編輯等操作。


準備工作:安裝screen(如果第一次使用)

使用下面代碼安裝screen,Debian下使用apt-get,Centos下使用yum:

apt-get install screen -y


方法一:直接貼網址


使用screen命令開一個session,命名該session,比如就叫video:

screen -S video

注意S要大寫,這時SSH終端會把你帶到一個空窗口。


然後使用語法youtube-dl 鏈接1 鏈接2 鏈接3 … … 就能進行批量下載了,代碼:

youtube-dl https://www.pornhub.com/view_video.php?viewkey=1763364088 https://www.pornhub.com/view_video.php?viewkey=1164813484 https://www.pornhub.com/view_video.php?viewkey=ph565707fb861b7

有多少鏈接就貼多少鏈接。


方法二:將鏈接全部保存到一個txt文件裏,一行一個

這種方法的好處是,SSH不是隨時都能用,碰到好的視頻可以先把它保存下來,然後回到家裏利用FTP上傳到需要下載的目錄。不過下面講的是現場在SSH裏製作txt文件。


首先使用cd命令去到你打算使用的下載文件夾。本例中使用的文件夾名爲Downloads。


使用vi,vim,或者nano命令新建一個txt或bat文件,這裏取名download.txt/download.bat,後者是一個批處理文件格式,將你打算下載的愛情動作片網頁鏈接保存在該txt文件裏,一行一個網址,文件保存在Downloads文件夾下面。


使用以下命令去到該文件夾裏面:

cd ./Downloads


使用screen命令開一個session,然後貼下面的代碼:

youtube-dl -ci --batch-file=download.txt

-ci 可有可無,= 可有可無


這時vps就開始下載了,貼張圖,是我正在下載的小電影:


接下來我們可以退出這個session,讓它安靜的在後臺跑着,我們可以去做其他事了,或者就可以直接關掉SSH。


退出session使用快捷鍵ctr+a, d或者ctr+a,ctr+d,~~注意快捷鍵需要在英文輸入環境下,不能在中文輸入法下,即便現在的中文輸入法在shift操作下會轉換爲英文輸入也不可以。~~退出session叫detach session。從下面的截圖我們甚至可以看出,雖然我們給這個session取名video,但screen會分配一串數字給這個session,然後在screen裏它的全名就是62718.video


使用以下命令可以再進去該session,查看下載進程,速度不是很快,所以很適合離線下載:

screen -r video


下載完後,我們可以使用如下代碼將該session給刪掉,如果不刪的話,這個session會一直保存在vps裏,如果下次再開一個screen,使用同樣一個名字,等我們再打算進去的時候,screen就不知道你打算進哪個video session了,它會把所有取名video的session都給列出來,所以爲了方便起見,最好下載好後還是把進程給殺掉。這裏我把這個取名叫video的session給刪掉:

screen -S video -X kill

或者

screen -S video -X quit

或者進入某個session後,按ctr+a,再按:quit

至於quit和kill兩者有何區別,暫時還在研究中。。。


如果我們不慎沒有把session刪掉,然後開了好幾個session,可以使用下面代碼來列出目前的session清單:

screen -ls


然後就可以使用上面講到的操作把某個session給刪掉了。或者刪掉全部的session:

pkill screen or

killall screen


如果session都已死的話,可以使用:

screen -wipe


下載完後,我們可以用FTP軟件把下載的小電影全部保存到本地硬盤裏。


最後養成良好的打掃衛生習慣,將保存好的小電影全部刪掉,節省vps硬盤空間。我們可以在FTP裏刪除,但如果文件太多的話,速度會非常慢。這時可以使用如下代碼來進行文件刪除:

首先用cd命令進入Downloads文件夾,然後:

rm *.mp4 -f


以上通配符將任何媒體格式是MP4的文件刪掉,當然我們可以使用字母和結合的方式來刪除特定的文件。


以下代碼會將Downloads文件夾下的所有文件全部刪掉:

rm *.*


-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

youtube-dl有一個寫入歷史下載鏈接的方法,此方法確保將所有已下載的視頻鏈接地址寫入一個archive文件,這樣在以後下載,特別是批量下載的時候,已經下載過的視頻youtube-dl會自動跳過。語法是–archive-download /…archive文件的保存路徑…/archive.txt,比如root裏Downloads文件夾下有一個批量視頻鏈接文件list.txt,裏面寫了所有打算下載的視頻鏈接地址,使用代碼:


youtube-dl --batch-file /root/Downloads/list.txt --download-archive /root/Downloads/archive.txt

該代碼就會將所有下載後的鏈接寫入archive.txt文件,如果archive.txt文件裏有相同的鏈接,youtube-dl就會跳過下載該鏈接的視頻,同時再結合其它諸如下載視頻自動移動命令等工具,最大化利用youtube-dl的強大功能。


-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

下載youtube播放列表

youtube-dl -cit https://www.youtube.com/playlist?list=PLCJcQMZOafICYrx7zhFu_RWHRZqpB8fIW

找到列表,複製並替換掉PLCJcQMZOafICYrx7zhFu_RWHRZqpB8fIW即可。

例如下載播放列表選擇質量最好的MP4格式的視頻 -i跳過錯誤

youtube-dl -cit -f mp4  https://www.youtube.com/playlist?list=PLCJcQMZOafICYrx7zhFu_RWHRZqpB8fIW


那如何獲取視頻列表呢?其實我們只需要獲取到這一串列表碼即可,如PLCJcQMZOafIC81DKkddectaYwp20xDMwf。


進入用戶的播放列表界面,例如:https://www.youtube.com/user/GreatOnlineTutorials/playlists,並在源碼中找到每個播放列表的list值,拼接在https://www.youtube.com/playlist/?list=後面即可。


列表按需下載

  有時候我們在下載一個不斷更新的視頻,那麼我們可以使用--playlist-start、--playlist-end 參數進行數據的下載。


youtube-dl -f 135 -cit --playlist-start 65  https://www.youtube.com/playlist\?list\=PLrrWFMyom0IocKsc1ukKFxOljEg7IT_W3


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章