foobar2000で管理してるファイルのパスを変えたときにしたこと

foobar2000 v0.9.4.4でCustom Info使ってる環境での話。
パスが変わると、

メディアライブラリ、プレイリスト、再生回数、レーティングなどの情報が飛ぶ

まんま全部である。

Custom Infoのデータベースを修正する

custominfo_sqlite.db

が対象のファイル。
以下のような簡単なスクリプトで修正できる。

import sqlite3

#settings
FROM = 'file://' + r'\\from-server\sounds'
TO   = 'file://' + r'\\to-server\music'

#custorminfo_sqlite.db
con = sqlite3.connect('custominfo_sqlite.db')
try:
    con.execute(
        """
        UPDATE
            quicktag
        SET
            url = ? || substr(url, ?, 1024)
        WHERE
            url like ?
        """,
        [TO, len(FROM) + 1, FROM + '%']
    )
    con.commit()
    print 'success.'
except Exception, ex:
	con.rollback()
	print ex

FROMとTOを適当に書き換えて使う。

修正できないデータを消す

database.fpl

本体が管理してる、メディアライブラリのデータだが、問題ないので破棄する。

foobar2000を起動、メディアライブラリのパスを新しいものに変更して再スキャンする

スキャンが終わると、PlaylistTreeでの、@databaseなクエリなども正常に動くようになる。

残りはプレイリスト

独自形式?のようで、対応が難しそう。とりあえず破棄した。
暇があったら対応できるのかどうか調べてみよう。