web-dev-qa-db-ja.com

クラウドサービスと同期するために音楽を準備するにはどうすればよいですか?

私の音楽コレクションは今までに成長しました。年間で4000ファイル。それらは主に、さまざまなビットレートでさまざまなオンラインショップからダウンロードされたmp3、所有しているCDからリッピングされたmp3、およびiTunesからのDRMフリーのm4aファイルで構成されています。

これが重要な場合、次のパターンでファイルを整然と保存するためにかなりの努力をしました。

/shared/music/artist/album/track# title.mp3

今、これらをクラウドミュージックサービスにアップロードする予定です(Google Playを考えていました)。これらのサービスは、実際にファイルから音楽データをアップロードするのではなく、サーバーに既にある曲へのリンクを提供するだけであると理解しています。

帯域幅が限られているため、これは問題ありません。私の国では著作権法に違反している可能性があるため、音楽ファイルをどこにもアップロードしたくありません。

また、私は私のファイルがこのようになることを望まない:

/artist/album/track# title1.mp3
/artist/collection/sometrack# title2.mp3
/artist/best_of/yetanothertrack# title3.mp3
/artist/bonusalbum_from_japan_only/specialtrack# title4.mp3

サービスで適切に認識されるようにするには、どのように音楽コレクションを準備する必要がありますか?そうするのに役立つアプリケーションは何ですか?

6
Takkat

Google Musicでテストしたところ、ID3タグがすべてだということに気付きました。あなたがそこに置くものは何でも、Googleはそれを使用します。ファイルの名前は関係なく、ID3がすべてです。アーティストとアルバムアーティストが異なる曲がある場合でも、Googleは混乱せずに両方を正しく表示します。自分の音楽を思い通りに整理することをお勧めします。 GoogleはID3標準をかなり順守しているようですので、その標準にも従えば罰金を科せられます。

私も似たような構造をしており、ファイル名だけでなくメタデータも含めて、自分の音楽をどのように整理すべきかについてかなり夢中になっています。

これを実現するために、2つのプログラムを使用します。いくつかのファイルを少し変更する場合は、 kid3-qt を使用します。 kdeに依存せず、Ubuntuで最高のID3タグソフトウェアです。ファイル名からデータにタグを付けたり、その逆にタグ付けする多くのオプションがあります。あなたはすべてのID3タグを見ることができます(easytagとしてのソフトウェアは彼らが知らないものを隠すので)。 ID3のバージョンとテキストエンコードを選択することもできるため、コレクション全体が標準になります。 UTF3でID3v2.4を使用しました。ここでkid3-qtをインストールできます: http://apt.ubuntu.com/p/kid3-qt

あなたの場合、スクリプトを使用し、 eyeD3 を使用することをお勧めします。 pythonを使用し、驚くべき機能を備えており、ID3のほぼすべてのタグにアクセスできます。eyeD3を直接使用できますコマンドラインですが、Pythonを使用してスクリプトを作成するとより強力になります。eyeD3をインストールするには、ここをクリックします: http: //apt.ubuntu.com/p/eyed

Webページには、スクリプトでの使用方法に関するサンプルpythonスクリプトがあります。アーティスト、アルバム、トラック番号、タイトルをすべてID3の形式で配置するスクリプト例を投稿しています。タグをID3v2.4にUTF8エンコーディングで保存しますルートミュージックフォルダー(/ shared/music /)でスクリプトを実行する必要があります。

#! /usr/bin/python
import fnmatch
import os
import eyeD3

audiofile = eyeD3.Tag()

for root, dirnames, filenames in os.walk('.'):

    # Linking of ID3 tags and fixing Images
    for file in fnmatch.filter(filenames, '*.mp3'):

        # Splits the directory name
        dirSplit = root.split('/')
        fileSplit = file.split(' ',1)

        # Linking of tags
        audiofile.link(root + "/" + file, eyeD3.ID3_V2)

        audiofile.setTextEncoding(eyeD3.UTF_8_ENCODING)

        print fileSplit[0]

        # Setting the Artist, album, number and title
        audiofile.setArtist(dirSplit[1])
        audiofile.setAlbum(dirSplit[2])
        audiofile.setTrackNum([fileSplit[0]])
        audiofile.setTitle(fileSplit[1])

        audiofile.do_tdtg = 0     # set to not use the TDTG frame
        audiofile.update(eyeD3.ID3_V2_4,0)

このスクリプトを開始点として使用し、ファイル名とディレクトリ全体を読み取って、それを使用してファイルの各タグを希望どおりにタグ付けできます。メタデータのように強迫観念していない場合は、ファイル構造としてメタデータを設定するオプションを使用してkid3-qt正確にあなたが望む構造)が完全に機能します。ところで、eyeD3を使用してID3V1.1を一括削除することもできますが、これは非常に面倒で、多くの機能と人員が不足しているため、デバイスは完全に使用を停止する必要があります。

6
Felipe

私は2つのことをします。あなたのディレクトリ構造はとてもきちんとしているので(補完)、この構造を使用して、a)実際のファイル名にできるだけ多くの情報を入れ、b)その情報をタグに入れます。

ファイルの名前を変更できますartist-album-trackディレクトリ構造に基づいて名前を変更するbashスクリプトを書くこともできます。正しいID3 1.xタグがある場合、 mp3info を使用してデータを抽出し、bashで使用できます同様の結果を得るために、タグに従ってファイルの名前を変更するスクリプト。

必要に応じて、ディレクトリ構造を使用してalbumおよびartistタグをファイルに追加することもできます。ここでも mp3info を使用できます。

mp3infoは、MPEGレイヤー3(MP3)ファイルのID3タグの読み取りおよび変更に使用されるユーティリティです。また、MP3ファイルのさまざまな技術属性を(オプションで)表示できます。

2
don.joey

備考:私は他の答えを編集したかったが、このツールは将来の参照のために別の答えに値する。

Mp3にメタデータを持っている場合(音楽が合法的に購入される場合が多い)、メタデータに基づいてファイルの名前を変更することができます。

音楽と画像のメタデータに基づいて名前を変更する優れたパッケージがあります: pyRenamerSudo apt-get install pyrenamerを使用してインストールできます。

基本的に正規表現とメタデータを使用してファイルの名前を変更します。したがって、ファイルの名前を変更して、メタデータで利用可能な情報を含めることができます。これがスクリーンショットです。

A screenshot of PyRenamer

これは画像にも有効です

ソース:

1
don.joey

これは完全にオフベースの場合もありますが、MusicbrainzのPicardというプログラムを使用して、ファイルにタグとアートワークを追加できるようにしました。どのファイルがどのファイルであるかを把握するのに非常に優れています。

ここにあります: http://musicbrainz.org/doc/MusicBrainz_Picard

1
Craig Maloney

個人的には mp3tag が好きです。多くの便利な機能を備えたすべてのタグを編集できます。また、メタデータに従ってファイルの名前を変更したり、ファイル名からメタデータを抽出することもできます。これはWindowsプログラムですが、wineで問題なく実行されます。

Linuxネイティブプログラムが必要な場合は、easytagを試してください。それは同様の機能を持っているようですが、私はそれを自分で試したことはありません。 apt-getまたはソフトウェアセンターを使用してインストールできる必要があります。

1
André Stannek