Wie kann man von Banshee nach Rhythmbox migrieren?

13

Wie entschieden wurde, wird Ubuntu Precise 12.04 Rhythmbox als Standard-Musikplayer verwenden. Mir ist bewusst, dass es nicht heißt, dass ich Banshee nicht nutzen kann, trotzdem möchte ich darauf umsteigen.

Ich war lange Zeit ein Rhythmbox-Fan, aber nach dem Wechsel zu Banshee in Natty habe ich beschlossen, es auszuprobieren und bin vollständig darauf umgestiegen. Ich bin jedoch nicht sehr zufrieden damit, es bleibt für mich viel zurück und hat einige andere Probleme.

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

  • Musiksammlung
  • Wiedergabelisten
  • Vorzugsweise Spielzähler und Bewertungen
  • Radio Stationen
  • Titelbilder

Was kann ich tun, um all diese Daten in die Rhythmbox zu verschieben, sie als Standard-Musikplayer zu verwenden und reibungslos zu ihr zu wechseln?

Rafał Cieślak
quelle

Antworten:

12

Meine zwei Cent, gültig für Banshee 2.3.3 / Rhythmbox 2.95:

  1. Musikbibliothek : Geben Sie einfach Ihren Musikordner in Rhythmbox an und er wird importiert
  2. Wiedergabelisten :
    • Dynamische Wiedergabelisten : Soweit ich weiß, müssen Sie sie neu erstellen. Kein Spaß, mit zusätzlichen Komplikationen aufgrund der unterschiedlichen Funktionen der einzelnen Spieler.
    • Statische Wiedergabelisten : Exportieren Sie sie einfach als .m3u in Banshee und importieren Sie sie erneut in Rhythmbox
  3. Spielzählungen und Bewertungen
    • Spielzähler : Ich weiß es nicht
    • Bewertungen : Erstelle eine dynamische Wiedergabeliste für jeden der Sterne (dh erstelle dynamische Wiedergabelisten mit den Werten " Bewertung1 ", " Bewertung2 ", " Bewertung3 ", " Bewertung4 " und " Bewertung5 ", exportiere sie dann als .m3u und importiere sie in die Rhythmbox. Ich habe es gerade getestet, beide Spieler verwenden Dateinamen relativ zu ~, also wird es dir gut gehen.
    • Eine Lösung für beide wäre die Implementierung von # 538549 - Verwendung des ID3v2-Popularimeters für die Bewertung (möglicherweise Play Count).
  4. Radiosender : Ich weiß es nicht
  5. Titelbilder : Rhythmbox 2.9x / 3 ist zwar keine "Migration" -Option, kann aber besser mit Titelbildern umgehen . Probieren Sie es aus, indem Sie die Plugins Cover Artund aktivieren . In meinem Fall (Cover-Art als .jpg im Ordner oder als ID3 gespeichert) werden sie einwandfrei erkanntCover Art SearchEdit / Plugins

Ich hoffe, das hilft! Viel Glück :)

Ronan Jouchet
quelle
@rafalcieslak Willkommen :). Ich mag Rhythmbox auch sehr und 2,95 ist wirklich ein ermutigender Schritt nach vorne!
Ronan Jouchet
Das ist scheiße. Kein einfacher Import / Export für Wiedergabelisten, Wiedergabezahlen oder Coverbilder und andere. Dies hindert mich daran, auf 12.04 zu aktualisieren, da das Upgrade meines Wissens Banshee entfernt, sodass alle oben genannten Punkte bei einem Upgrade verloren gehen. Ich habe auch erst jetzt gemerkt, dass Banshee keine Exportfunktion für Wiedergabelisten (Plural) hat. Sie müssen jede Wiedergabeliste einzeln exportieren! Am Anfang hätte ich Banshee wegwerfen und Rhythmbox verwenden sollen. (Ich begann auf Ubuntu mit v11.10)
Gerard Roche
@ BullfrogBlues: Du liegst falsch. Durch ein Upgrade auf 12.04 wird Banshee nicht entfernt. Sie können also sicher fortfahren! :) Denken Sie auch daran, dass auch wenn Sie Banshee entfernt haben, nach der Neuinstallation alle Ihre Daten dort bleiben, ohne dass sie davon betroffen sind! Genial, nicht wahr? Trotzdem können Sie Banshee in 12.04 weiterhin verwenden, ohne auf Rhythmbox umsteigen zu müssen, wenn Sie Ihren aktuellen Musik-Player bevorzugen. Also auf 12.04 upgraden!
Rafał Cieślak
Ich bevorzuge keine Todesfee. Ich habe bereits ein Upgrade versucht und wurde aufgefordert, bestimmte Pakete zu entfernen, Banshee war einer von ihnen. Vielleicht habe ich die Aufforderungsnachricht falsch verstanden, aber es hieß, Banshee würde entfernt, da es sich in 12.04 nicht um ein unterstütztes Paket handelt. In beiden Fällen hat es mich nicht zuversichtlich gemacht, mit dem Upgrade fortzufahren. Aber Sie sollten Recht haben, dass die Banshee-Konfigurationsdateien, ~/username/.config/banshee-1/*die die Banshee-Datenbank enthalten, während des Upgrades in Ordnung sein sollten.
Gerard Roche
@rafalcieslak FYI Einige Anwendungen werden entfernt, ist Banshee einer von ihnen askubuntu.com/questions/111163/...
Gerard Roche
3

Der rhythmbox-Banshee-Import Skript migriert Spiel zählt und Bewertungen . Vielen Dank an @xiphosurus. Damit das Skript funktioniert, müssen Sie ihm jedoch mitteilen, wo sich die Banshee- und Rhythmbox-Datenbanken befinden.

Skript vorbereiten

Suchen Sie Ihre Rhythmbox- und Banshee-Datenbankdateien. Die Standardspeicherorte sind:

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

Sichern Sie sie! Ich werde das noch einmal sagen. Erstelle eine Sicherung.

Kopieren Sie nun die Datei banshee.db in denselben Ordner wie das Skript rhythmbox-banshee-import. Und ändern Sie dann das Skript rhythmbox-banshee-import, in dem die Zeile lautet:

RB_DB = 'rhythmdb.xml'

Fügen Sie den Pfad / zu / Ihrer / rhythmboxdb.xml-Datei ein, zB:

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

Führen Sie nun das Skript aus und alle Wiedergabezahlen und Wiedergabelisten werden aktualisiert.

Fehlerbehebung

  • Kein Modul namens lxml

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

    sudo apt-get install python-lxml
    
  • Zugang verweigert

    Wenn Sie die Meldung "Berechtigung verweigert" erhalten, liegt dies entweder daran, dass Sie nicht über ausreichende Berechtigungen verfügen, um auf die Datei im Verzeichnis anderer Benutzer zuzugreifen, oder daran, dass die Datei nicht ausführbar ist. Um es ausführbar zu machen, führen Sie Folgendes aus:

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

Blinddarm

rhythmbox-banshee-import Script
#!/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
quelle
2

Verwenden Sie dieses Skript, um Bewertungen zu importieren und die Anzahl der Spiele zu bestimmen! Arbeitete für mich!

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

Xiphosurus
quelle
Ich hatte große Hoffnungen, als ich auf den Code sah, aber leider bekam ich einen Fehler ImportError: No module named lxml. Wenn die Lösung dafür so einfach ist, wie apt-get install lxmles glückliche Tage wären, finden Sie hier die Installationsanleitung lxml.de/installation.html . Ich mag es nicht, Dinge zu installieren, wenn ich keine Ahnung habe, was ich eigentlich installiere oder mache. Welches ist oft. Ich weiß oft nicht was ich tue.
Gerard Roche
1

Einige allgemeine Ideen, ohne Rhythmbox & Banshee-Details zu untersuchen:

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

  2. Wenn Sie Banshee so konfiguriert haben, dass die Wiedergabezahlen und Bewertungen in den Tags der Audiodatei gespeichert werden, und Rhythmbox den Import von Banshee-Bewertungen unterstützt (viele Apps speichern Bewertungen in einem mehr oder weniger "standardisierten" Format, das einfach zu konvertieren ist oder sogar ohne Konvertierung über Musik-Player funktioniert , und ich weiß, dass Banshee das unterstützt, aber ich bin nicht sicher, ob Rhythmbox dies tut), dann sollten diese Probleme auch beim erneuten Scannen nicht auftreten.

  3. Titelbilder werden häufig zusammen mit Musikdateien gespeichert, und diese sollten auch beim erneuten Scannen erkannt werden. Ich bin mir nicht sicher, ob Banshee Cover auch woanders aufbewahrt?

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


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


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


Banshee kann Wiedergabelisten nach Rhythmbox exportieren .m3u, .plsund .xspfsolche Wiedergabelisten können in Rhythmbox importiert werden.

JanC
quelle
Ich habe Banshee angewiesen, die Zählungen und Bewertungen in den Mediendateien zu speichern, aber sie wurden nicht in die Rhythmbox importiert. Ich schaue mir gerade das Importskript an. Banshee ist Version: 2.9.0 + really2.6.2-2ubuntu2.1
isaaclw