[教學] 如何下載 Youtube 音樂 Playlist 及轉換成 wav/mp3 format

可以使用 Linux Ubuntu Terminal 或 Windows WSL2 Ubuntu
  1. sudo apt update
  2. sudo apt install wget python3 python-is-python3 ffmpeg
  3. wget https://github.com/yt-dlp/yt-dlp/releases/download/2022.09.01/yt-dlp
  4. sudo mv yt-dlp /usr/local/bin/
  5. sudo chmod +x /usr/local/bin/yt-dlp
  6. # download youtube playlist and convert to wav format e.g.
  7. yt-dlp -x --audio-format wav https://www.youtube.com/playlist?list=OLAK5uy_kvYl6SDSIWUZ7loEGQlwzF7j04xzWvoZQ -o "%(playlist_index)s%(title)s.%(ext)s"

  8. # download youtube playlist and convert to mp3 format e.g.
  9. yt-dlp -x --audio-format mp3 https://www.youtube.com/playlist?list=OLAK5uy_kvYl6SDSIWUZ7loEGQlwzF7j04xzWvoZQ -o "%(playlist_index)s%(title)s.%(ext)s"
複製代碼

本帖最後由 javacomhk 於 2022-9-12 09:30 編輯

用 ffmpeg 將 wav 檔案壓縮及轉換成 flac 檔案
  1. for i in *.wav; do ffmpeg -i "$i" -b:a 1411k -c:a flac "${i%.*}.flac"; done
複製代碼
  1. # download youtube playlist and convert to mp3 format with highest quality 0 (where 5 is default and 9 is the lowest quality) e.g.
  2. yt-dlp -x --audio-format mp3 --audio-quality 0 https://www.youtube.com/playlist?list=OLAK5uy_kvYl6SDSIWUZ7loEGQlwzF7j04xzWvoZQ -o "%(playlist_index)s %(title).100s.%(ext)s"
複製代碼

TOP

求下載youtube劇集Playlist及轉換成mp4 format教學

TOP

本帖最後由 javacomhk 於 2022-9-12 09:32 編輯
求下載youtube劇集Playlist及轉換成mp4 format教學
YES_MAN 發表於 2022-9-11 17:06
  1. yt-dlp -i -f mp4 -o "%(playlist_index)s %(title).100s.%(ext)s" https://www.youtube.com/playlistlist=PLoo_UwkN4zlTr1V6NlVJlqzc2qku67VNg
複製代碼
如需要放在 subfolder 及縮短 title 長度, 例如
  1. yt-dlp -i -f mp4 -o "%(playlist).7s/%(playlist_index)s %(title).17s.%(ext)s" https://www.youtube.com/playlist?list=PLoo_UwkN4zlTr1V6NlVJlqzc2qku67VNg
複製代碼
如需要同時下載英文 srt 字幕, 例如
  1. yt-dlp --write-sub --sub-lang en --convert-subs=srt -i -f mp4 -o "%(playlist).11s/%(playlist_index)s %(title)s.%(ext)s" https://www.youtube.com/playlist?list=PLcviVtB85dLz6FqYlCZyclPsCpP_VV3I9
複製代碼

TOP

本帖最後由 javacomhk 於 2022-9-22 06:41 編輯

將  Youtube 音樂影片分開 chapters
例如 以下 youtube 影片是分開 3 個 chapters
  1. yt-dlp https://www.youtube.com/watch?v=hrxTh9m-xQw --dump-json  | jq --raw-output ".chapters[].title"
複製代碼
以下指令便可以將 youtube  影片下載及轉換為  mp3 並根據 chapters 自動分開3 部份。
  1. yt-dlp https://www.youtube.com/watch?v=hrxTh9m-xQw  -x --audio-format mp3 --audio-quality 0 --split-chapters -o "%(title)s\%(chapter_number)s. %(chapter_title)s.%(ext)s"
複製代碼
但一些 Youtube 音樂並沒有分開 chapters,只可以手動分開
例如 以下 youtube 影片,首先下載及轉換為  mp3
  1. yt-dlp https://www.youtube.com/watch?v=OvgIJdqcPpc  -x --audio-format mp3 --audio-quality 0
複製代碼
然後用 ffmpeg  根據開始及結束的時間,手動分開歌曲,例如
  1. ffmpeg -ss 00:00:00 -to 00:03:14  -i 'The Judds - All-Time Greatest Hits (FULL GREATEST HITS ALBUM) [OvgIJdqcPpc].mp3' -c copy '01. Mama He’s Crazy.mp3'
  2. ffmpeg -ss 00:03:14 -to 00:06:43  -i 'The Judds - All-Time Greatest Hits (FULL GREATEST HITS ALBUM) [OvgIJdqcPpc].mp3' -c copy '02. Why Not Me.mp3'
  3. ffmpeg -ss 06:43 -to 09:37  -i 'The Judds - All-Time Greatest Hits (FULL GREATEST HITS ALBUM) [OvgIJdqcPpc].mp3' -c copy '03. Girls Night Out.mp3'
  4. ffmpeg -ss 09:37 -to 13:34 -i 'The Judds - All-Time Greatest Hits (FULL GREATEST HITS ALBUM) [OvgIJdqcPpc].mp3' -c copy '04. Love Is Alive.mp3'
  5. ffmpeg -ss 13:34 -to 16:55 -i 'The Judds - All-Time Greatest Hits (FULL GREATEST HITS ALBUM) [OvgIJdqcPpc].mp3' -c copy '05. Have Mercy.mp3'
  6. ffmpeg -ss 16:55 -to 21:10 -i 'The Judds - All-Time Greatest Hits (FULL GREATEST HITS ALBUM) [OvgIJdqcPpc].mp3' -c copy '06. Grandpa (Tell Me ‘Bout the Good Old Days).mp3'
  7. ffmpeg -ss 21:10 -to 23:50 -i 'The Judds - All-Time Greatest Hits (FULL GREATEST HITS ALBUM) [OvgIJdqcPpc].mp3' -c copy '07. Rockin’ With the Rhythm of the Rain.mp3'
  8. ffmpeg -ss 23:50 -to 27:33 -i 'The Judds - All-Time Greatest Hits (FULL GREATEST HITS ALBUM) [OvgIJdqcPpc].mp3' -c copy '08. Cry Myself to Sleep.mp3'
  9. ffmpeg -ss 27:33 -to 30:01 -i 'The Judds - All-Time Greatest Hits (FULL GREATEST HITS ALBUM) [OvgIJdqcPpc].mp3' -c copy '09. Don’t Be Cruel.mp3'
複製代碼
當然也可以一句指令去分開歌曲如下
  1. ffmpeg -i 'The Judds - All-Time Greatest Hits (FULL GREATEST HITS ALBUM) [OvgIJdqcPpc].mp3' -ss 30:01 -to 33:39 -c copy -y '10. I Know Where I’m Going.mp3' -ss 33:39 -to 37:10 -c copy -y '11. Maybe Your Baby’s Got the Blues.mp3' -ss 37:10 -to 40:53 -c copy -y '12. Turn It Loose.mp3' -ss 40:53 -to 44:42 -c copy -y '13. Give a Little Love.mp3' -ss 44:42 -to 48:16 -c copy -y '14. Change of Heart.mp3' -ss 48:16 -to 52:39 -c copy -y '15. Young Love.mp3' -ss 52:39 -to 55:38 -c copy -y '16. Let Me Tell You About Love.mp3' -ss 55:38 -to 59:43 -c copy -y '17. One Man Woman.mp3' -ss 59:43 -to 1:03:27 -c copy -y '18. Born to Be Blue.mp3' -ss 1:03:27 -to 1:07:20 -c copy -y '19. Love Can Build a Bridge.mp3' -ss 1:07:20 -to 1:11:15 -c copy -y '20. One Hundred and Two.mp3' -ss 1:11:15 -c copy -y '21. Flies on the Butter (You Can’t Go Home Again).mp3'
複製代碼

TOP

可以使用 Linux Ubuntu Terminal 或 Windows WSL2 Ubuntu
javacomhk 發表於 2022-9-11 15:58



https://github.com/yt-dlp/yt-dlp ... d/2022.09.01/yt-dlp
可以改做
https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp
咁就一定係 download 最新版

TOP

本帖最後由 javacomhk 於 2022-10-2 12:26 編輯

有時下載的 Wave 檔案為分軌及沒有 cue sheet, 便要使用合拼工具來製作, 例如這隻 Hell Freezes Over 的合拼方法
  1. # 安裝 shntool
  2. sudo apt install shntool
  3. # 使用 shntool 將分軌的 wav 檔案合拼
  4. shntool join -o wav -a "Hell Freezes Over" *.wav
  5. # 使用 shntool 製作 cue sheet
  6. shntool cue *.wav > 'Hell Freezes Over.cue'
  7. # 將檔案名製作成歌曲名
  8. ls [0-1][0-9]*.wav | sed 's/[0-1][0-9]\s\(.*\).wav/    TITLE "\1"\n    PERFORMER "EAGLES"\n/' > tmp.txt
  9. # 最後手工修改  cue sheet 及 tmp.txt 完成如以下樣本
  10. vim -o Hell\ Freezes\ Over.cue tmp.txt
複製代碼
"Hell Freezes Over.cue"
  1. TITLE "HELL FREEZES OVER"
  2. PERFORMER "EAGLES"
  3. FILE "Hell Freezes Over.wav" WAVE
  4.   TRACK 01 AUDIO
  5.     TITLE "GET OVER IT"
  6.     PERFORMER "EAGLES"
  7.     INDEX 01 0:00:00
  8.   TRACK 02 AUDIO
  9.     TITLE "LOVE WILL KEEP US ALIVE"
  10.     PERFORMER "EAGLES"
  11.     INDEX 01 3:30:47
  12.   TRACK 03 AUDIO
  13.     TITLE "THE GIRL FROM YESTERDAY"
  14.     PERFORMER "EAGLES"
  15.     INDEX 01 7:33:70
  16.   TRACK 04 AUDIO
  17.     TITLE "LEARN TO BE STILL"
  18.     PERFORMER "EAGLES"
  19.     INDEX 01 10:57:70
  20.   TRACK 05 AUDIO
  21.     TITLE "TEQUILA SUNRISE"
  22.     PERFORMER "EAGLES"
  23.     INDEX 01 15:26:52
  24.   TRACK 06 AUDIO
  25.     TITLE "HOTEL CALIFORNIA"
  26.     PERFORMER "EAGLES"
  27.     INDEX 01 18:54:57
  28.   TRACK 07 AUDIO
  29.     TITLE "WASTED TIME"
  30.     PERFORMER "EAGLES"
  31.     INDEX 01 26:06:60
  32.   TRACK 08 AUDIO
  33.     TITLE "PRETTY MAIDS ALL IN A ROW"
  34.     PERFORMER "EAGLES"
  35.     INDEX 01 31:26:32
  36.   TRACK 09 AUDIO
  37.     TITLE "I CRNT TELL YOU WHY"
  38.     PERFORMER "EAGLES"
  39.     INDEX 01 35:53:30
  40.   TRACK 10 AUDIO
  41.     TITLE "NEW YORK MINUTE"
  42.     PERFORMER "EAGLES"
  43.     INDEX 01 41:04:50
  44.   TRACK 11 AUDIO
  45.     TITLE "THE LAST RESORT"
  46.     PERFORMER "EAGLES"
  47.     INDEX 01 47:42:30
  48.   TRACK 12 AUDIO
  49.     TITLE "TAKE IT EASY"
  50.     PERFORMER "EAGLES"
  51.     INDEX 01 55:06:65
  52.   TRACK 13 AUDIO
  53.     TITLE "IN THE CITY"
  54.     PERFORMER "EAGLES"
  55.     INDEX 01 59:43:12
  56.   TRACK 14 AUDIO
  57.     TITLE "LIFE IN THE FAST LANE"
  58.     PERFORMER "EAGLES"
  59.     INDEX 01 63:51:07
  60.   TRACK 15 AUDIO
  61.     TITLE "DESPERADO"
  62.     PERFORMER "EAGLES"
  63.     INDEX 01 69:52:22
複製代碼
加上Cover.jpg 在 foobar2000 Andorid 版本的曲目顯示如下:
附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊

TOP