Come migrare da Banshee a Rhythmbox?

13

Come è stato deciso, Ubuntu Precise 12.04 presenterà Rhythmbox come lettore musicale predefinito. Sono consapevole che ciò non significa che non sarò in grado di usare Banshee, tuttavia mi piacerebbe passare ad esso.

Sono stato un fan di Rhythmbox per molto tempo, ma dopo il passaggio a Banshee in Natty ho deciso di provarlo e ho completamente eseguito la migrazione. Tuttavia, non ne sono molto soddisfatto, è molto in ritardo e ha altri problemi.

Vorrei esportare tutti i dati Banshee in Rhythmbox . Ciò include:

  • Libreria musicale
  • Playlist
  • Preferisci account e valutazioni
  • Stazioni radio
  • Immagini di copertina

Che cosa devo fare per spostare tutti questi dati su Rhythmbox, farlo funzionare come lettore musicale predefinito e passare senza problemi a questo?

    
posta Rafał Cieślak 05.11.2011 - 10:18
fonte

4 risposte

10

I miei due centesimi, applicabile a Banshee 2.3.3 / Rhythmbox 2.95:

  1. Libreria musicale : basta specificare la cartella Musica su Rhythmbox e verrà importata
  2. Playlist :
    • Playlist dinamiche : per quanto ne so, dovrai ricrearle. Non divertente, con ulteriori complicazioni dovute ai diversi set di funzionalità di ciascun giocatore.
    • Playlist statiche : basta esportarle come .m3u in Banshee e reimportarle in Rhythmbox
  3. Account di gioco e valutazioni
    • Account di gioco : non lo so
    • Classificazioni : crea una playlist dinamica per ognuna delle stelle (ad esempio, crea le playlist dinamiche "rating1, rating2, rating3, rating4, rating5", quindi esportale come .m3u, quindi importale in Rhythmbox. testato, entrambi i giocatori usano nomi di file relativi a ~, quindi starai bene.
    • Una soluzione per entrambi sarebbe quella di implementare # 538549 - Uso di ID3v2 Popularimeter per la valutazione (forse conteggio dei giochi)
  4. Stazioni radio : non lo so
  5. Immagini di copertina : pur non essendo un'opzione di "migrazione", Rhythmbox 2.9x / 3 fa una migliore lavoro nella gestione delle copertine . Provalo abilitando i Cover Art e Cover Art Search plugins in Edit / Plugins . Nel mio caso (copertine memorizzate come .jpg nella cartella o come ID3), vengono riconosciute bene

Spero che ti aiuti! Buona fortuna:)

    
risposta data Ronan Jouchet 19.01.2012 - 03:20
fonte
3

Lo script di importazione di rhythmbox-banshee consente di eseguire la migrazione dei conteggi di riproduzione e valutazioni . Grazie a @xiphosurus. Tuttavia, affinché lo script funzioni, devi dirgli dove sono i database Banshee e rhythmbox.

Preparazione dello script

Individua i tuoi file rhythmbox e banshee db. Le posizioni predefinite saranno:

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

Esegui il backup! Lo dirò di nuovo. Fai un backup.

Ora copia il file banshee.db nella stessa cartella dello script rhythmbox-banshee-import. Quindi modifica lo script rhythmbox-banshee-import dove dice la riga:

RB_DB = 'rhythmdb.xml'

inserisci il percorso / al / tuo / rhythmboxdb.xml file, ad esempio:

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

Ora esegui lo script e tutti i conteggi di riproduzione e le playlist saranno aggiornati.

Risoluzione dei problemi

  • Nessun modulo denominato lxml

    Se ottieni un errore ... ImportError: No module named lxml ... devi installare Python Xml Parsers :

    sudo apt-get install python-lxml
    
  • Autorizzazione negata

    Se si ottiene "Autorizzazione negata", è perché non si dispone di autorizzazioni sufficienti per accedere al file nella directory di altri utenti o perché il file non è eseguibile. Per renderlo eseguibile, esegui:

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

Appendice

Script di importazione di rhythmbox-banshee
#!/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)
    
risposta data Gerard Roche 28.04.2012 - 21:10
fonte
2

Per importare le valutazioni e il conteggio delle partite, usa questo script! Ha funzionato per me!

link

    
risposta data xiphosurus 27.04.2012 - 18:58
fonte
1

Alcune idee generali senza indagare su Rhythmbox & amp; Ancora Banshee:

  1. L'importazione del database musicale dovrebbe essere facile come lasciare che Rhythmbox esegua nuovamente la scansione di tutti i file.

  2. Se hai configurato Banshee per memorizzare gli account e gli ampli; le valutazioni nei tag del file audio e Rhythmbox supporta l'importazione delle valutazioni di Banshee (molte app memorizzano le valutazioni in un formato più o meno "standardizzato" che è facile da convertire o funziona senza conversione tra i lettori musicali, e so che Banshee lo supporta, ma io non sono sicuro che Rhythmbox lo faccia), quindi quelli non dovrebbero essere un problema durante la nuova scansione.

  3. Le immagini di copertina vengono spesso memorizzate insieme ai file musicali e anche quelle dovrebbero essere rilevate durante la nuova scansione. Non sono sicuro che Banshee memorizzi le copertine anche altrove?

  4. Mi aspetto che Banshee possa esportare playlist in un formato di playlist standard (ad esempio .m3u / .pls), che Rhythmbox può importare?

Ho appena trovato un plugin per salvare / leggi le classificazioni compatibili con FMPS in Rhythmbox (quelle sono le classificazioni che vengono usate anche da Banshee). L'articolo è in francese, ma lo stesso plugin sembra essere in inglese. E forse qualcuno può impacchettarlo ...

C'è un'estensione Banshee banshee-extension-albumartwriter che scrive le copertine degli album scaricati nella directory che contiene la musica (di default è salvata solo in una directory cache), che dovrebbe aiutare a farli entrare anche in Rhythmbox.

Banshee può esportare playlist in .m3u , .pls & amp; .xspf , Rhythmbox può importare tali playlist (ma se ne hai molte, potrebbe essere molto lavoro ...).

    
risposta data JanC 05.11.2011 - 18:57
fonte

Leggi altre domande sui tag