0

リンクされたMP3ファイルのタイトル、アーティスト、およびできれば長さ(ただし、それほど重要ではありません)を取得する必要があるスクリプトをPython 2.7で作成しています。これを行う方法がよくわかりません.urllibとmutagenを使用していくつかのアプローチを試しましたが、どれもうまくいきませんでした. まあ、1つは機能しましたが、何らかの理由で機能しなくなりました。urllib は、アンパックするには値が多すぎると言い始めましたが、その理由はわかりません。以前は機能していたものは次のとおりです。

from urllib import urlopen
from mutagen.mp3 import MP3

def getInfo(url):
    filename, headers = urlopen(url)
    audio = MP3(filename)

それはうまくいきました。何が変わったのかはわかりませんが、それ以降、他に機能するものは見つかりませんでした。ここで認識しているよりも少し曖昧だった可能性があるため、さらに情報が必要な場合はお知らせください。ありがとうございました!

4

2 に答える 2

1

Python 3 を使用している場合は、 mutagenの代わりにmutagenxを使用する必要があります。こちらをご覧ください

import mutagenx
import mutagenx.id3
audio = mutagenx.id3.ID3(filename, translate=False)
print(audio["title"], audio["artist"], audio["length"])
于 2014-09-09T06:06:36.647 に答える
1

mp3 を一時フォルダーにダウンロードする必要があると思います。その後、その情報を読み取ることができます。例えば、

from urllib2 import Request, urlopen
from mutagen.mp3 import MP3

def getInfo(url):
    start_byte = 0
    end_byte = 5000
    url = Request(url)
    url.add_header('Range', 'bytes=' + str(start_byte) + '-' + str(end_byte))
    filename = urlopen(url)

    output = open("test_file.mp3",'wb')
    output.write(filename.read())
    output.close()
    audio = MP3("test_file.mp3")

    print audio.info.pprint()

しかし、これは本当の解決策ではありません。なぜなら、私はmp3ファイル構造について何も知らないので、どのバイトがid3ヘッダーを返すかです。これは、それを実装する方法の例です。

于 2014-09-09T05:53:05.400 に答える