Como migrar de Banshee para Rhythmbox?

13

Como foi decidido, o Ubuntu Precise 12.04 apresentará o Rhythmbox como o player de música padrão. Estou ciente de que isso não significa que não poderei usar o Banshee; no entanto, gostaria de mudar para ele.

Sou fã do Rhythmbox há muito tempo, mas depois da mudança para o Banshee em Natty , decidi tentar e migrar completamente para ele. No entanto, não estou muito feliz com isso, fica muito para mim e tem outros problemas.

Eu gostaria de exportar todos os dados do Banshee para o Rhythmbox . Isso inclui:

  • Biblioteca de música
  • Listas de reprodução
  • Preferencialmente playcounts e classificações
  • Estações de radio
  • Imagens da capa

O que devo fazer para mover todos esses dados para o Rhythmbox, fazê-lo funcionar como o reprodutor de música padrão e alternar completamente para ele?

Rafał Cieślak
fonte

Respostas:

12

Meus dois centavos, aplicáveis ​​ao Banshee 2.3.3 / Rhythmbox 2.95:

  1. Biblioteca de músicas : basta especificar sua pasta Música para o Rhythmbox e ela será importada
  2. Listas de reprodução :
    • Listas de reprodução dinâmicas : tanto quanto eu sei, você precisará recriá-las. Não é divertido, com complicações adicionais devido aos diferentes conjuntos de recursos de cada jogador.
    • Listas de reprodução estáticas : exporte-as como .m3u no Banshee e importe-as novamente no Rhythmbox
  3. Playcounts e classificações
    • Playcounts : não sei
    • Classificações : crie uma lista de reprodução dinâmica para cada uma das estrelas (por exemplo, crie listas de reprodução dinâmicas "classificação1, classificação2, classificação3, classificação4, classificação5" e, em seguida, exporte-as como .m3u, depois importe-as no Rhythmbox. Acabei de testar, os dois jogadores usam nomes de arquivos em relação a ~, então você ficará bem.
    • Uma solução para ambos seria implementar # 538549 - Uso do popularímetro ID3v2 para classificação (talvez contagem de reprodução)
  4. Estações de rádio : eu não sei
  5. Fotos da capa : embora não seja uma opção de "migração", o Rhythmbox 2.9x / 3 faz um trabalho melhor no manuseio da arte da capa . Experimente ativando os plugins Cover Arte . No meu caso (arte da capa armazenada como .jpg na pasta ou como ID3), eles são reconhecidos perfeitamenteCover Art SearchEdit / Plugins

Espero que ajude! Boa sorte :)

Ronan Jouchet
fonte
@rafalcieslak Welcome :). Também gosto muito de Rhythmbox, e 2,95 é realmente um passo encorajador!
Ronan Jouchet
Isso é péssimo. Não é fácil importar / exportar listas de reprodução, contagens de peças ou arte de capa e outras. Isso me impede de atualizar para a versão 12.04, porque, pelo que entendi, a atualização removerá o banshee; portanto, todas as opções acima serão perdidas em uma atualização. Também só agora percebi que o banshee não possui recurso de exportação de listas de reprodução (plural). Você precisa exportar cada lista de reprodução individualmente! Eu deveria ter jogado banshee no começo e usado o rhythmbox. (Eu comecei no Ubuntu com V11.10)
Gerard Roche
@BullfrogBlues: Você está errado. A atualização para 12.04 não removerá o Banshee; portanto, você pode prosseguir com segurança! :) Além disso, lembre-se de que, mesmo que você tenha removido o Banshee, depois de reinstalá-lo, todos os seus dados estarão lá, intocados! Incrível, não é? De qualquer forma, você pode continuar usando o Banshee na versão 12.04. Não é necessário mudar para o Rhythmbox, se preferir o seu atual reprodutor de música. Então vá em frente, atualize para 12.04!
Rafał Cieślak 28/04
Eu não prefiro banshee. Eu já tentei uma atualização e fui avisado que determinados pacotes seriam removidos, porque o banshee estava neles. Agora, talvez eu tenha entendido mal a mensagem de prompt, mas dizia que o banshee seria removido porque não é um pacote suportado no 12.04. De qualquer forma, não me incutiu confiança para prosseguir com a atualização. Mas você deve estar certo de que os arquivos de configuração do banshee ~/username/.config/banshee-1/*que contêm o banshee db devem estar ok durante a atualização.
Gerard Roche
@rafalcieslak FYI Algumas aplicações são removidos, banshee é um deles askubuntu.com/questions/111163/...
Gerard Roche
3

O script rhythmbox-banshee-import migrará contagens e classificações de jogos . Graças a @xiphosurus. No entanto, para que o script funcione, é necessário informar onde estão os bancos de dados banshee e rhythmbox.

Preparando o script

Localize os arquivos rhythmbox e banshee db. Os locais padrão serão:

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

Faça backup deles! Eu direi isso de novo. Faça um backup.

Agora copie o arquivo banshee.db na mesma pasta que o script rhythmbox-banshee-import. E então modifique o script rhythmbox-banshee-import em que a linha diz:

RB_DB = 'rhythmdb.xml'

insira o arquivo path / to / your / rhythmboxdb.xml, por exemplo:

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

Agora execute o script e todas as contagens e listas de reprodução serão atualizadas.

Solução de problemas

  • Nenhum módulo chamado lxml

    Se você receber um erro, ... ImportError: No module named lxml ...precisará instalar o Python Xml Parsers :

    sudo apt-get install python-lxml
    
  • Permissão negada

    Se você receber "Permissão negada", é porque você não tem permissões suficientes para acessar o arquivo no diretório de outros usuários ou porque o arquivo não é executável. Para torná-lo executável, execute:

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

Apêndice

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
fonte
2

Para importar classificações e contagem de reproduções, use este script! Trabalhou para mim!

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

xiphosurus
fonte
Eu tinha grandes esperanças nisso quando olhei para o código, mas, infelizmente, recebi um erro ImportError: No module named lxml. Se a solução para isso for tão fácil quanto apt-get install lxmlseria um dia feliz, mas aqui está o guia de instalação lxml.de/installation.html . Não gosto de instalar coisas quando não tenho idéia do que estou realmente instalando ou fazendo. O que é frequente. Muitas vezes não sei o que estou fazendo.
Gerard Roche
1

Algumas idéias gerais, sem realmente investigar os detalhes da Rhythmbox & Banshee ainda:

  1. A importação do banco de dados de músicas deve ser tão fácil quanto permitir que o Rhythmbox verifique todos os arquivos novamente.

  2. Se você configurou o Banshee para armazenar as contas e classificações nas tags do arquivo de áudio, e o Rhythmbox suporta a importação de classificações do Banshee (muitos aplicativos armazenam classificações em um formato mais ou menos "padronizado" que é fácil de converter ou até funciona sem a conversão entre players de música , e sei que o Banshee apóia isso, mas não tenho certeza se o Rhythmbox o suporta), então esses também não devem ser um problema na verificação novamente.

  3. As fotos de capa geralmente são armazenadas juntamente com os arquivos de música, e elas também devem ser detectadas na varredura novamente. Não tenho certeza se a Banshee também guarda capas em outro lugar?

  4. Espero que o Banshee possa exportar listas de reprodução para algum formato padrão de lista de reprodução (por exemplo, arquivos .m3u / .pls), que o Rhythmbox pode importar?


Acabei de encontrar um plugin para salvar / ler classificações compatíveis com FMPS no Rhythmbox (essas são as classificações que o Banshee também as usa). O artigo está em francês, mas o próprio plugin parece estar em inglês. E talvez alguém possa empacotar ...


Existe uma extensão do Banshee banshee-extension-albumartwriterque grava a arte do álbum baixada no diretório que contém a música (por padrão, ela é salva apenas em um diretório de cache), que deve ajudar a inseri-las no Rhythmbox também.


O Banshee pode exportar listas de reprodução para .m3u, .pls& .xspf, o Rhythmbox pode importar essas listas de reprodução (mas se você tiver muitas delas, isso pode dar muito trabalho ...).

JanC
fonte
Eu disse ao Banshee para armazenar as contagens e classificações nos arquivos de mídia, mas não os importou para o rhythmbox. Estou vendo o script de importação atualmente. Banshee é a versão: 2.9.0 + really2.6.2-2ubuntu2.1
isaaclw