De banshee à rhythmbox
À cause de quelques problèmes de performances, j'ai finallement décidé de me passer de banshee. Et comme on peut le voir avec la commande debtags suivante, le choix n'est pas immense :
kinder:~% debtags search 'works-with-format::oggvorbis &&
uitoolkit::gtk && use::playing &&
! (implemented-in::c-sharp || implemented-in::python)'
alsaplayer-gtk - PCM player designed for ALSA (GTK version)
ardour - digital audio workstation (graphical gtk2 interface)
audacious - small and fast audio player which supports lots of formats
gecko-mediaplayer - Media plug-in for Gecko browsers
geekast - GNOME interface to peercast
geekast-binary - GNOME interface to peercast - binaries
gnome-mplayer - A simple GUI for MPlayer
mplayer - movie player for Unix-like systems
quark - music player daemon controlled from the gnome panel or cli
rhythmbox - music player and organizer for GNOME
somaplayer - player audio for the soma suite
somaplayer-doc - documentation for somaplayer
totem-gstreamer - A simple media player for the GNOME desktop based on GStreamer
totem-xine - A simple media player for the GNOME desktop based on xine
Je suis donc de retour après quelques années de MPD, Quodlibet et autre Banshee sous Rhythmbox. Évidemment entre temps, j'ai attribué des notes à pas mal de morceaux et je ne veux pas perdre ces informations. C'est pourquoi j'ai concocté le petit script suivant :
# -*- encoding: utf8 -*-
import os
import sys
import sqlite3
import urllib
from lxml import etree
RMB_FILE = os.path.expanduser('~/.local/share/rhythmbox/rhythmdb.xml')
XPATH_EXPR = "//entry[@type='song']/location[contains(., '%s')]"
xml_tree = etree.parse(RMB_FILE)
conn = sqlite3.connect(sys.argv[1])
cursor = conn.cursor()
cursor.execute('select uri, rating from coretracks')
for uri, rating in cursor:
if rating == 0:
continue
try:
quoted_uri = urllib.quote(uri.encode('utf8', 'ignore'),
safe="/()+&,!=")
loc_node = xml_tree.xpath(XPATH_EXPR % quoted_uri)[0]
entry = loc_node.getparent()
if not entry.find('rating'):
score = etree.Element('rating')
score.text = '%s' % rating
entry.append(score)
except IndexError:
print >> sys.stderr, '%s (score: %s) not added' % (uri, rating)
continue
print etree.tostring(xml_tree)
Il sortira sur stdin, le nouveau fichier XML utilisable avec rhythmbox et prend en argument le fichier banshee.
T'as eu des problèmes de perf avec Quodlibet? Moi jamais, pourtant ma collection n'est pas petite... Bon, c'est vrai que je ne l'utilise plus non plus, mais c'est plutôt par manque de fonctionalités (mauvais support des radios) qu'une question de performances...
Comment by Gaëtan de Menten — Oct 2, 2009 1:21:15 PM | # - re
Je n'utilise plus quodlibet depuis des années (comme je le dis, je suis passé à banshee).
Ce qui me tue c'est que rhythmbox qui me paraissait nul il y a de ça deux ans m'apparait très bien maintenant.
Comment by nicoe — Dec 17, 2009 1:31:27 AM | # - re