#author("2023-04-02T07:49:23+09:00","default:yakumo_murakami","yakumo_murakami")
#author("2023-04-02T07:49:49+09:00","default:yakumo_murakami","yakumo_murakami")
[[今さらPython]]

Python版video2mp4は何気に愛用しているんだけど、こいつが呼び出してる ffmpeg にはメタ情報の追加が可能。
アルバム名、アーティスト、そしてタイトルだ。

うちの車はAndroid auto任せでナビも何もないけど、音楽プレイヤーだけはついているのだ……表示にアーティスト名も何もないのは寂しいので、追加できるようにスクリプトを改造する事にした。

* Python版video2mp4.py * [#v95f9023]

 #!/usr/bin/python3
 
 import os
 import re
 import subprocess
 import sys
 
 # system("ffmpeg -i \"#{f}\" -y -metadata ALBUM=\"#{album}\" -metadata ARTIST=\"#{artist}\" \"mp4/#{ofn}\"")
 
 p = re.compile(r'\.(avi|mov|mkv|webm|flv)$',flags=re.IGNORECASE)
 p2 = re.compile(r'\-(rem(|ove)|del(|ete)|erase)$',flags=re.IGNORECASE)
 
 # メタ情報
 p_album = re.compile(r'\-(album)=(.+)$',flags=re.IGNORECASE)
 p_artist = re.compile(r'\-(artist)=(.+)$',flags=re.IGNORECASE)
 p_title = re.compile(r'\-(title)=(.+)$',flags=re.IGNORECASE)
 f_album = ''
 f_artist = ''
 f_title = ''
 
 myself = os.path.basename(__file__)
 otx = '.mp4'
 otx2 = ''
 f_rem = False
 if(myself == "putaudio"):
    otx = '.ogg'
    otx2 = '-vn '
    p = re.compile(r'\.(avi|mov|mkv|webm|flv|mp4)$',flags=re.IGNORECASE)
 
 for i in sys.argv:
    if(p2.search(i) != None):
        f_rem = True # あとで戻り値判定をいれ、実行OKなら元ファイルを消すようにする。
    elif(p.search(i) != None): 
        j = re.sub(p,otx,i)
        if(not os.path.isfile(j)):
                print("不在:"+j)
                x = ''
                if(f_artist != '' and f_album != '' and f_title != ''):
                    x = "nice -n 20 ffmpeg "+otx2+"-i \""+i+"\" -metadata ALBUM=\""+f_album+"\" -metadata ARTIST=\""+f_artist+"\" -metadata TITLE=\""+f_title+"\" \""+j+"\""
                else:
                    x = "nice -n 20 ffmpeg "+otx2+"-i \""+i+"\" \""+j+"\""
                if(x != ''):
                    print(x)
                    subprocess.run(x,shell=True)
    elif(p_album.search(i) != None):
        x_album = p_album.search(i)
        f_album = re.sub('^.+=','',x_album.group())
    elif(p_artist.search(i) != None):
        x_artist = p_artist.search(i)
        f_artist = re.sub('^.+=','',x_artist.group())
    elif(p_title.search(i) != None):
        x_title = p_title.search(i)
        f_title = re.sub('^.+=','',x_title.group())


* 実行 [#m745b21b]

ソースを見ればわかると思うが、video2mp4.pyは、うちでは video2mp4 および putaudio という名前でシンボリックリンクしている。
putaudioの名で呼ばれると、動画などからテキストを抜き出すツールとして動作する。

 $ putaudio -album="CADILLAC Best" -artist="CADILLAC" -title="悲しきRadio Station" 'CADILLAC _ 悲しきRadio Station (Single Version).avi'
 :
 (色々)
 :
 $ _

あとは適当なプレイヤーで再生して、メタ情報を確認してみよう。

* メタ情報 [#d5905c79]

 アルバム: CADILLAC Best
 アーティスト: CADILLAC
 タイトル: 悲しきRadio Station

え?こんなバンド知らない?
昔『MamiのRadiかるコミュニケーション』ってラジオ番組で紹介されてた、れっきとした日本のバンドらしいです、はい。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS