domingo, 14 de setembro de 2008

Ter uma coluna com o bitrate (e outras propriedades) dos mp3 no Nautilus

Finalmente!
# apt-get install python-nautilus python-mutagen
$ mkdir ~/.nautilus/python-extensions


Gravar isto no ficheiro ~/.nautilus/python-extensions/bsc.py :
#!/usr/bin/python

import os
import urllib
import nautilus
from mutagen.easyid3 import EasyID3
from mutagen.mp3 import MPEGInfo

class ColumnExtension(nautilus.ColumnProvider, nautilus.InfoProvider):
def __init__(self):
pass

def get_columns(self):
return (nautilus.Column("NautilusPython::title_column","title","Title","Song title"),
nautilus.Column("NautilusPython::album_column",
"album",
"Album",
"Album"),
nautilus.Column("NautilusPython::artist_column",
"artist",
"Artist",
"Artist"),
nautilus.Column("NautilusPython::bitrate_column",
"bitrate",
"Bitrate",
"Bitrate"),)

def update_file_info(self, file):
if file.get_uri_scheme() != 'file':
return
if file.is_mime_type('audio/mpeg'):
filename = urllib.unquote(file.get_uri()[7:])
audio = EasyID3(filename)

if (os.path.isfile (filename) and (not os.path.isdir (filename))):
mpfile = open (filename)
mpinfo = MPEGInfo (mpfile)
br = str(mpinfo.bitrate/1000) + " Kbps"
else:
br = ""

file.add_string_attribute('title', audio["title"][0])
file.add_string_attribute('album', audio["album"][0])
file.add_string_attribute('artist', audio["artist"][0])
file.add_string_attribute('bitrate', br)
self.get_columns()

Depois, basta ir a uma janela do Nautilus, e em Edit -> Preferences -> List Columns seleccionar as colunas que se pretendem adicionar.

Daqui:
http://ubuntuforums.org/showthread.php?t=878683

4 comentários:

Anónimo disse...

Excelente dica!
Melhor mesmo era que as colunas com info MP3 só fosse apresentada nos directorios com MP3.

Anónimo disse...

uau, fantástico. O Linux está mesmo à frente.

/sarcasmo

Anónimo disse...

Existe algo parecido para propriedades de arquivos de vídeo, como duração e resolução?

Pitxyoki disse...

CYGNUS X-1: acho que sim.
Verifica na thread do ubuntuforums que está no fim do post. É lá que este plugin foi anunciado e tem sido melhorado.