需求與研究:
1.IOS的酷我音樂軟件,還是不錯滴,可以直接下載APE或是320K的MP3音樂,但是我發(fā)現(xiàn)PC上的酷我反而沒這個功能,而且其他的音樂軟件一般只能下載中低品質(zhì)的音樂。所以能夠從IOS中找到一個方法把它下載的東西導出來還是很有必要的。
2.在手機上下載一些無損音樂后將手機聯(lián)機到PC,用PP助手或是itools等輔助工具能夠打開酷我的文件目錄。發(fā)現(xiàn)里面有一個music目錄,里面的文件名都是純數(shù)字地。我想iphone下載來馬上轉(zhuǎn)碼肯定沒那個速度,就算能轉(zhuǎn),估計現(xiàn)在也沒有更好的格式可以保存音樂,嘗試把這些文件直接拉倒PC上改名,恩,果然可以使用。但是問題是你不知道那個文件是什么音樂,那個應該是MP3那個應該是ape?這一個聽過來肯定不是辦法。
3.網(wǎng)上搜索了一下,真有個哥們搗鼓出一個工具,不過每次使用還要訪問一下他的博客,他用vb寫的,編譯成了一個EXE放在網(wǎng)上供大家下載,估計得到了不少的認可,至少訪問量已經(jīng)上去了。但是他沒公布是如何做到的。
4.對于IT宅來說,我猜應該不會很難,那個軟件提示一定要把cloud.db文件也復制到pc,我用一文本編輯器打開看看是什么東西。哦,有戲,原來是sqlite數(shù)據(jù)文件啊。如果不是看到他寫cloud.db那么我還是要做些分析工作,比如一個個打開每一個文件之類的,肯定能找到,但是他寫了我就容易些,也要致敬一下。
5.打開來看看就非常容易了,這個數(shù)據(jù)庫中有一個MusicResource表,其中存放了歌曲的全部信息,類型、封面地址、試聽地址、存放的文件名啥的都有,這就非常easy了,讀出來,把Music目錄里的文件的文件名改名到數(shù)據(jù)庫里的名稱就可以了。
技術(shù):
1.sqlite訪問方法。
2.python基本的文件操作,主要是目錄列表文件和改文件名,都是比較簡單的。
實現(xiàn):
1.用PP助手把cloud.db和music目錄復制到硬盤的某個目錄。
2.在跟cloud.db平級的目錄里編寫一個小程序,算上空行和注釋一共才32行。源代碼如下:
# encoding: utf-8
__author__ = 'jy@cjlu.edu.cn'
import sqlite3
import os
conn=sqlite3.connect("cloud.db")
def GetNewFilename(filename):
cu=conn.cursor()
cu.execute("select artist,title,album,file,format from musicResource where file='%s'"%filename)
r=cu.fetchone()
if r is not None:
artist,title,album,filename,format=r
newfilename= "[%s-%s]-%s.%s"%(artist,album,title,format)
return newfilename.replace("&","").replace(":","").replace("/","")
def ConvertFiles(path):
if not os.path.exists(path):
exit()
pl=os.listdir(path)
for file in pl:
#如果不是目錄就移動
#計算新文件名
if os.path.isfile(os.path.join(path,file)):
newfilename=GetNewFilename(file)
print os.path.join(path,file),"-->",os.path.join(path,newfilename)
os.rename(os.path.join(path,file),os.path.join(path,newfilename))
if __name__=="__main__":
ConvertFiles("D:\projecting\Kuwo\Music")
conn.close()
1.KAKA,估計有版權(quán)風險,我就不放圖片了;運行效果:
2.速度超級快,一下子就好了,技術(shù)上成本接近與0,會python的都能寫出來,娛樂一下。