วิธีการโยกย้ายจาก Banshee ไปยัง Rhythmbox?


13

ตามที่ได้มีการตัดสินใจ Ubuntu Precise 12.04 จะมีRhythmboxเป็นเครื่องเล่นเพลงเริ่มต้น ฉันรู้ว่ามันไม่ได้หมายความว่าฉันจะไม่สามารถใช้ Banshee ได้ แต่ฉันต้องการเปลี่ยนมาใช้

ฉันเป็นแฟนของ Rhythmbox มานาน แต่หลังจากเปลี่ยนมาที่ Banshee ในNattyฉันตัดสินใจลองและย้ายไปที่เดิมอย่างสมบูรณ์ อย่างไรก็ตามฉันไม่ได้มีความสุขกับมันมันล่าช้าสำหรับฉันมากและมีปัญหาอื่น ๆ

ฉันต้องการที่จะส่งออกข้อมูล Banshee ทั้งหมดเพื่อ Rhythmbox ซึ่งรวมถึง:

  • คลังเพลง
  • รายการเพลง
  • เล่นนับและจัดอันดับโดยเฉพาะ
  • สถานีวิทยุ
  • ปกรูปภาพ

ฉันควรทำอย่างไรเพื่อย้ายข้อมูลทั้งหมดนี้ไปยัง Rhythmbox เพื่อให้มันทำงานเป็นเครื่องเล่นเพลงเริ่มต้นและสลับไปมาอย่างราบรื่น?

คำตอบ:


12

สองเซ็นต์ของฉันใช้กับ Banshee 2.3.3 / Rhythmbox 2.95:

  1. คลังเพลง : เพียงระบุโฟลเดอร์ Music ของคุณไปที่ Rhythmbox และจะถูกนำเข้า
  2. เพลย์ลิสต์ :
    • เพลย์ลิสต์แบบไดนามิก : เท่าที่ฉันรู้ว่าคุณจะต้องสร้างใหม่อีกครั้ง ไม่สนุกกับความยุ่งยากเพิ่มเติมเนื่องจากชุดคุณสมบัติที่แตกต่างกันของผู้เล่นแต่ละคน
    • เพลย์ลิสต์แบบคงที่ : เพียงส่งออกเป็น. m3u ใน Banshee และนำเข้าใหม่ใน Rhythmbox
  3. จำนวนการเล่นและการให้คะแนน
    • Playcounts : ฉันไม่รู้
    • การให้คะแนน : สร้างเพลย์ลิสต์แบบไดนามิกสำหรับดาวแต่ละดวง (เช่นสร้างเพลย์ลิสต์แบบไดนามิก "เรตติ้ง 1, เรตติ้ง 2, เรตติ้ง 4, เรตติ้ง 5" จากนั้นส่งออกเป็น. m3u จากนั้นนำเข้าพวกมันใน Rhythmbox สัมพันธ์กับ ~ ดังนั้นคุณจะสบายดี
    • ทางออกหนึ่งที่ทั้งสองจะนำไปใช้# 538549 - การใช้ ID3v2 Popularimeter เพื่อการให้คะแนน (อาจนับจำนวนครั้ง)
  4. สถานีวิทยุ : ฉันไม่รู้
  5. ภาพปก : ในขณะที่ไม่ได้เป็น "การโยกย้ายตัวเลือก" Rhythmbox 2.9 เท่า / 3 ไม่ได้งานที่ดีในการจัดการหน้าปก ลองมันโดยการเปิดใช้Cover Artและปลั๊กอินในCover Art Search Edit / Pluginsในกรณีของฉัน (หน้าปกที่จัดเก็บเป็น. jpg ในโฟลเดอร์หรือเป็น ID3) พวกเขาได้รับการยอมรับว่าใช้ได้

หวังว่าจะช่วย! โชคดี :)


@rafalcieslak ยินดีต้อนรับ :) ฉันชอบ Rhythmbox เป็นอย่างมากและ 2.95 เป็นขั้นตอนที่ให้กำลังใจ!
Ronan Jouchet

อันนี้ครับ ไม่มีการนำเข้า / ส่งออกอย่างง่ายสำหรับเพลย์ลิสต์จำนวนการเล่นหรือหน้าปกและอื่น ๆ สิ่งนี้บล็อกฉันจากการอัปเดตเป็น 12.04 เพราะฉันเข้าใจแล้วการอัปเกรดจะลบ banshee ดังนั้นทั้งหมดข้างต้นจะหายไปในการอัปเกรด ฉันเพิ่งรู้แล้วว่า banshee นั้นไม่มีฟีเจอร์ส่งออก (พหูพจน์) คุณต้องส่งออกเพลย์ลิสต์แต่ละรายการแยกกัน! ฉันควรทิ้งแบนชีในตอนแรกและใช้ rhythmbox แล้ว (ฉันเริ่มต้นบน Ubuntu ด้วย v11.10)
เจอราร์ดโรช

@BullfrogBlues: คุณผิด การอัปเกรดเป็น 12.04 จะไม่ลบ Banshee ดังนั้นคุณปลอดภัยที่จะดำเนินการต่อ! :) นอกจากนี้โปรดจำไว้ว่าแม้ว่าคุณจะลบ Banshee ออกไปแล้วหลังจากติดตั้งใหม่ข้อมูลทั้งหมดของคุณก็จะอยู่ที่นั่นไม่แตะต้อง! เจ๋งใช่มั้ย แต่อย่างไรก็ตามคุณสามารถใช้ Banshee ใน 12.04 ต่อไปไม่จำเป็นต้องย้ายไปที่ Rhythmbox ถ้าคุณต้องการเครื่องเล่นเพลงปัจจุบันของคุณ ดังนั้นไปข้างหน้าอัพเกรดเป็น 12.04!
RafałCieślak

ฉันไม่ชอบแบนชี ฉันพยายามอัปเกรดแล้วและได้รับแจ้งว่าแพคเกจบางอย่างจะถูกลบออกแบนชีก็อยู่ในนั้น ตอนนี้บางทีฉันอาจเข้าใจผิดข้อความแจ้ง แต่มันบอกว่าแบนชีจะถูกลบเพราะมันไม่ใช่แพ็คเกจที่รองรับใน 12.04 ไม่ว่าจะด้วยวิธีใดก็ตามมันไม่ได้ปลูกฝังให้ฉันมั่นใจที่จะก้าวไปข้างหน้าพร้อมกับการอัพเกรด แต่คุณควรอยู่ตรงที่ไฟล์~/username/.config/banshee-1/*กำหนดค่า banshee ซึ่งมีฐานข้อมูล banshee ควรอยู่ในระหว่างการอัพเกรด
เจอราร์ดโรช

@rafalcieslak FYI แอปพลิเคชั่นบางตัวถูกลบออกแบนชีเป็นหนึ่งในนั้นaskubuntu.com/questions/111163/…
เจอราร์ดโรช

3

สคริปต์ Rhythmbox-Banshee นำเข้าจะโยกย้ายจำนวนการเล่นและการจัดอันดับ ขอบคุณ @xiphosurus อย่างไรก็ตามสำหรับสคริปต์ในการทำงานคุณต้องบอกว่าฐานข้อมูล banshee และ rhythmbox อยู่ที่ใด

กำลังเตรียมสคริปต์

ค้นหา rhythmbox ของคุณและไฟล์ banshee db ตำแหน่งเริ่มต้นจะเป็น:

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

สำรองข้อมูลไว้! ฉันจะพูดอีกครั้ง ทำการสำรองข้อมูล

ตอนนี้คัดลอกไฟล์ banshee.db ลงในโฟลเดอร์เดียวกันกับสคริปต์ rhythmbox-banshee-import จากนั้นปรับเปลี่ยนสคริปต์ rhythmbox-banshee-import ที่บรรทัดบอกว่า:

RB_DB = 'rhythmdb.xml'

ใส่ไฟล์ path / to / your / rhythmboxdb.xml เช่น:

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

ตอนนี้เรียกใช้สคริปต์และจำนวนการเล่นและเพลย์ลิสต์ทั้งหมดจะได้รับการอัปเดต

การแก้ไขปัญหา

  • ไม่มีโมดูลชื่อ lxml

    หากคุณได้รับข้อผิดพลาด... ImportError: No module named lxml ...คุณต้องติดตั้ง Python Xml Parsers :

    sudo apt-get install python-lxml
    
  • ปฏิเสธการอนุญาต

    หากคุณได้รับ "การอนุญาตที่ถูกปฏิเสธ" อาจเป็นเพราะคุณไม่มีสิทธิ์เพียงพอในการเข้าถึงไฟล์ในไดเรกทอรีของผู้ใช้รายอื่นหรือเนื่องจากไฟล์นั้นไม่สามารถเรียกใช้งานได้ เพื่อให้สามารถเรียกใช้งานได้ให้เรียกใช้:

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

ภาคผนวก

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)

2

หากต้องการนำเข้าคะแนนและเล่นให้ใช้สคริปต์นี้! ทำงานให้ฉัน!

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


ฉันมีความหวังสูงสำหรับนี้เมื่อฉันเหลือบมองไปที่รหัส ImportError: No module named lxmlแต่อนิจจาผมได้รับข้อผิดพลาด หากวิธีการนี้เป็นเรื่องง่ายเหมือนapt-get install lxmlมันจะเป็นวันที่มีความสุข แต่นี่คือคู่มือการติดตั้งlxml.de/installation.html ฉันไม่ชอบการติดตั้งสิ่งต่าง ๆ เมื่อฉันไม่รู้ว่ากำลังติดตั้งหรือกำลังทำอะไรอยู่ ซึ่งมักจะ ฉันมักจะไม่รู้ว่าฉันกำลังทำอะไร
เจอราร์ดโรช

1

แนวคิดทั่วไปบางอย่างที่ไม่ได้ตรวจสอบรายละเอียดของ Rhythmbox & Banshee จริงๆ:

  1. การนำเข้าฐานข้อมูลเพลงควรเป็นเรื่องง่ายเหมือนกับให้ Rhythmbox สแกนไฟล์ทั้งหมดอีกครั้ง

  2. หากคุณได้กำหนดค่า Banshee เพื่อเก็บ playcounts & rating ลงในแท็กของไฟล์เสียงและ Rhythmbox สนับสนุนการนำเข้าการจัดอันดับ Banshee (แอพจำนวนมากจัดเก็บเรตติ้งในรูปแบบ "มาตรฐาน" ที่มากขึ้นหรือน้อยกว่าที่แปลงได้ง่าย และฉันรู้ว่าบันฮีสนับสนุน แต่ฉันไม่แน่ใจว่า Rhythmbox ทำเช่นนั้นแล้วนั่นไม่ควรเป็นปัญหาในการสแกนอีกครั้ง

  3. ภาพหน้าปกมักถูกเก็บไว้พร้อมกับไฟล์เพลงและควรตรวจจับสิ่งเหล่านั้นเมื่อสแกนอีกครั้ง ฉันไม่แน่ใจว่า Banshee มีร้านค้าครอบคลุมที่อื่นด้วยหรือไม่?

  4. ฉันคาดหวังว่า Banshee สามารถส่งออกเพลย์ลิสต์ไปยังรูปแบบเพลย์ลิสต์มาตรฐาน (เช่นไฟล์. m3u / .pls) Rhythmbox นั้นสามารถนำเข้าได้หรือไม่


ฉันเพิ่งค้นพบปลั๊กอินเพื่อบันทึก / อ่านการจัดเรตที่เข้ากันได้กับ FMPSใน Rhythmbox บทความเป็นภาษาฝรั่งเศส แต่ดูเหมือนว่าปลั๊กอินนั้นจะเป็นภาษาอังกฤษ และบางทีใครบางคนสามารถบรรจุมัน ...


มีนามสกุล Banshee banshee-extension-albumartwriterที่เขียนปกอัลบั้มที่ดาวน์โหลดไปยังไดเรกทอรีที่มีเพลงอยู่ (โดยค่าเริ่มต้นจะบันทึกไว้ในไดเรกทอรีแคชเท่านั้น) ซึ่งจะช่วยนำพวกเขาไปยัง Rhythmbox ด้วย


Banshee สามารถส่งออกไปยังรายการเพลง.m3u, .plsและ.xspf, Rhythmbox สามารถนำเข้ารายการเพลงเช่น ( แต่ถ้าคุณมีมากของพวกเขาที่อาจจะมีการทำงานมาก ... )


ฉันบอก Banshee ให้เก็บจำนวนและเรตติ้งในไฟล์มีเดีย แต่มันไม่ได้นำเข้ามาใน rhythmbox ฉันกำลังดูสคริปต์การนำเข้าในขณะนี้ Banshee เป็นรุ่น: 2.9.0 + Really2.6.2-2ubuntu2.1
isaaclw
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.