Wie man von Banshee zu Rhythmbox migriert?

12

Wie bereits entschieden, wird Ubuntu Precise 12.04 Rhythmbox als Standard-Musikplayer enthalten. Ich bin mir bewusst, dass es nicht bedeutet, dass ich Banshee nicht benutzen kann, trotzdem würde ich gerne zu ihm wechseln.

Ich war lange Zeit ein Rhythmbox-Fan, aber nach dem Wechsel zu Banshee in Natty habe ich beschlossen, es zu versuchen und komplett zu migrieren. Ich bin jedoch nicht sehr glücklich damit, es ist sehr nachlässig und hat einige andere Probleme.

Ich möchte alle Banshee-Daten zu Rhythmbox exportieren . Das beinhaltet:

  • Musikbibliothek
  • Playlisten
  • Vorzugsweise playcounts und Bewertungen
  • Radiosender
  • Titelbilder

Was soll ich tun, um all diese Daten zu Rhythmbox zu übertragen, sie als Standard-Musik-Player zu verwenden und problemlos auf sie zu wechseln?

    
Rafał Cieślak 05.11.2011, 10:18
quelle

4 Antworten

10

Meine zwei Cent, anwendbar auf Banshee 2.3.3 / Rhythmbox 2.95:

  1. Musikbibliothek : Geben Sie einfach Ihren Musikordner für Rhythmbox an und dieser wird importiert
  2. Playlists :
    • Dynamische Playlists : Soweit ich weiß, musst du sie neu erstellen. Nicht lustig, mit zusätzlichen Komplikationen aufgrund der verschiedenen Feature-Sets jedes Spielers.
    • Static Playlists : Exportiere sie einfach als .m3u in Banshee und importiere sie erneut in Rhythmbox
  3. Playcounts und Bewertungen
    • Playcounts : Ich weiß es nicht
    • Bewertungen : Erstellen Sie eine dynamische Wiedergabeliste für jeden der Sterne (z. B. Erstellen dynamischer Wiedergabelisten "rating1, rating2, rating3, rating4, rating5", exportieren Sie sie als .m3u, und importieren Sie sie dann in Rhythmbox. Ich nur getestet, beide Player verwenden Dateinamen relativ zu ~, so dass es Ihnen gut geht.
    • Eine Lösung für beide wäre die Implementierung von # 538549 - Verwendung von ID3v2 Popularimeter für die Bewertung (vielleicht Play Count)
  4. Radiosender : Ich weiß es nicht
  5. Titelbilder : Rhythmbox 2.9x / 3 ist zwar keine "Migrationsoption", aber besser Job im Umgang mit Cover-Art . Probieren Sie es aus, indem Sie die Plugins Cover Art und Cover Art Search in Edit / Plugins aktivieren. In meinem Fall (Cover Art gespeichert als .jpg im Ordner oder als ID3), werden sie gut erkannt

Hoffe das hilft! Viel Glück:)

    
Ronan Jouchet 19.01.2012, 03:20
quelle
3

Das rhythmbox-Banshee-Importskript migriert Anzahl Spiele und Bewertungen . Danke an @xiphosurus. Damit das Skript funktioniert, müssen Sie jedoch wissen, wo sich die Banshee- und Rhythmbox-Datenbanken befinden.

Vorbereiten des Skripts

Finde deine rhombox- und banshee-db-Dateien. Die Standardspeicherorte sind:

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

Unterstützen Sie sie! Ich werde das noch einmal sagen. Erstellen Sie eine Sicherungskopie.

Kopieren Sie nun die Datei banshee.db in den gleichen Ordner wie das rhythmbox-Banshee-Import-Skript. Und dann modifiziere das rhythmbox-banshee-import-Skript, wo die Zeile sagt:

RB_DB = 'rhythmdb.xml'

fügen Sie die Datei Pfad / zu / Ihrer / rhythmboxdb.xml ein, z. B .:

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

Führe jetzt das Skript aus und alle Spielzahlen und Playlists werden aktualisiert.

Fehlerbehebung

  • Kein Modul namens lxml

    Wenn Sie den Fehler ... ImportError: No module named lxml ... erhalten, müssen Sie Python Xml Parser installieren :

    sudo apt-get install python-lxml
    
  • Berechtigung verweigert

    Wenn Sie "Permission denied" erhalten, liegt das entweder daran, dass Sie nicht über ausreichende Berechtigungen verfügen, um auf die Datei im Verzeichnis anderer Benutzer zuzugreifen, oder weil die Datei nicht ausführbar ist. Um es ausführbar zu machen, starte:

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

Anhang

rhythmbox-banshee-import-Skript
#!/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 28.04.2012 21:10
quelle
2

Um die Bewertungen zu importieren und die Anzahl zu zählen, benutze dieses Skript! Arbeitete für mich!

Link

    
xiphosurus 27.04.2012 18:58
quelle
1

Einige allgemeine Ideen, ohne Rhythmbox & amp; Banshee Details noch:

  1. Das Importieren der Musikdatenbank sollte so einfach sein, wie es Rhythmbox erlaubt, alle Dateien erneut zu scannen.

  2. Wenn Sie Banshee so konfiguriert haben, dass die Playcounts & amp; Bewertungen in die Audio-Datei-Tags, und Rhythmbox unterstützt Banshee Bewertungen importieren (viele Apps speichern Ratings in einem mehr oder weniger "standardisierten" Format, das einfach zu konvertieren ist oder funktioniert sogar ohne Konvertierung über Musik-Player, und ich weiß, dass Banshee unterstützt, aber ich bin mir nicht sicher, ob Rhythmbox das tut, dann sollten diese auch beim erneuten Scannen kein Problem sein.

  3. Cover-Bilder werden oft zusammen mit Musikdateien gespeichert, und diese sollten auch beim erneuten Scannen erkannt werden. Ich bin mir nicht sicher, ob Banshee auch Cover anderswo speichert?

  4. Ich gehe davon aus, dass Banshee Wiedergabelisten in ein Standardwiedergabelistenformat (z. B. .m3u / .pls-Dateien) exportieren kann, die Rhythmbox importieren kann?

Ich habe gerade ein Plugin zum Speichern gefunden / lese FMPS-kompatible Bewertungen in Rhythmbox (das sind die Bewertungen, da Banshee sie auch verwendet). Der Artikel ist auf Französisch, aber das Plugin selbst scheint auf Englisch zu sein. Und vielleicht kann jemand es verpacken ...

Es gibt eine Banshee-Erweiterung banshee-extension-albumartwriter , die heruntergeladene Albumcover in das Verzeichnis schreibt, das die Musik enthält (standardmäßig wird sie nur in einem Cache-Verzeichnis gespeichert), was helfen sollte, sie auch in Rhythmbox zu bekommen.

Banshee kann Wiedergabelisten in .m3u , .pls & amp; .xspf , Rhythmbox kann solche Wiedergabelisten importieren (aber wenn Sie viele davon haben, könnte das eine Menge Arbeit sein ...).

    
JanC 05.11.2011 18:57
quelle

Tags und Links