Jak migrować z Banshee do Rhythmbox?

13

Zgodnie z decyzją Ubuntu Precise 12.04 będzie zawierać Rhythmbox jako domyślny odtwarzacz muzyki. Wiem, że nie oznacza to, że nie będę mógł korzystać z Banshee, niemniej jednak chciałbym się na to przełączyć.

Od dłuższego czasu jestem fanem Rhythmbox, ale po przejściu na Banshee w Natty postanowiłem spróbować i całkowicie do niego przeszedłem. Jednak nie jestem z tego bardzo zadowolony, bardzo mnie to opóźnia i ma inne problemy.

Chciałbym wyeksportować wszystkie dane Banshee do Rhythmbox . To obejmuje:

  • Biblioteka muzyczna
  • Listy odtwarzania
  • Najlepiej liczby i oceny
  • Stacje radiowe
  • Zdjęcia na okładce

Co powinienem zrobić, aby przenieść wszystkie te dane do Rhythmbox, sprawić, by działał jako domyślny odtwarzacz muzyki i płynnie przełączał się na niego całkowicie?

Rafał Cieślak
źródło

Odpowiedzi:

12

Moje dwa centy, dotyczy Banshee 2.3.3 / Rhythmbox 2.95:

  1. Biblioteka muzyki : po prostu określ folder Music w Rhythmbox, a zostanie on zaimportowany
  2. Listy odtwarzania :
    • Dynamiczne listy odtwarzania : o ile wiem, będziesz musiał je odtworzyć. Nie jest zabawne, z dodatkową komplikacją wynikającą z różnych zestawów funkcji każdego gracza.
    • Listy statyczne : wystarczy wyeksportować je jako .m3u w Banshee i ponownie zaimportować do Rhythmbox
  3. Playcounts i oceny
    • Playcounts : Nie wiem
    • Oceny : utwórz dynamiczną listę odtwarzania dla każdej gwiazdy (tj. Utwórz dynamiczne listy odtwarzania „ocena1, ocena2, ocena3, ocena4, ocena5”, następnie wyeksportuj je jako .m3u, a następnie zaimportuj do Rhythmbox. Właśnie przetestowałem, obaj gracze używają nazw plików względem ~, więc wszystko będzie dobrze.
    • Jednym rozwiązaniem dla obu byłoby wdrożenie # 538549 - Wykorzystanie popularymetru ID3v2 do oceny (być może Play Count)
  4. Stacje radiowe : nie wiem
  5. Zdjęcia na okładce : Rhythmbox 2.9x / 3 nie jest opcją „migracji”, ale lepiej sobie radzi z okładkami . Spróbuj, włączając Cover Arti Cover Art Searchwtyczki Edit / Plugins. W moim przypadku (okładki przechowywane jako .jpg w folderze lub jako ID3) są dobrze rozpoznawane

Mam nadzieję, że to pomaga! Powodzenia :)

Ronan Jouchet
źródło
@rafalcieslak Witamy :). Bardzo też lubię Rhythmbox, a 2.95 to naprawdę zachęcający krok do przodu!
Ronan Jouchet,
To jest do bani. Brak łatwego importu / eksportu list odtwarzania, liczby odtworzeń lub okładek i innych. To blokuje mi aktualizację do 12.04, ponieważ, jak rozumiem, aktualizacja usunie banshee, więc wszystkie powyższe zostaną utracone w aktualizacji. Dopiero teraz zdałem sobie sprawę, że banshee nie ma funkcji eksportu list odtwarzania (liczba mnoga). Każdą listę odtwarzania musisz wyeksportować osobno! Na początku powinienem rzucić banshee i użyć Rhythmbox. (Zacząłem na Ubuntu z wersją 11.10)
Gerard Roche
@BullfrogBlues: Mylisz się. Aktualizacja do 12.04 nie usunie Banshee, więc możesz kontynuować! :) Pamiętaj również, że nawet jeśli usunąłeś Banshee, po ponownej instalacji wszystkie twoje dane byłyby tam nietknięte! Wspaniale, prawda? Ale w każdym razie możesz nadal używać Banshee w 12.04, bez potrzeby przechodzenia do Rhythmbox, jeśli wolisz swój obecny odtwarzacz muzyki. Więc śmiało, uaktualnij do 12.04!
Rafał Cieślak
Nie wolę banshee. Już próbowałem uaktualnienia i zostałem poproszony o usunięcie niektórych pakietów, banshee było na nich. Być może źle zrozumiałem komunikat zachęty, ale powiedział, że banshee zostanie usunięty, ponieważ nie jest obsługiwanym pakietem w 12.04. Tak czy inaczej, nie wzbudziło we mnie pewności siebie, aby kontynuować aktualizację. Ale powinieneś mieć rację, że pliki konfiguracyjne banshee, ~/username/.config/banshee-1/*które zawierają db banshee , powinny być poprawne podczas aktualizacji.
Gerard Roche
@rafalcieslak FYI Niektóre aplikacje zostały usunięte, banshee jest jednym z nich askubuntu.com/questions/111163/…
Gerard Roche
3

Skrypt rhythmbox-banshee-import będzie migrować liczbę odtworzeń i ocen . Dzięki @xiphosurus. Jednak aby skrypt działał, musisz powiedzieć mu, gdzie znajdują się bazy danych banshee i rhythmbox.

Przygotowanie skryptu

Znajdź pliki db rhythmbox i banshee. Domyślne lokalizacje to:

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

Utwórz ich kopię zapasową! Powiem to jeszcze raz. Zrób kopię zapasową.

Teraz skopiuj plik banshee.db do tego samego folderu, co skrypt importu rhythmbox-banshee. A następnie zmodyfikuj skrypt rhythmbox-banshee-import, w którym wiersz mówi:

RB_DB = 'rhythmdb.xml'

wstaw ścieżkę / do / swojego / rhythmboxdb.xml, np .:

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

Teraz uruchom skrypt, a wszystkie liczby odtworzeń i listy odtwarzania zostaną zaktualizowane.

Rozwiązywanie problemów

  • Brak modułu o nazwie lxml

    Jeśli pojawi się błąd ... ImportError: No module named lxml ..., musisz zainstalować parsery języka XML Python :

    sudo apt-get install python-lxml
    
  • Odmowa zezwolenia

    Jeśli pojawi się komunikat „Odmowa zezwolenia”, to dlatego, że nie masz wystarczających uprawnień, aby uzyskać dostęp do pliku w katalogu innych użytkowników lub dlatego, że plik nie jest wykonywalny. Aby był wykonywalny, uruchom:

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

dodatek

Skrypt importu 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)
Gerard Roche
źródło
2

Aby zaimportować oceny i liczbę odtworzeń, użyj tego skryptu! Pracował dla mnie!

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

Xiphosurus
źródło
Miałem na to duże nadzieje, kiedy spojrzałem na kod, ale niestety dostałem błąd ImportError: No module named lxml. Jeśli rozwiązanie tego problemu jest tak proste, jak apt-get install lxmlbyłoby szczęśliwe dni, to oto przewodnik instalacji lxml.de/installation.html . Nie lubię instalować rzeczy, gdy nie mam pojęcia, co właściwie instaluję lub robię. Które jest często. Często nie wiem co robię.
Gerard Roche,
1

Kilka ogólnych pomysłów bez faktycznego sprawdzania szczegółów Rhythmbox i Banshee:

  1. Importowanie muzycznej bazy danych powinno być tak łatwe, jak ponowne umożliwienie Rhythmbox ponownego skanowania wszystkich plików.

  2. Jeśli skonfigurowałeś Banshee do przechowywania playcounts i ocen w tagach pliku audio, a Rhythmbox obsługuje importowanie ocen Banshee (wiele aplikacji przechowuje oceny w mniej lub bardziej „znormalizowanym” formacie, który można łatwo przekonwertować, a nawet działa bez konwersji między odtwarzaczami muzyki i wiem, że Banshee to obsługuje, ale nie jestem pewien, czy Rhythmbox tak robi), to nie powinno to stanowić problemu przy ponownym skanowaniu.

  3. Zdjęcia na okładkę są często przechowywane razem z plikami muzycznymi i należy je również wykryć podczas ponownego skanowania. Nie jestem pewien, czy Banshee przechowuje także okładki gdzie indziej?

  4. Spodziewam się, że Banshee może eksportować listy odtwarzania do niektórych standardowych formatów list odtwarzania (np. Plików .m3u / .pls), które Rhythmbox może importować?


Właśnie znalazłem wtyczkę do zapisywania / odczytywania ocen zgodnych z FMPS w Rhythmbox (są to oceny, ponieważ Banshee ich również używa). Artykuł jest w języku francuskim, ale sama wtyczka wydaje się być w języku angielskim. A może ktoś to zapakuje ...


Istnieje rozszerzenie Banshee, banshee-extension-albumartwriterktóre zapisuje pobrane okładki albumów do katalogu zawierającego muzykę (domyślnie jest zapisywane tylko w katalogu pamięci podręcznej), co powinno pomóc w przeniesieniu ich również do Rhythmbox.


Banshee może eksportować do playlisty .m3u, .plsi .xspf, Rhythmbox może importować takie listy (ale jeśli masz wiele z nich, że może być dużo pracy ...).

JanC
źródło
Powiedziałem Banshee, aby zapisywał liczby i oceny w plikach multimedialnych, ale nie importowałem ich do rhythmbox. Obecnie patrzę na skrypt importu. Banshee to wersja: 2.9.0 + naprawdę 2.2.6-2-2ubuntu2.1
isaaclw