問題タブ [eyed3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
bash - Bash: 複数の引用符を使用して変数を引数として使用する方法
mp3 でいっぱいのフォルダーがあり、すべての id3 ユーザーテキスト フレーム (replaygain を除く) を削除したい - 私が書いたこのコードはそれを行いますが、見つかったタグごとに各ファイルをループして削除します。これにより、スクリプトは各 mp3 を複数回循環して、必要なタスクを実行します。
動作するコードは次のとおりです。
私はより効率的になり、変数の各エントリを次のように各 mp3 に対して 1 回使用したいと思います。
しかし、私はそれを行う方法を理解できません。変数のスイッチを使用してリストを一度に作成しようとすることで近づいたと思いますが、理解できない奇妙な文字エスケープの問題がいくつかあります。
これは次のようなリストを作成します (シングルの代わりにダブル クォーテーションを試し、ダブル クォーテーションをエスケープしました):
しかし、次のように変数として eyeD3 に渡すことができません。
エラーが発生するか
「eyeD3: エラー: 認識できない引数: クレジット:' アルバム アーティスト ID:' アルバム ID:' アルバム リリース国:' アルバム ステータス:' アルバム タイプ:' アーティスト ID:' リリース グループ ID:' 01 - Do The Joy.mp3 02 - Love.mp3 03 - So Light Is Her Footfall.mp3 04 - Be A Bee.mp3 05 - Missing The Light Of The Day.mp3 06 - 熱帯病.mp3 07 - 天国の光.mp3 08 - Night Hunter.mp3 09 - Sing Sang Sung.mp3 10 - 私のビートを食べる.mp3 11 - You Can Tell It To Everyone.mp3 12 - アフリカのベルベット.mp3"
または、引用符をエスケープしようとすると、既存のタグの上に重複したタグを追加することになります
かつてあった場所
多分私がやりたいことをする簡単な方法はありますか?
編集:
ヘルプによる eyeD3 コマンドの構文:
例として:
そのディレクトリ内のすべての mp3 から、説明 ALBUMARTISTSORT を持つユーザー テキスト フレーム タグを削除する必要があります。
1 つのファイルを含む eyeD3 からの典型的な出力 (*mp3 と入力すると、dir 内のすべての mp3 に対して複数のエントリが生成されます)
python - 埋め込み画像の Python eyed3 チェック
画像が埋め込まれていない mp3 ファイルのディレクトリ全体をチェックするスクリプトが必要です。この関数は、そのようなリストを返す必要があります。
別の関数を使用して、すべてのディレクトリとサブディレクトリを調べて、すべてのファイルパスを取得します。次に、mp3 ファイルかどうかを確認し、そうでない場合は削除します。最終的に、173 個の mp3 ファイルのリストができました (私の場合)。ファイルパスは正しいですが、上記の関数でエラーが発生します。
出力:
私は何を間違えましたか?
編集:画像をチェックする前
に印刷しましf
たが、関数がクラッシュする前に既に 20 個のファイルをチェックしているようです。
それを私が直した:
tag
とはいえ、その理由はよくわかりませんNone
...
python - Python Eyed3 警告
私の mp3 ファイルのいくつかは、非標準のジャンルを持っているようです。それらをループすると(プログラムで実行する必要があります)、次のような大量の警告が表示されます。
eyed3 がそれらを印刷しないようにするにはどうすればよいですか?
編集:ファイルをロードすると、次の警告が表示されます。
python - cp1252 文字列をデコードするには?
eyeD3 で mp3 タグ (ID V1) を取得しており、そのエンコーディングを理解したいと考えています。ここに私が試すものがあります:
オンラインツールを使用して値をデコードすると、エンコーディングを変更することで値Zемфира
を正しい値に変換でき、 .Zемфира
CP1252 → UTF-8
Zåìôèðà
CP1252 → CP1251
Zемфира
から取得するにはどうすればよいmp3artist_v1
ですか? .encode('cp1252').decode('cp1251')
うまく動作しますが、可能なエンコーディングを自動的に理解するにはどうすればよいですか (可能なエンコーディングは 3 つだけです - cp1251
, cp1252
, utf-8
? 次のコードを使用する予定でした:
しかし、最初にある文字セットでエンコードしてから別の文字セットでデコードする必要があるため、役に立ちません。
python - mp3ファイルのID3_V1タグを書き込むためにutf8をcp1251に変換する方法は?
ID3_V1 はlatin1
エンコードのみをサポートします。V1 タグをロシア文字で記述するために、cp1251
エンコーディングが使用されます。V2タグ(unicode)からV1タグにデータをコピーしたいと考えています。eyeD3 を使用して、次のコードで V2 タグを取得します。
以下が返されます。
文字列 (?)をsetAlbum
期待しているように見えます:utf-8
しかし、やろうとするとtag.setAlbum(mp3album_v2.encode('cp1251').encode('utf-8'))
、エラーが発生しますUnicodeDecodeError: 'utf8' codec can't decode byte 0xc6 in position 0: invalid continuation byte
python - Python で EyeD3 を使用して ID3 コメントを設定する
mp3 ファイルを含むフォルダーに次の python スクリプトがあります。
「ジャンル」は正しく設定または変更されていますが、私のコメントはゴミを追加しているだけです。winamp の「テスト」をコメントに追加し、スクリプトを実行してコマンドラインから ID3 情報を出力すると、次のように表示されます。
「コメント」を間違った方法で渡していますか?
linux - eyeD3 で Bash スクリプトの ID3 タグの名前を変更する
.mp3
ディレクトリ内の拡張子を持つファイルを見つけてincoming
ディレクトリに移動する次のスクリプトがありますcomplete
-完全に機能します!
現在、eyeD3 ( http://eyed3.nicfit.net/index.html ) をインストールしており、ディレクトリに移動する前に、このプロセス全体のどこかでTitleタグの名前を変更しようとしています。complete
私は次のこと(およびそれ以上のもの)を試しましたが、どれもまったく機能しません:
すべてを同じ行で実行しようとすると...
分解してやろうとすると…
eyeD3にタグの名前を変更させようとしても...
私は何か間違ったことをしていることを知っていますが、高低を検索しましたが、見つけることができる eyeD3 の初心者サポートは事実上ゼロです。そこにあるものは、とにかく私が必要とすることを実際に実行しないpythonスクリプト用である傾向があります。
ここで私がどこで間違っているのか誰か知っていますか?
わかりやすくするために、このディレクトリ内のすべての mp3 ファイルのタグの名前を同じタイトルに変更したいと思いますが、すべての mp3 ファイルのファイル名が異なるため、ファイル名の代わりにワイルドカードを使用しています。多分私はこれを間違った方法でやっていますか?
linux - Bash を使用したワイルドカード ファイルの名前変更と移動
このbashスクリプトで次のことをしようとしていますが、行き詰まりました..
1) /usr/incoming/ ディレクトリで拡張子が .mp3 のすべてのファイルを検索します。
2) eyeD3 を使用して、既存の ID3 タグをすべて削除します。
3) eyeD3 を使用して、タイトル タグ「NEW NAME」をファイルに書き戻します。
4) mv を使用して、拡張子 .mp3 を持つすべてのファイルの名前を latest.mp3 に変更し、強制的に移動します (同じ名前の他のファイルを上書きします)。
最後のビット (No.4) 以外はすべて機能しています。
mv コマンドで何か間違ったことをしていることは知っていますが、何がわかりません。
コードは次のとおりです。
誰かが私のやり方の誤りを教えてくれますか? ;)