晴れたり沼ったり

へんなものに沼ることがあります。

NHK APIで遊ぶ (rfriendsのつづき)( part2)



>・終了したら /tmpから情報を取得してmp4タグに情報を書き込み、ファイル名の変更>も行う。

>

>という感じでスクリプトを制作中(*2)。

 

とか数日前に言ってましたが急遽 WiFi ルータの入れ替えで時間がとられてしまって放置中だったのだけど、やり始めました。

上記の処でかくところまではうまくいったつもりだったのだけどいざファイルサーバに戻してタグをみてみると文字バケバケ。

perl で書いてたのだけど私が文字コードかこのライブラリに不慣れなのかライブラリ中での文字コードの扱いがいまいちなのかわからないが....

 

で再度探してたら python 用のラッパーの pytablib というのが超便利そうなのでみてみたら書き込みは簡単っぽいし文字コードも大丈夫そう。(ラッパのインストールは sudo apt install python3-taglib

てなことでタグ書き込みはperlはやめてpythonにした:-)

 

エラー処理もなんもいれてないけどこれでできた。シンプルで使いやすいライブラリだなあ。しかもちゃんとUTF-8 で書いてくれてる。Pathlibがラクチンすぎるのもポイント高い。だったらさっさと python に乗り換えればいいんだけど、なんとなく慣れてるし、正規表現とか文字列置換とかのテキスト処理はやっぱりついついこちらでやってしまう。ほぼ同等のことが出来るモジュールもちゃんとPythonにもあるのだけどそこを覚え直すのも面倒かなと... SBC でGPIOいじる時は結構いやおうなくpython一択なんだけれども。でもまあpythonだって古い言語だが、perlは古世代だからな。さすがにつぎになんか書く時はこれはperlだと思っても思いとどまって re か regexモジュールを使って勉強しながら書くか...

 

#!/usr/bin/python3
import taglib
import datetime
from pathlib import Path

now=datetime.datetime.now()
daystring = now.strftime('%Y-%m%d')

# title
p= Path('/tmp/title')
with p.open() as f:
    title = f.read()

#sub
p= Path('/tmp/sub')
with p.open() as f:
    sub = f.read()

#act
p= Path('/tmp/act')
with p.open() as f:
    act = f.read()

targetfile = "/mnt/fm/baro_" + daystring + ".m4a"

m4afile=taglib.File(targetfile)
m4afile.tags["ARTIST"] = act
m4afile.tags["TITLE"] = title
m4afile.tags["COMMENT"] = sub
m4afile.save()

 

 

追記: 2024-0320

メイン機が失敗してたので出番だと思って録音データを覗いたら入ってない。

なにがどう失敗したのかちゃんと調べるすべがなかった....

cronのログをtmpじゃなくてSD上に書くようにしなくては。

 

それとは別にメインのほうは失敗時刻とdaily処理が重なってるせいかもしれないので、とりあえずdaily処理1回目を4時台に変更した。(3月の対応)

NHKの番組表の更新が5時みたいな気もするので意味があるかどうか....

もっとも4月からは古楽の楽しみは6時台にもどってくるので

daily処理は5時台に復旧させて問題はなさそうな気もする。

だけど、それなら毎日あるいはもっと煩雑にNGになりそうな気がするのだがなんでやねん!

 

あとコレでダメならADボードとFMチューナをどっかから拾ってきて全く別な録音ロジックで対応することにしよう。4月一杯はとりあえずこれで様子を見る。

 

もう一つ radxaのS1が好きだったのだけどなんか突然に暴走してくれるクセがあるボードとないボードがある。品質安定してないのかなぁ?

暴走したまましらなくて放置してたら3D工作で作ったケースが一部溶解しかけていた。危ない危ない。