batch mp3 id3, altere o id3 dos seus arquivos .mp3 com agilidade :)

April 6th, 2008

Update 1: Adicionei o módulo readline(valeu Tiago) que faz coisas muito interessantes no simples fato de importa-lo, histórico do que se digitou, as setas do teclado agora navegam no texto na hora da digitação, permite a implementação de auto completar e outras coisas mais.

Se você gosta das suas mp3 organizadas, como eu, isso será útil para você.
Sempre faço download de albuns completos, e nem sempre todos os arquivos vem organizados com o id3 correto. Então fiz esse script para organizar mais rápido.

from ID3 import *
import os, sys, readfile

# 2008-04-06
# batch mp3 id3, altere o id3 dos seus arquivos .mp3 com agilidade :)
# Author: Alisson Sales 
# http://alisson.zusee.com/
# http://alisson.zusee.com/blog

mp3s = []
last_artist = ”
last_album = ”

for root, dirs, files in os.walk(os.getcwd()):
    mp3s.extend([os.path.join(root, file) for file in files if os.path.splitext(file)[1] == ‘.mp3′])

mp3s.sort()

for mp3 in mp3s:
    id3info = ID3(mp3)
    print(os.path.basename(mp3))

    try:
        new_title = raw_input(’\tTitle: [%s] (type enter to keep it): ‘ % id3info.title)

        if (last_artist):
            new_artist = raw_input(’\tArtist: [%s] (type enter to keep it, - to last artist entered “%s”): ‘ % (id3info.album, last_artist))
        else:
            new_artist = raw_input(’\tArtist: [%s] (type enter to keep it): ‘ % id3info.artist)

        if (last_album):
            new_album = raw_input(’\tAlbum: [%s] (type enter to keep it, - to last album entered “%s”): ‘ % (id3info.album, last_album))
        else:
            new_album = raw_input(’\tAlbum: [%s] (type enter to keep it): ‘ % id3info.album)

        if id3info.track:
            new_track_number = raw_input(’\tTrack #: [%s] (type enter to keep it): ‘ % id3info.track)
        else:
            new_track_number = raw_input(’\tTrack #: [] (type enter to keep it): ‘)

    except KeyboardInterrupt:
        print(’\n\nApplication halted by the user\n’)
        sys.exit()

    if (new_title):
        id3info[’TITLE’] = new_title

    if (new_artist):
        if (new_artist == ‘-’ and last_artist):
            id3info[’ARTIST’] = last_artist
        else:
            id3info[’ARTIST’] = new_artist
            last_artist = new_artist

    if (new_album):
        if (new_album == ‘-’ and last_album):
            id3info[’ALBUM’] = last_album
        else:
            id3info[’ALBUM’] = new_album
            last_album = new_album

    if (new_track_number):
        id3info[’TRACKNUMBER’] = new_track_number

    print(”)

Você vai precisar do módulo ID3 instalado no seu python, que pode ser encontrado aqui

Para usar vá até a pasta onde se encontram os arquivos .mp3 e execute o script: python batch_id3.py

Depois adiciono mais opções, por enquanto é só. :)

Download do arquivo .py

Leave a Reply