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 ArtCover 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.