2018/10/28

下載串流影片跟轉檔最簡單快速的方法之一

現在影音串流媒體盛行,從最熱門到最經典的影片都找得到,搜尋時若看到市面上早就絕版或很難買到的DVD,興奮之餘更會想離線收藏以便能隨時欣賞,也有很多人也習慣先在上面試聽音質較差的歌曲MV,真的喜歡的話就會再去 kkbox、Spotify 訂閱下載或購買正版的專輯。

因為有測試跟教學的需求,我們就來學習一下幾個簡單的工具跟指令,完全不需要在 Chrome 或 Firefox 上安裝常失效的插件,或是用些有些疑慮的線上服務,以 macOS 來做示範( windows 也是可安裝):
先打開終端機,輸入下面指令:

sudo mkdir -p /usr/local/bin/        按enter
輸入密碼
sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl       按enter
會出現安裝進度如下圖
因為要修改一下資料夾讀跟執行的權限,請輸入下面指令:
sudo chmod a+rx /usr/local/bin/youtube-dl

安裝結束,就是這麼簡單,可以開始來玩這隻超強的下載工具了

*若有裝Homebrew就更容易,遇到不能下載情形可更新到最新版本試看看
brew upgrade youtube-dl

1.我們先來測試下載單一個檔案:


請輸入 youtube-dl 加上 <youtube網址>就搞定。
範例:
youtube-dl https://www.youtube.com/watch?v=tgACxkD2vFs

但是呢,你會發現它下載到家目錄去了(Macintosh HD/使用者/使用者名稱),而且格式為 .webm 怎麼播

2.先來更改一下儲存的位置到 Download(下載項目)資料夾吧。

mkdir -p ~/.config/youtube-dl/    按enter

echo "-o ~/Downloads/%(title)s-%(id)s.%(ext)s" > ~/.config/youtube-dl/config   按enter


3.檢查一下此影片有哪些格式可下載?

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

[youtube] 37rl8uz7WjA: Downloading webpage
[youtube] 37rl8uz7WjA: Downloading video info webpage
[info] Available formats for 37rl8uz7WjA:
format code  extension  resolution note
249          webm       audio only DASH audio   57k , opus @ 50k, 1.79MiB
250          webm       audio only DASH audio   75k , opus @ 70k, 2.34MiB
140          m4a        audio only DASH audio  128k , m4a_dash container, mp4a.40.2@128k, 4.23MiB
171          webm       audio only DASH audio  135k , vorbis@128k, 3.94MiB
251          webm       audio only DASH audio  144k , opus @160k, 4.53MiB
160          mp4        256x144    144p  112k , avc1.4d400c, 30fps, video only, 3.21MiB
278          webm       256x144    144p  143k , webm container, vp9, 30fps, video only, 3.18MiB
242          webm       426x240    240p  227k , vp9, 30fps, video only, 6.66MiB
133          mp4        426x240    240p  311k , avc1.4d4015, 30fps, video only, 6.25MiB
243          webm       640x360    360p  410k , vp9, 30fps, video only, 11.75MiB
134          mp4        640x360    360p  656k , avc1.4d401e, 30fps, video only, 13.12MiB
244          webm       854x480    480p  760k , vp9, 30fps, video only, 19.70MiB
135          mp4        854x480    480p 1273k , avc1.4d401f, 30fps, video only, 22.70MiB
247          webm       1280x720   720p 1523k , vp9, 30fps, video only, 35.87MiB
136          mp4        1280x720   720p 2302k , avc1.4d401f, 30fps, video only, 38.16MiB
248          webm       1920x1080  1080p 2658k , vp9, 30fps, video only, 60.36MiB
137          mp4        1920x1080  1080p 4344k , avc1.640028, 30fps, video only, 66.81MiB
17           3gp        176x144    small , mp4v.20.3, mp4a.40.2@ 24k, 2.63MiB
36           3gp        320x180    small , mp4v.20.3, mp4a.40.2, 7.46MiB
18           mp4        640x360    medium , avc1.42001E, mp4a.40.2@ 96k, 23.36MiB (best)

轉檔成.mp4的方法為加上 -f mp4 參數
youtube-dl -f mp4 https://www.youtube.com/watch?v=37rl8uz7WjAj

要轉成音檔就選 m4a 格式吧
youtube-dl -f m4a https://www.youtube.com/watch?v=37rl8uz7WjAj

若想自定名稱可下o這個參數
youtube-dl -f m4a -o "LiQWYD - Vibes.%(ext)s" https://www.youtube.com/watch?v=FOkBLrUkNfQ

初學者到這邊應該就夠了,但想要嵌入字幕或轉檔時,就必須安裝 ffmpeg ,此刻可用 Homebrew 來安裝

腳本執行時會解釋它正在做什麼,看不懂也沒關係,照著下面一步一步做就沒問題。
一樣在終端機內,複製貼上下面這段指令:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
跑到一半一樣要按 enter 輸入密碼


之後會出現 xcode 更新,點選【安裝】就好,不用取得 Xcode 不然會裝很久,若出現無法安裝訊息,先點選【好】關掉視窗。



接著到【系統偏好設定】,【軟體更新】那邊會出現 Command Line Tools for Xcode,立即更新。

安裝 Command Line Tools 需一些時間。

裝好後,再輸入一次
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

接著跑一段時間看到這畫面應該就把 Homebrew 裝起來了

接著安裝 ffmpeg 吧,輸入下面指令即可:
brew install ffmpeg libav
好了,現在可以任意轉檔囉,譬如:
youtube-dl --extract-audio --audio-format mp3 https://www.youtube.com/watch?v=XXXXXX

成功了,有沒有很高興?我們接著看下去。

4.如何將下載的影片嵌入字幕?
有些影片有其他CC字幕,嵌入字幕的指令可以這樣下:

youtube-dl https://www.youtube.com/watch?v=tgACxkD2vFs --write-sub --embed-sub --sub-lang zh-TW -f mp4

[youtube] tgACxkD2vFs: Downloading webpage
[youtube] tgACxkD2vFs: Downloading video info webpage
[info] Writing video subtitles to: /Users/nick/Downloads/XXXX 02.zh-TW.vtt
[download] Destination: /Users/nick/Downloads/XXXX 02.mp4
[download] 100% of 64.69MiB in 00:13
[ffmpeg] Embedding subtitles in '/Users/nick/Downloads/XXXX 02.mp4'
Deleting original file /Users/nick/Downloads/XXXX 02.zh-TW.vtt (pass -k to keep)

若是簡中:zh-CN,英文:en

5.如何下載整個播放清單?
這個就神了,也只要把網址換成清單網址就行了,像這樣。
youtube-dl https://www.youtube.com/playlist?list=PLOUluTNba70828EyuWRPKborrJzj3DXT_ -f m4a

沒幾秒,播放清單中的影片就下載完並直接轉成歌曲了。

如果做到這邊都沒問題,恭喜你功力已經進步很多了,若還是出現一些小狀況,可更新套件看看是否有新版本。
brew update && brew upgrade && brew cleanup

該工具還有非常多功能跟參數可玩,有需要的人就自行去研究吧。
https://github.com/rg3/youtube-dl

ffmpeg 安裝失敗或不會用 youtube-dl 的人可看這篇 《使用 MediaHuman 音樂轉檔

至於私人或不公開的影片...,就要使用 flvretriever 這個大絕招了。


參考資料:
https://gsyan888.blogspot.com/2014/04/tools-youtube-dl.html

沒有留言: