Banshee에서 Rhythmbox로 마이그레이션하는 방법?


13

결정된대로 Ubuntu Precise 12.04는 Rhythmbox 를 기본 음악 플레이어로 사용합니다. 밴시를 사용할 수 없다는 것을 의미하지는 않지만 밴시로 전환하고 싶습니다.

나는 오랫동안 Rhythmbox 팬 이었지만 Natty의 Banshee로 전환 한 후 시도해보고 완전히 마이그레이션하기로 결정했습니다. 그러나 나는 그것에 매우 만족하지 않습니다. 그것은 나에게 많은 지연이 있으며 다른 문제가 있습니다.

모든 Banshee 데이터를 Rhythmbox 로 내보내고 싶습니다 . 그것은 포함:

  • 음악 라이브러리
  • 재생 목록
  • 바람직하게는 플레이 횟수와 등급
  • 라디오 방송국
  • 표지 사진

이 모든 데이터를 Rhythmbox로 옮기고 기본 음악 플레이어로 작동하게하고 부드럽게 완전히 전환하려면 어떻게해야합니까?

답변:


12

Banshee 2.3.3 / Rhythmbox 2.95에 적용되는 2 센트 :

  1. 음악 라이브러리 : Music 폴더를 Rhythmbox에 지정하면 가져옵니다.
  2. 재생 목록 :
    • 다이내믹 플레이리스트 : 내가 아는 한 재생 목록 을 다시 만들어야합니다. 각 플레이어의 기능 세트가 다르기 때문에 추가로 복잡하지 않습니다.
    • 정적 재생 목록 : Banshee에서 .m3u로 내보내고 Rhythmbox에서 다시 가져 오기
  3. 플레이 횟수 및 등급
    • 플레이 횟수 : 모르겠다
    • 등급 : 각 별에 대한 동적 재생 목록을 만듭니다 (예 : "rating1, rating2, rating3, rating4, rating5"동적 재생 목록을 만든 다음 .m3u로 내 보낸 다음 리듬 박스로 가져 오기) 방금 테스트 한 결과 두 플레이어 모두 파일 이름을 사용합니다 ~에 상대적이므로 괜찮을 것입니다.
    • 두 가지 방법 중 하나는 # 538549 를 구현하는 것 입니다. 등급에 ID3v2 Popularimeter 사용 (아마도 Play Count)
  4. 라디오 방송국 : 모르겠다
  5. 표지 그림 : "마이그레이션"옵션이 아니지만 Rhythmbox 2.9x / 3는 표지를 다루는 데 더 효과적 입니다. 에서 Cover Art및 Cover Art Search플러그인 을 활성화하여 사용해보십시오 Edit / Plugins. 필자의 경우 (폴더에 .jpg 또는 ID3으로 저장된 표지 그림), 잘 인식됩니다.

희망이 도움이됩니다! 행운을 빕니다 :)


@rafalcieslak 환영합니다 :). 나는 또한 Rhythmbox를 많이 좋아하며, 2.95는 정말 고무적인 발전입니다!
— Ronan Jouchet 2012 년

짜증나 재생 목록, 재생 횟수 또는 표지 아트 등을 쉽게 가져 오거나 내보낼 수 없습니다. 업그레이드하면 밴시 가 제거 되므로 업그레이드 할 때 위의 모든 내용이 손실되므로 12.04로 업데이트하지 못하게 됩니다. 또한 밴시는 재생 목록 (복수) 내보내기 기능이 없다는 것을 깨달았습니다. 각 재생 목록을 개별적으로 내 보내야합니다! 처음에는 밴시를 버리고 리듬 박스를 사용해야했습니다. (나는 V11.10와 우분투 시작)
— 제라드 로슈

@BullfrogBlues : 잘못되었습니다. 12.04로 업그레이드 해도 Banshee 가 제거 되지 않으므로 계속해도 안전합니다! :) 또한 Banshee를 제거한 경우에도 다시 설치 한 후에는 모든 데이터가 그대로 유지됩니다. 굉장하지 않습니까? 그러나 현재 음악 플레이어를 선호하는 경우 12.04에서 Banshee를 계속 사용할 수 있으며 Rhythmbox로 이동할 필요가 없습니다. 계속해서 12.04로 업그레이드하십시오!
— Rafał Cieślak

나는 밴시를 선호하지 않습니다. 나는 이미 업그레이드를 시도했으며 특정 패키지가 제거되고 밴시가 설치되었다는 메시지가 표시되었습니다. 프롬프트 메시지를 잘못 이해했을 수도 있지만 밴시는 12.04에서 지원되는 패키지가 아니기 때문에 제거 될 것이라고 말했습니다. 어느 쪽이든, 업그레이드를 진행하는 데 자신감을 가지지 않았습니다. 그러나 ~/username/.config/banshee-1/*밴시 db가 포함 된 밴시 구성 파일 은 업그레이드 중 확인해야합니다.
— Gerard Roche

@rafalcieslak 참고 일부 응용 프로그램 이 제거되고 밴시는 askubuntu.com/questions/111163/
— Gerard Roche

3

리듬 박스 - 밴시 가져 오기 스크립트는 마이그레이션 할 플레이 횟수 및 등급 . @xiphosurus에게 감사합니다. 그러나 스크립트가 작동하려면 밴시 및 리듬 박스 데이터베이스의 위치를 ​​알려야합니다.

스크립트 준비

리듬 박스 및 밴시 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'

다음과 같이 경로 /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
    

부록

리듬 박스-밴시-가져 오기 스크립트
#!/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이 있습니다. 실제로 설치하거나 수행중인 작업에 대한 단서가 없을 때 설치하는 것을 좋아하지 않습니다. 자주입니다. 나는 종종 내가 뭘하는지 모른다.
— Gerard Roche

1

실제로 Rhythmbox & Banshee 세부 사항을 실제로 조사하지 않은 몇 가지 일반적인 아이디어 :

  1. 음악 데이터베이스를 가져 오는 것은 Rhythmbox가 모든 파일을 다시 스캔하도록하는 것만 큼 쉬워야합니다.

  2. 재생 횟수 및 등급을 오디오 파일의 태그에 저장하도록 Banshee를 구성한 경우 Rhythmbox는 Banshee 등급 가져 오기를 지원합니다. Banshee가이를 지원한다는 것을 알고 있지만 Rhythmbox가 지원하는지 잘 모르겠습니다.), 다시 스캔해도 문제가되지 않습니다.

  3. 표지 사진은 종종 음악 파일과 함께 저장되며 다시 스캔 할 때도 감지해야합니다. Banshee가 다른 곳에 덮개를 저장하는지 잘 모르겠습니다.

  4. Banshee가 Rhythmbox가 가져올 수있는 표준 재생 목록 형식 (예 : .m3u / .pls 파일)으로 재생 목록을 내보낼 수있을 것으로 기대합니까?


방금 Rhythmbox에서 FMPS 호환 등급을 저장 / 읽기위한 플러그인을 찾았 습니다 (밴시도 사용하는 등급입니다). 기사는 프랑스어로되어 있지만 플러그인 자체는 영어로 보입니다. 그리고 누군가가 그것을 포장 할 수 있습니다 ...


banshee-extension-albumartwriter다운로드 한 앨범 아트를 음악이 포함 된 디렉토리 (기본적으로 캐시 디렉토리에만 저장 됨)에 기록 하는 밴시 확장 프로그램이 있어 리듬 박스로 가져 오는 데 도움이됩니다.


밴시는에 재생 목록을 내보낼 수 있습니다 .m3u, .pls& .xspf(... 많은 일을하지만, 당신이 그들을 많이있는 경우, 그 수 있음), 리듬은 재생 목록을 가져올 수 있습니다.


Banshee에게 카운트와 등급을 미디어 파일에 저장하라고했지만 리듬 박스로 가져 오지는 않았습니다. 현재 가져 오기 스크립트를보고 있습니다. 밴시는 버전 : 2.9.0 + really2.6.2-2ubuntu2.1
— isaaclw
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.