iT邦幫忙

1

【開心碼農養成記】Python初新者小搞搞-YT轉mp3下載器 練習版

PIZZ 2023-08-22 17:30:401092 瀏覽
  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20230822/20159965oj5ZfVjf5v.png

前情提要...

這是【開心碼農養成記】的第一篇文章,所以根本沒有前情提要啊!/images/emoticon/emoticon18.gif

雖然主要是做Help Desk,對程式設計大概就只知道個大概,差不多就是我不懂他、他不懂我的那種程度,不過正所謂學無止盡,沒有打算成為專業碼農的我最近開始用VS Code練習Python了。

一開始光是VS code的python環境還有弄那個pip install就有點頭疼...還好有前任大神Google和現任大神Chat GPT兩位大神加持,才總算可以搞東搞西的。/images/emoticon/emoticon01.gif

目前應該算是結束新手任務的'Hello World'和各種基本指令砍木人階段,所以不知天高地厚的小萌新就走出村莊來挑戰下新手魔物吧!


本文開始:

作為一個多功能的資訊人員,剛好之前一直找不到好用的YT的MP3下載器,大部分網頁版免安裝下載器的都會有一堆跳出視窗,不然就是O情,色X廣告...

於是就在Google搜尋了下關鍵字就會找到網路上的教學範例了!

而其中高達8成以上都是用Pytube來做,所以就找個幾個教學網站來照做了。/images/emoticon/emoticon13.gif

**But...**仔細看了幾個Pytube網站教學內容後就發現了一個問題,那就是絕大部分的教學都是把YT網址直接埋在程式碼裡面,這樣得要每想下載一個就得要編輯一次程式碼了!/images/emoticon/emoticon04.gif

(還是有什麼特殊原因一定要這樣做???)

不過考量到之後如果是匯出成.exe執行檔使用的話,這樣好像不很OK耶!/images/emoticon/emoticon09.gif


所以在這次的練習中做得比較大的變動就是把網址變成可以"輸入"的形式了!

i = str(input('請輸入編號:'))

另外還有個問題就是,在清單下載時原本程式是把YT影片名稱當作檔名的,但執行後就會發現,中文標題常常打得非常長,像在做網拍關鍵字一樣,然後......就報錯了!!!/images/emoticon/emoticon20.gif

所以為了避免檔名過長的情況發生,只能增加變數,以流水號來取代檔名。

但因為還是個剛砍完木人的小廢柴,雖然有是過想要一行程式碼來解決,但失敗了...所以只能用蠢蠢的幾個變數來轉換....../images/emoticon/emoticon02.gif

大概是這樣:

    k = k +1                  #變數K執行每一次迴圈就+1
    k2 = str(k)               #把K轉為文字型態
    k3 = '.mp3'               #K3變數用來設定為副檔名.mp3
    k4 = k2+k3                #把K2和K3的值串在一起    

目前是以流水號取代所有的檔名,或許下次再調整的時候就是讓檔案更容易被識別是什麼了!


參考資料:

Pytube

連結:https://pytube.io/en/latest/

程式碼:

>>> from pytube import YouTube
>>> YouTube('https://youtu.be/9bZkp7q19f0').streams.first().download()
>>> yt = YouTube('http://youtube.com/watch?v=9bZkp7q19f0')
>>> yt.streams
... .filter(progressive=True, file_extension='mp4')
... .order_by('resolution')
... .desc()
... .first()
... .download()

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言