¿Cómo migrar de Banshee a Rhythmbox?

13

Como se ha decidido, Ubuntu Precise 12.04 contará con Rhythmbox como el reproductor de música predeterminado. Soy consciente de que no significa que no pueda utilizar Banshee, sin embargo, me gustaría cambiar a él.

He sido fanático de Rhythmbox durante mucho tiempo, pero después del cambio a Banshee en Natty decidí probarlo y migré por completo. Sin embargo, no estoy muy contento con eso, me queda mucho retraso y tiene otros problemas.

Me gustaría exportar todos los datos de Banshee a Rhythmbox . Eso incluye:

  • Biblioteca de música
  • Listas de reproducción
  • Preferiblemente recuentos y clasificaciones
  • Estaciones de radio
  • Fotos de portada

¿Qué debo hacer para mover todos estos datos a Rhythmbox, hacer que funcione como el reproductor de música predeterminado y cambiar sin problemas por completo?

Rafał Cieślak
fuente

Respuestas:

12

Mis dos centavos, aplicable a Banshee 2.3.3 / Rhythmbox 2.95:

  1. Biblioteca de música : solo especifique su carpeta de música en Rhythmbox y se importará
  2. las listas de reproducción :
    • Listas de reproducción dinámicas : que yo sepa, tendrá que volver a crearlas. No es divertido, con complicaciones adicionales debido a los diferentes conjuntos de características de cada jugador.
    • Listas de reproducción estáticas : simplemente expórtelas como .m3u en Banshee y vuelva a importarlas en Rhythmbox
  3. Cuentas de juego y clasificaciones
    • Playcounts : no lo sé
    • Calificaciones : cree una lista de reproducción dinámica para cada una de las estrellas (es decir, cree listas de reproducción dinámicas "rating1, rating2, rating3, rating4, rating5", luego expórtelas como .m3u, luego impórtelas en Rhythmbox. Acabo de probarlo, ambos jugadores usan nombres de archivo en relación con ~, así que estarás bien.
    • Una solución para ambos sería implementar # 538549 - Uso del popularímetro ID3v2 para calificación (tal vez Play Count)
  4. Estaciones de radio : no se
  5. Imágenes de portada : aunque no es una opción de "migración", Rhythmbox 2.9x / 3 hace un mejor trabajo en el manejo de la portada . Pruébelo habilitando los complementos Cover Arty . En mi caso (portada almacenada como .jpg en la carpeta o como ID3), se reconocen perfectamenteCover Art SearchEdit / Plugins

¡Espero que ayude! Buena suerte :)

Ronan Jouchet
fuente
@rafalcieslak Bienvenido :). ¡También me gusta mucho Rhythmbox, y 2.95 es realmente un avance alentador!
Ronan Jouchet
Esto apesta. No es fácil importar / exportar listas de reproducción, recuentos de reproducción o carátulas, y otros. Esto me impide actualizar a 12.04 porque, según tengo entendido, la actualización eliminará banshee, por lo que todo lo anterior se perderá en una actualización. También me he dado cuenta ahora de que banshee no tiene una función de exportación de listas de reproducción (plural). ¡Necesitas exportar cada lista de reproducción individualmente! Debería haber dejado a Banshee al principio y haber usado rhythmbox. (Comencé en Ubuntu con v11.10)
Gerard Roche
@BullfrogBlues: Estás equivocado. ¡Actualizar a 12.04 no eliminará Banshee, por lo que puede continuar! :) Además, tenga en cuenta que incluso si eliminó Banshee, después de reinstalarlo, todos sus datos estarán allí, ¡intactos! Impresionante, ¿no es así? Pero de todos modos, puede continuar usando Banshee en 12.04, sin necesidad de pasar a Rhythmbox, si prefiere su reproductor de música actual. ¡Así que adelante, actualice a 12.04!
Rafał Cieślak
No prefiero banshee. Ya intenté una actualización y se me solicitó que se eliminarían ciertos paquetes, banshee estaba en ellos. Ahora, tal vez entendí mal el mensaje de aviso, pero decía que Banshee sería eliminado porque no es un paquete compatible en 12.04. De cualquier manera, no me infundió confianza para seguir adelante con la actualización. Pero debe tener razón en que los archivos de configuración de banshee ~/username/.config/banshee-1/*que contienen el banshee db deberían estar bien durante la actualización.
Gerard Roche
@rafalcieslak FYI Algunas aplicaciones se eliminan, banshee es una de ellas askubuntu.com/questions/111163/…
Gerard Roche
3

El script rhythmbox-banshee-import migrará los recuentos y clasificaciones de juego . Gracias a @xiphosurus. Sin embargo, para que el script funcione, debe decirle dónde están las bases de datos banshee y rhythmbox.

Preparando el guión

Localice sus archivos rhythmbox y banshee db. Las ubicaciones predeterminadas serán:

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

¡Respaldarlos! Lo diré de nuevo. Hacer una copia de seguridad.

Ahora copie el archivo banshee.db en la misma carpeta que el script rhythmbox-banshee-import. Y luego modifique el script rhythmbox-banshee-import donde la línea dice:

RB_DB = 'rhythmdb.xml'

inserte el archivo path / to / your / rhythmboxdb.xml, por ejemplo:

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

Ahora ejecute el script y todos los recuentos de reproducción y listas de reproducción se actualizarán.

Solución de problemas

  • Ningún módulo llamado lxml

    Si recibe un error ... ImportError: No module named lxml ..., necesita instalar Python Xml Parsers :

    sudo apt-get install python-lxml
    
  • Permiso denegado

    Si obtiene "Permiso denegado", es porque no tiene permisos suficientes para acceder al archivo en el directorio de otros usuarios o porque el archivo no es ejecutable. Para hacerlo ejecutable, ejecute:

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

Apéndice

Secuencia de comandos 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
fuente
2

Para importar clasificaciones y recuento de reproducciones, usa este script ¡Trabajó para mi!

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

xiphosurus
fuente
Tenía muchas esperanzas para esto cuando leí el código, pero, por desgracia, recibí un error ImportError: No module named lxml. Si la solución a esto es tan fácil como apt-get install lxmlserían los días felices, pero aquí está la guía de instalación lxml.de/installation.html . No me gusta instalar cosas cuando no tengo idea de lo que realmente estoy instalando o haciendo. Que es a menudo. A menudo no sé lo que estoy haciendo.
Gerard Roche
1

Algunas ideas generales sin investigar realmente los detalles de Rhythmbox & Banshee todavía:

  1. Importar la base de datos de música debería ser tan fácil como dejar que Rhythmbox escanee todos los archivos nuevamente.

  2. Si ha configurado Banshee para almacenar los recuentos y clasificaciones en las etiquetas del archivo de audio, y Rhythmbox admite la importación de clasificaciones Banshee (muchas clasificaciones de la tienda de aplicaciones en un formato más o menos "estandarizado" que es fácil de convertir o incluso funciona sin conversión entre reproductores de música , y sé que Banshee lo admite, pero no estoy seguro de si Rhythmbox lo hace), entonces tampoco debería ser un problema en el re-escaneo.

  3. Las imágenes de portada a menudo se almacenan junto con archivos de música, y también deben detectarse en el escaneo posterior. No estoy seguro de si Banshee también almacena cubiertas en otro lugar.

  4. Espero que Banshee pueda exportar listas de reproducción a algún formato de lista de reproducción estándar (por ejemplo, archivos .m3u / .pls), que Rhythmbox puede importar.


Acabo de encontrar un complemento para guardar / leer clasificaciones compatibles con FMPS en Rhythmbox (esas son las clasificaciones ya que Banshee también las usa). El artículo está en francés, pero el complemento en sí parece estar en inglés. Y tal vez alguien pueda empaquetarlo ...


Hay una extensión Banshee banshee-extension-albumartwriterque escribe la carátula descargada del álbum en el directorio que contiene la música (por defecto solo se guarda en un directorio de caché), que también debería ayudar a llevarlos a Rhythmbox.


Banshee puede exportar listas de reproducción a .m3u, .plsy .xspf, Rhythmbox puede importar tales listas de reproducción (pero si tiene muchas, eso podría ser mucho trabajo ...).

JanC
fuente
Le dije a Banshee que almacenara los recuentos y las calificaciones en los archivos multimedia, pero no los importó a rhythmbox. Estoy viendo el script de importación actualmente. Banshee es la versión: 2.9.0 + really2.6.2-2ubuntu2.1
isaaclw