MixerBox 轉移歌曲清單到YouTube Music

Hsu Jerry
4 min readJun 11, 2020

--

最近在看YouTube時廣告的頻率越來越多了,而且有將近一半的廣告都是訂閱YouTube Premium,但是看到那個價錢(每月179元),還是下不了手….

直到兩天前,筆者看到了這篇 跨區至印度購買Youtube Premium 只要台幣13元,便毫不猶豫地選擇訂閱了家庭版。

YouTube Premium不只是去廣告功能而已,還包含了YouTube Music以及原創影集YouTube Originals,想要詳細了解免費版與付費版差異請點這個YouTube Music、YouTube Premium 在台上線!功能和價格方案一次看懂

筆者最近幾年使用的音樂串流服務軟體是MixerBox,優點是免費,缺點是無法背景播放,所以筆者想要轉移到YouTube Music ,但是由於累積幾年的播放清單兩百多首歌,一首一首在YouTube Music 上重新搜尋未免太費時間,所以就打算寫一個小程式來解決這個問題。

以下是開發過程簡述,若是想直接使用的話,請直接點選連結

mixerbox_2_youtube

注意:程式碼是python 開發,須有一定的程式基礎

— — —這是華麗的分隔線 — — —

首先使用MixerBox 手機APP打開左上角的齒輪設定,點選匯出歌單,並將匯出的檔案傳到電腦裡面

再來我們可以觀察這個匯出的檔案

[{“key”:”my_playlist”,”content”:[{“name”:”RAP”,”content”:[“9_TD5sqZX1U”,”tctVcE_r6f4",”ghQuR0-E8qE”,”9eePusClQTY”,”qJchJNgQLfg”,”H73M3AR_2Is”,”DnpUTSCE7Ag”,”7KQvPyZk7Lc”]}]}]

發現這個檔案基本上是JSON格式構成,key的my_playlist是所有的歌單,name是歌單名稱,而content裡面的亂碼則是youtube網址列後面的參數

https://www.youtube.com/watch?v=M3mJkSqZbX4

那接下來思路就很清楚了,只需要這個參數搭配爬蟲,就能夠爬下來這個首歌的名稱,再藉由tunemymusic這個匯入歌曲的網站,就可以匯入歌單到YouTube Music了。

事不遲疑,我們先開一個python 檔案,並引入需要的套件

接下來就是就是讀取MixerBox匯出的檔案

接下來找到key = ‘my_playlist’,裡面的content 才是所有的歌單,並把歌單名稱抓出來

再來是抓出歌單裡面的亂碼,跟youtube的URL組合起來,形成完整的網址

再來就是利用pyquery 爬取這個完整網址的歌曲名稱

實際嘗試爬取的時候,發現有的時候會有一些歌曲名稱無法爬取,而且每次嘗試的時候無法爬取的歌都是隨機的,個人猜測是因為網頁的載入速度不同導致,所以加入重複爬取的機制,避免此問題

接下來就可以把歌曲名稱寫入txt檔案啦

當程式跑完之後,會在同目錄下生成數個檔案名為歌單名稱的TXT檔案,接下來只要開啟tunemymusic點選上傳文件

剩下的只要一路點選下一步就好了,要注意的是,點選目的地的時候不要點選YouTube Music ,請點選YouTube。

再來就是靜靜地等他跑完就大功告成了XD

完整程式碼: 點我

--

--

Hsu Jerry

對於coding有高度熱情,喜歡思考、提出問題、探究事物的規律, 目前任職於東捷資訊股份有限公司,負責AI以及影像處理相關功能開發