0

何年にもわたって音楽に追加したファイル名またはメタデータにアクセスしようとしています。(Live)、(Demo)、(Live: In Athens)、(Acoustic)、(Live In Las Vegas 2005)、(Metallica Cover)、(Bonus Track) など。トラックを簡単に区別できるようにしています。

MusicBrainz Picard を使用して、自分の音楽を修正し、整理/タグ付けを改善しようとしています。しかし、Picard は元のタグまたはファイル名へのアクセスを許可していません。データベースから引き出されたもののみに依存します。(ご覧のとおり、私の情報は標準的なものではありません。これは私と私自身の個人的なコレクションのためのものであるため、そのほとんどはデータベースに追加しても役に立たないでしょう)

フォーラムの管理者/プログラマーの 1 人 (私が思うに) は、おそらくプラグインを介してこれを行うことが可能であると提案しました。

私はPythonでプログラミングしたことがなく、最初のことも知りません。最近、私は正規表現にほとんど入っていません。しかし、それについての高度な理解ではありませんが、かなりまともです。

ここで、できれば元のメタデータを確認してから、ファイル名を確認するのが理想的です。() 内のすべてのものを引き出し、そこにあるようにファイル内のいくつかの変数に保存します: ExtraInfo1、ExtraInfo2 など。次に、それぞれをタイトルと照合して、タイトル自体に括弧が含まれている場合があるため、まだタイトルに含まれていないことを確認します。タイトルに。そうでない場合は、それらをタイトルに戻すことができます。それらにタグを付けて名前を変更します。

タイトルから情報を引き出してバージョンタグに移動するこのプラグインを見つけました。タイトルタグから取得する代わりに、元のタイトルタグまたはファイル名から取得したいことを除いて、それは私が探しているものとほぼ同じです。次に、それを新しい Title タグに追加します。

誰かがこれで私を助けることができますか?

これが私が見つけたプラグインです:

PLUGIN_NAME = 'Move metadata to version tag'
PLUGIN_AUTHOR = 'Jacob Rask'
PLUGIN_DESCRIPTION = 'Moves song metadata such as "demo", "live" from title and titlesort to version tag.'
PLUGIN_VERSION = "0.1.4"
PLUGIN_API_VERSIONS = ["0.12", "0.15"]
from picard.metadata import register_track_metadata_processor
import re
_p_re = re.compile(r"\(.*?\)")
_v_re = re.compile(r"((\s|-)?(acoustic|akustisk|album|bonus|clean|club|cut|C=64|dance|dirty|disco|encore|extended|inch|maxi|live|original|radio|redux|rehearsal|reprise|reworked|ringtone|[Ss]essions?|short|studio|take|variant|version|vocal)(\s|-)?|.*?(capp?ella)\s?|(\s|-)?(alternat|demo|dub|edit|ext|fail|instr|long|orchestr|record|remaster|remix|strument|[Tt]ape|varv).*?|.*?(complete|mix|inspel).*?)")
def add_title_version(tagger, metadata, release, track):
if metadata["titlesort"]:
title = metadata["titlesort"]
else:
title = metadata["title"]
pmatch = _p_re.findall(title)
if pmatch: # if there's a parenthesis, investigate
pstr = pmatch[-1][1:-1] # get last match and strip paranthesis
vmatch = _v_re.search(pstr)
if vmatch:
metadata["titlesort"] = re.sub("\(" + pstr + "\)", "", title).strip()
metadata["title"] = re.sub("\(" + pstr + "\)", "", title).strip()
metadata["version"] = pstr
register_track_metadata_processor(add_title_version)

ありがとう、-Dev

4

0 に答える 0