Comment migrer de Banshee vers Rhythmbox?

13

Comme il a été décidé, Ubuntu Precise 12.04 inclura Rhythmbox comme lecteur de musique par défaut. Je suis conscient que cela ne signifie pas que je ne pourrai pas utiliser Banshee, néanmoins je voudrais y passer.

Je suis un fan de Rhythmbox depuis longtemps, mais après le passage à Banshee dans Natty, j'ai décidé de l'essayer et j'ai complètement migré vers lui. Cependant, je ne suis pas très satisfait de cela, il traîne beaucoup pour moi et a d'autres problèmes.

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

  • Bibliothèque musicale
  • Playlists
  • De préférence les comptes et les évaluations
  • Stations de radio
  • Images de couverture

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

Rafał Cieślak
la source

Réponses:

12

Mes deux cents, applicables à 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 :
    • Playlists dynamiques : pour autant que je sache, vous devrez les recréer. Pas amusant, avec des complications supplémentaires en raison des différents ensembles de fonctionnalités de chaque joueur.
    • Playlists statiques : il suffit de les exporter au format .m3u dans Banshee et de les réimporter dans Rhythmbox
  3. Playcounts et évaluations
    • Playcounts : je ne sais pas
    • Évaluations : créez une liste de lecture dynamique pour chacune des étoiles (c.-à-d. Créez des listes de lecture dynamiques "note1, note2, note3, note4, note5", puis exportez-les au format .m3u, puis importez-les dans Rhythmbox. Je viens de la tester, les deux joueurs utilisent des noms de fichiers par rapport à ~, tout ira bien.
    • Une solution aux deux consisterait à implémenter # 538549 - Utilisation du popularimètre ID3v2 pour l'évaluation (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 fait un meilleur travail pour gérer les illustrations de couverture . Essayez-le en activant les plugins Cover Artet . Dans mon cas (pochette stockée sous forme de .jpg dans le dossier, ou en tant qu'ID3), ils sont très bien reconnusCover Art SearchEdit / Plugins

J'espère que cela pourra aider! Bonne chance :)

Ronan Jouchet
la source
@rafalcieslak Bienvenue :). J'aime aussi beaucoup Rhythmbox, et 2.95 est vraiment un pas en avant encourageant!
Ronan Jouchet
Ça craint. Pas d'import / export facile pour les listes de lecture, le nombre de lectures, la pochette et autres. Cela m'empêche de mettre à jour vers 12.04, car si je comprends bien, la mise à niveau supprimera le banshee, donc tout ce qui précède sera perdu dans une mise à niveau. J'ai aussi seulement réalisé maintenant que banshee n'a pas de fonction d'exportation de listes de lecture (pluriel). Vous devez exporter chaque playlist individuellement! J'aurais dû vider la banshee au début et utiliser la rythmmbox. (J'ai commencé sur Ubuntu avec la v11.10)
Gerard Roche
@BullfrogBlues: Vous vous trompez. La mise à niveau vers 12.04 ne supprimera pas Banshee, vous pouvez donc continuer en toute sécurité! :) Gardez également à l'esprit que même si vous supprimiez Banshee, après l'avoir réinstallé, toutes vos données seraient là, intactes! Génial, non? Mais de toute façon, vous pouvez continuer à utiliser Banshee en 12.04, pas besoin de passer à Rhythmbox, si vous préférez votre lecteur de musique actuel. Alors allez-y, passez à la version 12.04!
Rafał Cieślak
Je ne préfère pas le banshee. J'ai déjà tenté une mise à niveau et j'ai été invité à supprimer certains packages, Banshee en faisait partie. Maintenant, j'ai peut-être mal compris le message d'invite, mais il a dit que banshee serait supprimé car il ne s'agit pas d'un package pris en charge dans 12.04. Quoi qu'il en soit, cela ne m'a pas donné confiance pour aller de l'avant avec la mise à niveau. Mais vous devriez avoir raison en ce que les fichiers de configuration de banshee ~/username/.config/banshee-1/*qui contiennent la base de données de banshee devraient être corrects pendant la mise à niveau.
Gerard Roche
@rafalcieslak FYI Certaines applications sont supprimées, la banshee en fait partie askubuntu.com/questions/111163/…
Gerard Roche
3

Le script d'importation rhythmbox-banshee fera migrer le nombre de jeux et les 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 rhythmbox et banshee db. 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 le redis. 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'

Exécutez maintenant le script et tous les décomptes 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 analyseurs 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 autorisations suffisantes pour accéder au fichier dans le répertoire des autres utilisateurs ou parce que le fichier n'est pas exécutable. Pour le rendre exécutable, exécutez:

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

appendice

Script rhythmbox-banshee-import
#!/usr/bin/python

"""
Copyright (c) 2009 Wolfgang Steitz

This program is free software; you can redistribute 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 distributed 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)
Gerard Roche
la source
2

Pour importer les notes et le nombre de parties, utilisez ce script! A travaillé pour moi!

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

xiphosurus
la source
J'avais de grands espoirs pour cela quand j'ai regardé le code, mais hélas, j'ai eu une erreur ImportError: No module named lxml. Si la solution à cela est aussi simple que apt-get install lxmlce serait des jours heureux, mais voici le guide d'installation lxml.de/installation.html . Je n'aime pas installer des choses quand je n'ai aucune idée de ce que j'installe ou fais réellement. C'est souvent le cas. Souvent, je ne sais pas ce que je fais.
Gerard Roche
1

Quelques idées générales sans vraiment enquêter sur les détails de Rhythmbox & Banshee:

  1. L'importation de la base de données musicale devrait être aussi simple que de laisser Rhythmbox scanner à nouveau tous les fichiers.

  2. Si vous avez configuré Banshee pour stocker les décomptes et les évaluations dans les balises du fichier audio, et Rhythmbox prend en charge l'importation des évaluations Banshee (de nombreuses applications stockent les évaluations dans un format plus ou moins "standardisé" qui est facile à convertir ou même fonctionne sans conversion entre les lecteurs de musique , et je sais que Banshee le supporte, mais je ne sais pas si Rhythmbox le fait), cela ne devrait pas non plus être un problème lors de la nouvelle analyse.

  3. Les images de couverture sont souvent stockées avec des fichiers musicaux, et celles-ci doivent également être détectées lors de la nouvelle analyse. Je ne sais pas si Banshee stocke également des couvertures ailleurs?

  4. Je m'attends à ce que Banshee puisse exporter des listes de lecture vers un format de liste de lecture standard (par exemple, des fichiers .m3u / .pls), que Rhythmbox peut importer?


Je viens de trouver un plugin pour enregistrer / lire les classements compatibles FMPS dans Rhythmbox (ce sont les notes car 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 le conditionner ...


Il existe une extension Banshee banshee-extension-albumartwriterqui écrit les pochettes d'album téléchargées dans le répertoire qui contient la musique (par défaut, elle n'est enregistrée que dans un répertoire de cache), qui devrait également les aider à entrer dans Rhythmbox.


Banshee peut exporter des listes de lecture vers .m3u, .pls& .xspf, Rhythmbox peut importer de telles listes de lecture (mais si vous en avez beaucoup, cela pourrait demander beaucoup de travail ...).

JanC
la source
J'ai dit à Banshee de stocker les décomptes et les notes dans les fichiers multimédias, mais il ne les a pas importés dans rhythmbox. Je regarde actuellement le script d'importation. Banshee est la version: 2.9.0 + really2.6.2-2ubuntu2.1
isaaclw