Bagaimana cara bermigrasi dari Banshee ke Rhythmbox?

13

Seperti yang telah diputuskan, Ubuntu Precise 12.04 akan menampilkan Rhythmbox sebagai pemutar musik default. Saya sadar, bahwa itu tidak berarti bahwa saya tidak akan dapat menggunakan Banshee, namun saya ingin beralih ke itu.

Saya telah menjadi penggemar Rhythmbox untuk waktu yang lama, tetapi setelah beralih ke Banshee di Natty saya memutuskan untuk mencobanya dan benar-benar bermigrasi ke sana. Namun, saya tidak terlalu senang dengan itu, itu sangat tertinggal bagi saya dan memiliki beberapa masalah lain.

Saya ingin mengekspor semua data Banshee ke Rhythmbox . Itu termasuk:

  • Perpustakaan musik
  • Daftar putar
  • Lebih disukai playcounts dan peringkat
  • Stasiun Radio
  • Gambar sampul

Apa yang harus saya lakukan untuk memindahkan semua data ini ke Rhythmbox, membuatnya berfungsi sebagai pemutar musik default, dan dengan lancar beralih sepenuhnya ke data itu?

Rafał Cieślak
sumber

Jawaban:

12

Dua sen saya, berlaku untuk Banshee 2.3.3 / Rhythmbox 2.95:

  1. Pustaka musik : cukup tentukan folder Musik Anda ke Rhythmbox dan itu akan diimpor
  2. Daftar putar :
    • Daftar Putar Dinamis : sejauh yang saya tahu Anda harus membuatnya kembali. Tidak menyenangkan, dengan komplikasi tambahan karena set fitur yang berbeda dari masing-masing pemain.
    • Daftar Putar Statis : cukup ekspornya sebagai .m3u di Banshee dan impor ulang mereka di Rhythmbox
  3. Jumlah akun dan peringkat
    • Playcounts : Saya tidak tahu
    • Peringkat : buat daftar putar dinamis untuk setiap bintang (yaitu buat "rating1, rating2, rating3, rating4, rating5" daftar putar dinamis, lalu ekspor sebagai .m3u, lalu impor di Rhythmbox. Saya baru saja mengujinya, kedua pemain menggunakan nama file relatif terhadap ~, jadi Anda akan baik-baik saja.
    • Salah satu solusi untuk keduanya adalah menerapkan # 538549 - Penggunaan ID3v2 Popularimeter untuk Penilaian (mungkin Play Count)
  4. Stasiun radio : Saya tidak tahu
  5. Gambar sampul : sementara bukan opsi "migrasi", Rhythmbox 2.9x / 3 melakukan pekerjaan yang lebih baik dalam menangani sampul seni . Cobalah dengan mengaktifkan Cover Artdan Cover Art Searchplugin Edit / Plugins. Dalam kasus saya (cover art disimpan sebagai .jpg di folder, atau sebagai ID3), mereka dikenali dengan baik

Semoga itu bisa membantu! Semoga berhasil :)

Ronan Jouchet
sumber
@rafalcieslak Selamat Datang :). Saya juga sangat menyukai Rhythmbox, dan 2,95 benar-benar merupakan langkah maju yang menggembirakan!
Ronan Jouchet
Ini menyebalkan. Tidak mudah impor / ekspor untuk daftar putar, jumlah play, atau cover art, dan lainnya. Ini memblokir saya dari memperbarui ke 12,04, karena seperti yang saya pahami, pemutakhiran akan menghapus banshee, jadi semua hal di atas akan hilang dalam pemutakhiran. Saya juga baru menyadari sekarang bahwa banshee tidak memiliki fitur ekspor daftar putar (jamak). Anda perlu mengekspor setiap daftar putar secara individual! Seharusnya saya membuang banshee di awal dan menggunakan rhythmbox. (Saya mulai di Ubuntu dengan v11.10)
Gerard Roche
@BullfrogBlues: Anda salah. Memutakhirkan ke 12,04 tidak akan menghapus Banshee, jadi Anda aman untuk melanjutkan! :) Juga, perlu diingat bahwa bahkan jika Anda menghapus Banshee, setelah menginstal ulang semua data Anda akan ada di sana, tidak tersentuh! Luar biasa, bukan? Tapi bagaimanapun, Anda dapat terus menggunakan Banshee di 12,04, tidak perlu pindah ke Rhythmbox, jika Anda lebih suka pemutar musik Anda saat ini. Jadi, tingkatkan ke 12,04!
Rafał Cieślak
Saya tidak suka banshee. Saya sudah mencoba upgrade dan diminta bahwa paket-paket tertentu akan dihapus, banshee ada di dalamnya. Sekarang, mungkin saya salah mengerti pesan prompt, tetapi dikatakan banshee akan dihapus karena bukan paket yang didukung dalam 12.04. Either way, itu tidak menanamkan kepercayaan diri saya untuk melanjutkan upgrade. Tetapi Anda harus benar bahwa file konfigurasi banshee ~/username/.config/banshee-1/*yang berisi banshee db harus ok selama dan meningkatkan.
Gerard Roche
@rafalcieslak FYI Beberapa aplikasi yang dihapus, banshee adalah salah satu dari mereka askubuntu.com/questions/111163/...
Gerard Roche
3

The Script Rhythmbox-banshee-impor akan bermigrasi jumlah bermain dan peringkat . Terima kasih kepada @xiphosurus. Namun, agar skrip berfungsi, Anda harus memberi tahu di mana basis data banshee dan rhythmbox berada.

Mempersiapkan skrip

Temukan file rhythmbox dan banshee db Anda. Lokasi default adalah:

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

Dukung mereka! Saya akan mengatakan itu lagi. Buat cadangan.

Sekarang salin file banshee.db ke folder yang sama dengan skrip rhythmbox-banshee-import. Dan kemudian memodifikasi skrip rhythmbox-banshee-import di mana baris mengatakan:

RB_DB = 'rhythmdb.xml'

masukkan path / ke / file / rhythmboxdb.xml Anda, misalnya:

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

Sekarang jalankan skrip dan semua jumlah play dan playlist akan diperbarui.

Penyelesaian masalah

  • Tidak ada modul bernama lxml

    Jika Anda mendapatkan kesalahan, ... ImportError: No module named lxml ...Anda harus menginstal Python Xml Parsers :

    sudo apt-get install python-lxml
    
  • Izin ditolak

    Jika Anda mendapat "Izin ditolak", itu karena Anda tidak memiliki izin yang memadai untuk mengakses file di direktori pengguna lain atau karena file tersebut tidak dapat dieksekusi. Untuk membuatnya dapat dieksekusi, jalankan:

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

Lampiran

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

Untuk mengimpor peringkat dan jumlah bermain, gunakan skrip ini! Bekerja untukku!

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

xiphosurus
sumber
Saya memiliki harapan besar untuk ini ketika saya melihat kode, tetapi sayangnya, saya mendapat kesalahan ImportError: No module named lxml. Jika solusinya semudah ini adalah apt-get install lxmlhari-hari bahagia, tapi inilah panduan instal lxml.de/installation.html . Saya tidak suka menginstal hal-hal ketika saya tidak tahu apa yang sebenarnya saya instal atau lakukan. Yang sering. Saya sering tidak tahu apa yang saya lakukan.
Gerard Roche
1

Beberapa ide umum tanpa benar-benar menyelidiki detail Rhythmbox & Banshee:

  1. Mengimpor basis data musik semudah membiarkan Rhythmbox memindai semua file lagi.

  2. Jika Anda telah mengonfigurasikan Banshee untuk menyimpan daftar putar & peringkat ke dalam tag file audio, dan Rhythmbox mendukung mengimpor peringkat Banshee (banyak aplikasi menyimpan peringkat dalam format "standar" lebih atau kurang yang mudah untuk dikonversi atau bahkan bekerja tanpa konversi di seluruh pemutar musik. , dan saya tahu Banshee mendukungnya, tapi saya tidak yakin apakah Rhythmbox melakukannya), maka itu seharusnya tidak menjadi masalah pada pemindaian ulang.

  3. Gambar sampul sering disimpan bersama dengan file musik, dan itu harus dideteksi pada pemindaian ulang juga. Saya tidak yakin apakah Banshee juga menyimpan sampul di tempat lain?

  4. Saya berharap Banshee dapat mengekspor daftar putar ke beberapa format daftar putar standar (mis. File .m3u / .pls), yang dapat diimpor Rhythmbox?


Saya baru saja menemukan plugin untuk menyimpan / membaca peringkat yang kompatibel dengan FMPS di Rhythmbox (itu adalah peringkat yang juga digunakan oleh Banshee). Artikel ini dalam bahasa Prancis, tetapi plugin itu sendiri tampaknya dalam bahasa Inggris. Dan mungkin seseorang dapat mengemasnya ...


Ada ekstensi Banshee banshee-extension-albumartwriteryang menulis album art yang diunduh ke direktori yang berisi musik (secara default hanya disimpan di direktori cache), yang seharusnya membantu memasukkannya ke Rhythmbox juga.


Banshee dapat mengekspor daftar putar ke .m3u, .pls& .xspf, Rhythmbox dapat mengimpor daftar putar tersebut (tetapi jika Anda memiliki banyak daftar putar, itu mungkin banyak pekerjaan ...).

JanC
sumber
Saya mengatakan kepada Banshee untuk menyimpan jumlah dan peringkat dalam file media, tetapi itu tidak mengimpornya ke kotak ritme. Saya sedang melihat skrip impor saat ini. Banshee adalah versi: 2.9.0 + really2.6.2-2ubuntu2.1
isaaclw