pythonでfoobarのalternativeを作る 3 version 2

2019/05/09 11:12 by yamasyuh68
  :追加された部分   :削除された部分
(差分が大きい場合、文字単位では表示しません)
自分のPCの音楽ファイルをタグでデータベース化 3
データを複数に分割調べる190509
データを複数に分割調べる

## 職場で調べておいたことを昨日家に帰ってやってみた

- ファイル列挙のフィルタがうまく動作してなかったことが判明
re.search('\.(mp3|aac)$' , f) 
って感じが正解でした
文字列中にapeなんて結構入る可能性あるんだなあ
行末指定とか、ピリオドのエスケープをしておかないと正確に動きませんな
- それよりも、mutagen は拡張子毎に関数を変えなければいけないみたい。少なくともflac,m4a,aacは別だった。ドキュメントを読むと拡張子毎に別モジュールになってるようなのでちょっと面倒だな。自動判定してくれないんだろうか?
- それと、タグは全て一気に取得するようだ。欲しいタグは限られてるので無駄感が強い。自作した方が速そうだな
- しかしm4aとか、appleの規格はタグ情報非公開らしく、さらに、例えばtitleタグも別の記号、/xa9ma みたいな名前になってる。mutagenのドキュメントに書いてあった。もともと音声ファイルのフォーマットは多彩で統一感がないけど、タグは統一されてるものと思っていた。違うんだな、面倒なんだなあ
- こうしてみるとfoobarのライブラリはすごいっすね、これのalternativeはナカナカ難しいかもしれないなあ

## SQL回りの話
- データベース作成にかかるタイマーを設定してみた 私の環境だと2000ファイルで10秒ちょっとかかる globのファイル列挙、mutagenのタグ取得もあるから、SQLに要する時間はわからないんだが
- 音楽ファイルの総数はわかんないけど、多分500Gくらいはあると思う。最近flacも増えてるから1ファイル10Mとすると、500,000ファイルか?
そんなにはないよな。でも10万以上にはなりそうだな。そうなると500秒、8分以上かかるのか????foobarは全然速いよなあ・・・・
まあ時間短縮、コードの最適化は先の話ですけどね
- foobarのコンポーネントを見ていたら、ライブラリ回りでsqliteで操作するっぽいのを見つけた foobarのdbはSQLなんだろうか???
- ずっと気になってるのがDBの更新、特にアプリ起動時のフォルダスキャンの仕組み。foobarは起動時明らかにHDをスキャンしてる、音がします。変更が無ければ何もしないんだと思うけど、そこのロジックがわからない
- ファイルを列挙して更新日付を取得して自分のDBと比較して同じなら無視、違ってたらupdateって事で良いのだろうか?
- そういう意味ではeverythingも同じだよなあ どういった仕組みなんじゃろ?
- 何となくDBって需要もないし避けてきたけど、いじり出すと面白い。長男がDBやっておくと使えると言ってたけど、良い機会なので勉強しようと思います
      

190509
データを複数に分割調べる

職場で調べておいたことを昨日家に帰ってやってみた

  • ファイル列挙のフィルタがうまく動作してなかったことが判明
    re.search('.(mp3|aac)$' , f)
    って感じが正解でした
    文字列中にapeなんて結構入る可能性あるんだなあ
    行末指定とか、ピリオドのエスケープをしておかないと正確に動きませんな
  • それよりも、mutagen は拡張子毎に関数を変えなければいけないみたい。少なくともflac,m4a,aacは別だった。ドキュメントを読むと拡張子毎に別モジュールになってるようなのでちょっと面倒だな。自動判定してくれないんだろうか?
  • それと、タグは全て一気に取得するようだ。欲しいタグは限られてるので無駄感が強い。自作した方が速そうだな
  • しかしm4aとか、appleの規格はタグ情報非公開らしく、さらに、例えばtitleタグも別の記号、/xa9ma みたいな名前になってる。mutagenのドキュメントに書いてあった。もともと音声ファイルのフォーマットは多彩で統一感がないけど、タグは統一されてるものと思っていた。違うんだな、面倒なんだなあ
  • こうしてみるとfoobarのライブラリはすごいっすね、これのalternativeはナカナカ難しいかもしれないなあ

SQL回りの話

  • データベース作成にかかるタイマーを設定してみた 私の環境だと2000ファイルで10秒ちょっとかかる globのファイル列挙、mutagenのタグ取得もあるから、SQLに要する時間はわからないんだが
  • 音楽ファイルの総数はわかんないけど、多分500Gくらいはあると思う。最近flacも増えてるから1ファイル10Mとすると、500,000ファイルか?
    そんなにはないよな。でも10万以上にはなりそうだな。そうなると500秒、8分以上かかるのか????foobarは全然速いよなあ・・・・
    まあ時間短縮、コードの最適化は先の話ですけどね
  • foobarのコンポーネントを見ていたら、ライブラリ回りでsqliteで操作するっぽいのを見つけた foobarのdbはSQLなんだろうか???
  • ずっと気になってるのがDBの更新、特にアプリ起動時のフォルダスキャンの仕組み。foobarは起動時明らかにHDをスキャンしてる、音がします。変更が無ければ何もしないんだと思うけど、そこのロジックがわからない
  • ファイルを列挙して更新日付を取得して自分のDBと比較して同じなら無視、違ってたらupdateって事で良いのだろうか?
  • そういう意味ではeverythingも同じだよなあ どういった仕組みなんじゃろ?
  • 何となくDBって需要もないし避けてきたけど、いじり出すと面白い。長男がDBやっておくと使えると言ってたけど、良い機会なので勉強しようと思います