Comment migrer de Banshee vers Rhythmbox?

Comme il a été décidé, Ubuntu Precise 12.04 utilisera Rhythmbox comme lecteur de musique par défaut. Je suis conscient que cela ne signifie pas que je ne pourrai pas utiliser Banshee, je souhaiterais néanmoins passer à celui-ci.

Je suis un fan de Rhythmbox depuis longtemps, mais après le passage à Banshee à Natty, j’ai décidé de l’essayer et je l’ai complètement migré. Cependant, je ne suis pas très heureux avec cela, il me tarde beaucoup et a d’autres problèmes.

Je souhaite exporter toutes les données Banshee vers Rhythmbox . Qui comprend:

  • Bibliothèque musicale
  • Playlists
  • De préférence, les scores et les notes
  • Stations de radio
  • Images de couverture

Que dois-je faire pour transférer toutes ces données dans Rhythmbox, les faire fonctionner comme lecteur de musique par défaut et basculer en douceur vers ce dernier?

Mes deux cents, applicable à Banshee 2.3.3 / Rhythmbox 2.95:

  1. Bibliothèque musicale : spécifiez simplement votre dossier Musique dans Rhythmbox et il sera importé
  2. Playlists :
    • Listes de lecture dynamics : pour autant que je sache, vous devrez les recréer. Pas amusant, avec une complication supplémentaire due aux différents ensembles de fonctionnalités de chaque joueur.
    • Listes de lecture statiques : exportez-les simplement au format .m3u dans Banshee et réimportez-les dans Rhythmbox
  3. Nombre de lectures et notes
    • Les comptes : je ne sais pas
    • Notes : créez une liste de lecture dynamic pour chacune des écanvass (c.-à-d. Créez des listes de lecture dynamics “rating1, rating2, rating3, rating4, rating5”, puis exportez-les au format .m3u, puis importez-les dans Rhythmbox. Je viens de le tester, les deux joueurs utilisent des noms de fichiers. par rapport à ~, donc tout ira bien.
    • Une solution à ces deux solutions consiste à mettre en œuvre la norme n ° 538549 – Utilisation de l’parsingur populaire ID3v2 pour le classement (peut- être le nombre de lectures)
  4. Stations de radio : je ne sais pas
  5. Images de couverture : bien qu’il ne s’agisse pas d’une option de “migration”, Rhythmbox 2.9x / 3 s’impose mieux dans la gestion des couvertures . Essayez-le en activant les plugins Cover Art et Cover Art Search dans Edit / Plugins . Dans mon cas (les jaquettes stockées au format .jpg dans le dossier ou au format ID3), elles sont parfaitement reconnues.

J’espère que cela pourra aider! Bonne chance 🙂

Le script rhythmbox-banshee-import effectuera la migration des comptes de lecture et des notes . Merci à @xiphosurus. Cependant, pour que le script fonctionne, vous devez lui indiquer où se trouvent les bases de données banshee et rhythmbox.

Préparer le script

Localisez vos fichiers de firebase database Rhythmbox et Banshee. Les emplacements par défaut seront:

 /home/YOUR_USERNAME/.local/share/rhythmbox/rhythmdb.xml /home/YOUR_USERNAME/.config/banshee-1/banshee.db 

Sauvegardez-les! Je vais le répéter. Faites une sauvegarde.

Copiez maintenant le fichier banshee.db dans le même dossier que le script rhythmbox-banshee-import. Et puis modifiez le script rhythmbox-banshee-import où la ligne dit:

 RB_DB = 'rhythmdb.xml' 

insérez le chemin / vers / votre fichier / rhythmboxdb.xml, par exemple:

 RB_DB = '/home/YOUR_USERNAME/.local/share/rhythmbox/rhythmdb.xml' 

Maintenant, lancez le script et tous les comptages et listes de lecture seront mis à jour.

Dépannage

  • Aucun module nommé lxml

    Si vous obtenez une erreur ... ImportError: No module named lxml ... vous devez installer les parsingurs syntaxiques Python Xml :

     sudo apt-get install python-lxml 
  • Permission refusée

    Si vous obtenez “Autorisation refusée”, c’est soit parce que vous ne disposez pas des permissions suffisantes pour accéder au fichier du répertoire d’autres utilisateurs, soit parce que le fichier n’est pas exécutable. Pour le rendre exécutable, lancez:

     chmod +x /path/to/your/rhythmbox-banshee-import-script 

annexe

Rhythmbox-banshee-import Script

 #!/usr/bin/python """ Copyright (c) 2009 Wolfgang Steitz This program is free software; you can redissortingbute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is dissortingbuted in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA """ import sys import sqlite3 from lxml import etree RB_DB = 'rhythmdb.xml' BA_DB = 'banshee.db' class banshee_db(): def __init__(self, file): self.con = sqlite3.connect(file) def get_song_info(self, url): try: res = self.con.execute('select Rating, Playcount from CoreTracks where uri = ?', (url,) ).fetchone() if res is None: return None, None else: return res except: return None, None banshee = banshee_db(BA_DB) tree = etree.parse(RB_DB) root = tree.getroot() for song in root: if song.get("type") == 'song': rating = None playcount = None for attr in song: if attr.tag == 'location': location = attr.text if attr.tag == 'rating': rating = attr.text if attr.tag == 'play-count': playcount = int(attr.text) song.remove(attr) rating_banshee, playcount_banshee = banshee.get_song_info(location) if rating is None:# noch kein rating in db if not (rating_banshee == 0 or rating_banshee is None): rating = rating_banshee if not (playcount_banshee == 0 or playcount_banshee is None): if playcount is None: playcount = playcount_banshee else: playcount += playcount_banshee #insert rating into rb db if rating is not None: element = etree.Element('rating') element.text = str(rating) song.append( element) #update playcount if playcount is not None: element = etree.Element('play-count') element.text = str(playcount) song.append( element) tree.write(RB_DB) 

Pour importer des notes et jouer le compte, utilisez ce script! Travaillé pour moi!

http://code.google.com/p/rhythmbox-banshee-import/

Quelques idées générales sans réellement étudier les détails de Rhythmbox & Banshee:

  1. Importer la firebase database musicale doit être aussi simple que de laisser Rhythmbox parsingr à nouveau tous les fichiers.

  2. Si vous avez configuré Banshee pour stocker les cotes de lecture et les cotes d’écoute dans les balises du fichier audio et si Rhythmbox prend en charge l’importation de cotes Banshee (de nombreuses cotes d’écoute de magasin d’applications dans un format plus ou moins “normalisé” qui est facile à convertir ou fonctionne même sans conversion sur des lecteurs de musique. , et je sais que Banshee le soutient, mais je ne suis pas sûr que Rhythmbox le soit), cela ne devrait pas poser de problème non plus lors de la nouvelle parsing.

  3. Les images de couverture sont souvent stockées avec des fichiers de musique, et ceux-ci doivent également être détectés lors de la nouvelle parsing. Je ne suis pas sûr si Banshee stocke également des couvertures ailleurs?

  4. Je pense que Banshee peut exporter des listes de lecture dans un format de liste standard (par exemple, des fichiers .m3u / .pls), que Rhythmbox peut importer?


Je viens de trouver un plugin pour sauvegarder / lire les évaluations compatibles FMPS dans Rhythmbox (c’est les évaluations puisque Banshee les utilise également). L’article est en français, mais le plugin lui-même semble être en anglais. Et peut-être que quelqu’un peut emballer ça …


Il existe une extension Banshee banshee-extension-albumartwriter qui écrit les pochettes d’album téléchargées dans le répertoire contenant la musique (par défaut, elle est uniquement enregistrée dans un répertoire de cache), ce qui devrait également consortingbuer à les importer dans Rhythmbox.


Banshee peut exporter des listes de lecture au .m3u , .pls & .xspf , Rhythmbox peut importer de telles listes de lecture (mais si vous en avez beaucoup, cela peut représenter beaucoup de travail …).