Como adicionar ID3 “capa” por linha de comando?

3

Eu preciso adicionar arte de capa ID3 a alguns arquivos MP3. Eu preciso de uma ferramenta de linha de comando (sem GUI), mas parece que nem as ferramentas id3 nem id3v2 podem fazer isso. Alguma dica?

    
por Uqbar 19.06.2016 / 16:56

2 respostas

7

Uma excelente aplicação Python que eu uso rotineiramente para adicionar capas a arquivos mp3 é o aplicativo de linha de comando eyeD3 . Isso pode ser instalado a partir de um terminal da seguinte maneira:

sudo apt-get install eyed3

Aqui está um exemplo de um comando para adicionar uma imagem de capa chamada cover.jpg a um arquivo mp3 chamado test.mp3 :

eyeD3 --add-image "cover.jpg:FRONT_COVER" test.mp3

Veja um exemplo abaixo disso no trabalho em meu próprio computador, adicionando uma imagem de capa a um mp3, caso contrário, sem meta tags:

andrew@ilium~$ eyeD3 --add-image "cover.jpg:FRONT_COVER" test.mp3
test.mp3    [ 946.12 KB ]
-------------------------------------------------------------------------------
Adding image cover.jpg
Time: 01:00 MPEG1, Layer III    [ 128 kb/s @ 44100 Hz - Joint stereo ]
-------------------------------------------------------------------------------
ID3 v2.4:
title: 
artist: 
album: 
album artist: None
track:      
FRONT_COVER Image: [Size: 95788 bytes] [Type: image/jpeg]
Description: 

Writing ID3 version v2.4
-------------------------------------------------------------------------------
andrew@ilium~$ 

Existem muitas outras opções para adicionar imagens, embora eu tenha dado a sintaxe básica acima. Abaixo estão outras opções:

  --add-image IMG_PATH:TYPE[:DESCRIPTION]
                        Add or replace an image. There may be more than one
                        image in a tag, as long as the DESCRIPTION values are
                        unique. The default DESCRIPTION is ''. If PATH begins
                        with 'http[s]://' then it is interpreted as a URL
                        instead of a file containing image data. The TYPE must
                        be one of the following: OTHER, ICON, OTHER_ICON,
                        FRONT_COVER, BACK_COVER, LEAFLET, MEDIA, LEAD_ARTIST,
                        ARTIST, CONDUCTOR, BAND, COMPOSER, LYRICIST,
                        RECORDING_LOCATION, DURING_RECORDING,
                        DURING_PERFORMANCE, VIDEO, BRIGHT_COLORED_FISH,
                        ILLUSTRATION, BAND_LOGO, PUBLISHER_LOGO.

Referências:

  • eyeD3: Opções complexas (imagens)
por andrew.46 20.06.2016 / 12:03
5

Aqui está um script Python que funciona para mim. Execute-o com python script.py audiofile.mp3 .

Você precisará de mutagen ; instale-o com sudo -H pip install mutagen .

from mutagen.mp3 import MP3
from mutagen.id3 import ID3, APIC, error
import sys
mp3file=sys.argv[1]
audio = MP3(mp3file, ID3=ID3)

try:
   audio.add_tags()
except error:
   pass

audio.tags.add(
   APIC(
      encoding=1,
      mime='image/png',
      type=3,
      desc=u'Cover',
      data=open('/path/to/artwork.png').read()
   )
)
audio.save()
    
por Jos 19.06.2016 / 19:04