2008-04-18

用python清foobar2000的Custom Info

我foobar2000有在用custom info這個components,他可以讓你在foobar2000裡面幫音樂增加artist、album、title等..以外的欄位,除了管理音樂方便,還可以配合Inactive Tracks (foo_skip)Playback Statistics Custom (foo_playback_custom) 等等,可是每次想用它的remove dead entries功能(清失效的檔案路徑)都會錯誤,我猜可能是因為日文的關係...,他使用的資料庫是sqlite3加上要處理unicode的檔名,剛學的python剛好可以派上用場,幾行就稿定了:

他的資料庫(custominfo_sqlite.db)格式
table : quicktag
fields: url ,subsong,fieldname,value

Python程式碼

# -*- coding: utf-8 -*-
import sqlite3
import os
con = sqlite3.connect(r"custominfo_sqlite.db")
cur = con.cursor()
cur.execute('select url from quicktag group by url')
res = cur.fetchall()
dead_fp=[]
for row in res:
    (url,)=row
    fp=url.replace('file://','')
    if not os.path.exists(fp) :
        print fp
        url2='file://'+fp
        cur.execute('delete from quicktag where url=?',(url2,))
        dead_fp.append(url2)
con.commit()
con.close()



對了...有人要拿去用的話,一定要記得備份custominfo_sqlite.db

沒有留言: