0 基礎!讓 ChatGPT 手把手教你用 Python 將 Youtube 影片轉成音檔(mp3)

林鼎淵
Dean Lin
Published in
8 min readMar 29, 2023

--

筆者真的嚇到了🫢,沒想到我真的做到一行程式碼都沒寫,以菜鳥的語氣跟 ChatGPT 對話,就能完成一個用 Python 將 Youtube 影片轉成音檔(mp3)的小專案。

在這篇文章中,我附上與 ChatGPT 的完整對話,大家只要複製貼上就可以嘗試看看嚕!

Python 環境安裝的部分我就不贅述了,筆者使用的是 Python3;不過有設定 alias name,讓 python3/pip3 的指令對應 python/pip。

😀:「我使用的程式語言是 Python,他有辦法抓取 Youtube 影片的音擋嗎?」

ChatGPT 這邊也有提醒大家,不要未經授權下載有版權保護的影片喔!

from pytube import YouTube

# 設定要下載的影片 URL
url = "https://www.youtube.com/watch?v=VIDEO_ID"

# 建立 YouTube 物件
yt = YouTube(url)

# 取得影片的音軌
audio_stream = yt.streams.filter(only_audio=True).first()

# 下載音軌到指定的路徑
audio_stream.download(output_path="path/to/save/directory", filename="audio")

SETP 1:建立一個youtube-test.py的檔案,貼上 ChatGPT 的程式。

SETP 2:如果要執行程式,請安裝套件:pip install pytube

SETP 3:將 url 替換成自己的:https://www.youtube.com/watch?v=IvOdTbIYZs4

這是筆者分享出書心得的影片。

SETP 4:在終端機輸入python youtube-test.py執行它,你會發現他自動建立了資料夾路徑,裡面存放著「audio」的檔案。

😀:「有順利在「path/to/save/directory」這個路徑下產生「audio」的檔案了,但他無法打開,這個真的是音擋嗎?」

請安裝套件:pip install pydub

😀:「如何與上一段程式結合呢?」

Copy code
from pytube import YouTube
from pydub import AudioSegment

# 設定要下載的影片 URL
url = "https://www.youtube.com/watch?v=VIDEO_ID"

# 建立 YouTube 物件
yt = YouTube(url)

# 取得影片的音軌
audio_stream = yt.streams.filter(only_audio=True).first()

# 下載音軌到指定的路徑
audio_stream.download(output_path="path/to/save/directory", filename="audio")

# 讀取下載下來的音檔
audio_file = AudioSegment.from_file("path/to/save/directory/audio")

# 檢查音檔是否可以正常解碼
print(audio_file)

在終端機輸入python youtube-test.py,結果冒出一堆錯誤訊息。

把錯誤的結果貼到 ChatGPT,他是會幫你解答的。

若未安裝 homebrew 的朋友也可以詢問 ChatGPT 如何安裝。

在終端機輸入brew install ffmpeg,之後等他安裝完成(頗久的...)

再輸入一次python youtube-test.py,從終端機來看,天下太平了!

然後我們把 ChatGPT 的建議加入最後一行,讓他轉成 mp3 檔案。

from pytube import YouTube
from pydub import AudioSegment

# 設定要下載的影片 URL
url = "https://www.youtube.com/watch?v=IvOdTbIYZs4"

# 建立 YouTube 物件
yt = YouTube(url)

# 取得影片的音軌
audio_stream = yt.streams.filter(only_audio=True).first()

# 下載音軌到指定的路徑
audio_stream.download(output_path="path/to/save/directory", filename="audio")

# 讀取下載下來的音檔
audio_file = AudioSegment.from_file("path/to/save/directory/audio")

# 檢查音檔是否可以正常解碼
print(audio_file)

# 將音檔轉換為 MP3 格式
mp3_file = audio_file.export("path/to/save/directory/audio.mp3", format="mp3")

此時你在終端機執行python youtube-test.py 會有一種感動!這個 mp3 擋真的在播放 Youtube 影片的音檔了…太神了…

結語:讓不會程式的人更願意嘗試

寫程式是一條非常艱辛的路,中間會遇到非常多的險阻與挫折。

就像上面展示的範例一樣,我們很難一次就得到正確的結果,但在發生錯誤時,過往會需要花費大量的時間除錯、找文件。

這些失敗的經歷會使人成長,但同時也會消耗熱情。

而 ChatGPT 的出現,很大程度地減緩了這塊的痛苦,讓我們更容易上手程式。

不過這對程式教育產業來說,可說是巨大的衝擊,因為人們多了一個全新的選擇(而且還不賴)。

下一篇就來分享如何搭配 OpenAI 的 whisper api 將音檔(mp3)轉換成文字吧

想將 AI 導入自己的職場與生活嗎?歡迎報名筆者與商周集團合作的線上課程:「AI 高效簡報術|ChatGPT + Gamma 工作簡報

https://smartmonthly.pse.is/5c6q9m

如果您想在 AI 的浪潮中站穩腳步,並在未來的職場競爭中佔據優勢,那麼筆者出版的新書絕對是您入門 AI 的第一步!

▶︎ 如果這篇文章有幫助到你

1. 可以點擊下方「Follow」來追蹤我~
2. 可以對文章拍手讓我知道 👏🏻
你們的追蹤與鼓勵是我繼續寫作的動力 🙏🏼

▶︎ 如果你對工程師的職涯感到迷茫

1. 也許我在iT邦幫忙發表的系列文可以給你不一樣的觀點 💡
2. 也歡迎您到書局選購支持,透過豐富的案例來重新檢視自己的職涯

--

--

林鼎淵
Dean Lin

職涯中培育過多名工程師,🧰 目前在外商公司擔任 Software Specialist |✍️ 我專注寫 (1)最新技術 (2)團隊合作 (3)工程師職涯的文章,出版過 5 本專業書籍|👏🏻 如果對這些主題感興趣,歡迎點擊「Follow」來關注我~