Как перейти с Banshee на Rhythmbox?

Как было решено, Ubuntu Precise 12.04 будет использовать Rhythmbox в качестве музыкального проигрывателя по умолчанию. Я знаю, что это не значит, что я не смогу использовать Banshee, но я бы хотел перейти на него.

Я был поклонником Rhythmbox в течение долгого времени, но после перехода на Banshee в Natty я решил попробовать и полностью перешел на него. Однако я не очень доволен этим, он сильно отстает от меня и имеет некоторые другие проблемы.

Я хотел бы экспортировать все данные Banshee в Rhythmbox . Это включает в себя:

  • Музыкальная библиотека
  • Плейлисты
  • Предпочтительно плей-листы и рейтинги
  • Радиостанции
  • Снимки обложек

Что я должен сделать, чтобы переместить все эти данные в Rhythmbox, заставить их работать в качестве музыкального проигрывателя по умолчанию и плавно переключиться на них полностью?

13
задан 5 November 2011 в 13:18

4 ответа

Мои два цента, применимые к Банши 2.3.3 / Rhythmbox 2.95:

  1. Библиотека Music: просто укажите свою папку Music к Rhythmbox, и это будет импортировано
  2. Плей-листы:
    • Динамические Плей-листы: насколько я знаю, что необходимо будет воссоздать их. Не забава, с дополнительной сложностью из-за различных наборов функций каждого плеера.
    • Статические Плей-листы: просто экспортируйте их как .m3u в Банши и повторно импортируйте их в Rhythmbox
  3. Playcounts и оценки
    • Playcounts:Я не знаю
    • Оценки: создайте динамический плей-лист для каждой из звезд (т.е. создайте "rating1, rating2, rating3, rating4, rating5" динамические плей-листы, затем экспортируйте их как .m3u, затем импортируйте их в Rhythmbox. Я просто протестировал его, оба игрока используют имена файлов относительно ~, таким образом, Вы будете в порядке.
    • Одно решение обоих состояло бы в том, чтобы реализовать № 538549 - Использование ID3v2 Popularimeter для Оценки (возможно, количество Игры)
  4. Радиостанции:Я не знаю
  5. Картинки на обложке: в то время как не опция "миграции", Rhythmbox 2.9x/3 делает лучшее задание при обработке искусства покрытия. Попробуйте его путем включения Cover Art и Cover Art Search плагины в Edit / Plugins. В моем случае (покрывают искусство, сохраненное как .jpg в папке, или как ID3), они распознаны очень хорошо

Надежда, которая помогает! Удача :)

12
ответ дан 5 November 2011 в 13:18

Скрипт rhythmbox-banshee-import перенесет счетчиков игр и рейтинги . Благодаря @xiphosurus. Однако, чтобы скрипт работал, вы должны указать ему, где находятся базы данных banshee и rhythmbox.

Подготовка сценария

Найдите файлы ритмбоксов и банши БД. Расположение по умолчанию будет:

/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
    

Приложение

Сценарий rhythmbox-banshee-import
#!/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)
0
ответ дан 5 November 2011 в 13:18

Некоторые общие представления, на самом деле не исследуя Rhythmbox & Banshee детализируют все же:

  1. Импорт музыкальной базы данных должен быть столь же легким как разрешение Rhythmbox просканировать все файлы снова.

  2. Если Вы настроили Банши для хранения playcounts и оценок в теги звукового файла и поддержек Rhythmbox, импортирующих оценки Банши (много оценок магазина приложений в более или менее "стандартизированном" формате, который легко преобразовать или даже работает без преобразования через аудиоплееры, и я знаю поддержки Банши, что, но я не уверен, делает ли Rhythmbox), то это не должна быть проблема о пересканировании также.

  3. Картинки на обложке часто хранятся вместе с музыкальными файлами, и они должны быть обнаружены на пересканировании также. Я не уверен, хранит ли Банши также покрытия в другом месте?

  4. Я ожидаю, что Банши может экспортировать плей-листы в некоторый стандартный формат плей-листа (например, .m3u/.pls файлы), который может импортировать Rhythmbox?


Я просто нашел, что плагин сохранял/читал FMPS-совместимые оценки в Rhythmbox (это - оценки, поскольку Банши также использует их). Статья находится на французском языке, но сам плагин, кажется, находится на английском языке. И возможно кто-то может упаковать его...


Существует расширение Банши banshee-extension-albumartwriter который пишет загруженное искусство альбома в каталог, который содержит музыку (по умолчанию, это только сохраняется в каталоге кэша), который должен помочь получить их в Rhythmbox также.


Банши может экспортировать плей-листы в .m3u, .pls & .xspf, Rhythmbox может импортировать такие плей-листы (но если у Вас есть многие из них, которые могли бы быть большой работой...).

1
ответ дан 5 November 2011 в 13:18

Для импорта рейтингов и количества игр используйте этот скрипт! Работал для меня!

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

0
ответ дан 5 November 2011 в 13:18

Другие вопросы по тегам:

Похожие вопросы: