nvbn 30.05.2012 15:46

Мой OpenSource проектRhythmbox плагин для проигрывания музыки из Google Play

Сейчас уже многие пользуются Google Музыкой - облачным хранилищем и проигрывателем песен.
Всё в этом сервисе удобно: и возможность заливки 20000 треков, и удобный клиент на Android, и симпатичная web-версия.
Но в последнее время вкладка браузера с облаком начала кушать по 600мб+ оперативки и частенько показывать "Опаньки".
Да и интеграция с системой у приложения никакая.

Итак, встречайте - rhythmbox-gmusic


Плагин написан на python с использованием неофициального api.

Пользователи ubuntu 12.04 могут поставить версию из ppa:
1
2
3
sudo add-apt-repository ppa:nvbn-rm/ppa
sudo apt-get update
sudo apt-get install rhythmbox-gmusic


Остальные могут склонировать репозиторий и установить через setup.py


Тэги: google music python rhythmbox очередное поделие
+ 6 -
Похожие Поделиться

mealsforall 30.05.2012 18:58 #
Идея замечательная, спасибо!

Для тех, кто устанавливает через setup.py:
1
2
3
4
5
sudo apt-get install python-setuptools python-decorator python-mutagen
sudo touch /usr/lib/rhythmbox/plugins/gmusicapi.log
sudo chown $USER /usr/lib/rhythmbox/plugins/gmusicapi.log
sudo python setup.py build
sudo python setup.py install


Из скачанного архива извлечь сам плагин и положить в /usr/lib/rhythmbox/plugins/
1
sudo cp -R ~/Downloads/rhythmbox-gmusic/debian/rhythmbox-gmusic/usr/lib/rhythmbox/plugins/googleplaymusic /usr/lib/rhythmbox/plugins/



Автор, давай исправим английский текст?

This plugin request authoristaion -> This plugin requires you to authenticate to Google Play

You need to authenticate in google play -> Please enter your Google account credentials

Google Play authorisation -> Your Google account credentials

Authenticate -> Click here to login

А где оно хранит логин и пароль? Можно ли писать лог не в /usr/lib ?

Почему оно падает после выхода из Rhythmbox и повторного захода? (Ubuntu 12.04 x64)

(rhythmbox:31519): libdmapsharing-WARNING **: Unable to notify network of media sharing: Could not create AvahiEntryGroup for publishing
2012-05-30 10:55:45,870 - gmusicapi.Api - WARNING - Received an unexpected response from call loadalltracks.
2012-05-30 10:55:45,895 - gmusicapi.Api - WARNING - error was: Failed to validate field 'playlist' list schema: additional property 'storeId' not defined by 'properties' are not allowed in list item
2012-05-30 10:55:46,315 - gmusicapi.Api - WARNING - Received an unexpected response from call loadalltracks.
2012-05-30 10:55:46,339 - gmusicapi.Api - WARNING - error was: Failed to validate field 'playlist' list schema: additional property 'storeId' not defined by 'properties' are not allowed in list item
2012-05-30 10:55:46,714 - gmusicapi.Api - WARNING - Received an unexpected response from call loadalltracks.
2012-05-30 10:55:46,739 - gmusicapi.Api - WARNING - error was: Failed to validate field 'playlist' list schema: additional property 'storeId' not defined by 'properties' are not allowed in list item
2012-05-30 10:55:47,027 - gmusicapi.Api - WARNING - Received an unexpected response from call loadalltracks.
2012-05-30 10:55:47,047 - gmusicapi.Api - WARNING - error was: Failed to validate field 'playlist' list schema: additional property 'storeId' not defined by 'properties' are not allowed in list item
2012-05-30 10:55:48,322 - gmusicapi.Api - WARNING - Received an unexpected response from call loadplaylist.
2012-05-30 10:55:48,330 - gmusicapi.Api - WARNING - error was: Failed to validate field 'magicPlaylists' list schema: Failed to validate field 'playlist' list schema: additional property 'storeId' not defined by 'properties' are not allowed in list item
2012-05-30 10:55:48,576 - gmusicapi.Api - WARNING - Received an unexpected response from call loadplaylist.
2012-05-30 10:55:48,582 - gmusicapi.Api - WARNING - error was: Failed to validate field 'playlist' list schema: additional property 'storeId' not defined by 'properties' are not allowed in list item

(rhythmbox:31519): RhythmDB-WARNING **: attempting to create entry that already exists: c0cc10cc-2534-488a-bf65-f2fef8ddad5a/561073d7-3dec-309c-acb1-e62a1350aba0
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/rhythmbox_gmusic-1.0dev-py2.7.egg/rhythmboxgmusic/__init__.py", line 31, in do_activate
self.source.setup()
File "/usr/local/lib/python2.7/dist-packages/rhythmbox_gmusic-1.0dev-py2.7.egg/rhythmboxgmusic/__init__.py", line 105, in setup
self.init_authenticated()
File "/usr/local/lib/python2.7/dist-packages/rhythmbox_gmusic-1.0dev-py2.7.egg/rhythmboxgmusic/__init__.py", line 179, in init_authenticated
pl.setup(id)
File "/usr/local/lib/python2.7/dist-packages/rhythmbox_gmusic-1.0dev-py2.7.egg/rhythmboxgmusic/__init__.py", line 162, in setup
GBaseSource.setup(self)
File "/usr/local/lib/python2.7/dist-packages/rhythmbox_gmusic-1.0dev-py2.7.egg/rhythmboxgmusic/__init__.py", line 105, in setup
self.init_authenticated()
File "/usr/local/lib/python2.7/dist-packages/rhythmbox_gmusic-1.0dev-py2.7.egg/rhythmboxgmusic/__init__.py", line 126, in init_authenticated
entry = RB.RhythmDBEntry.new(shell.props.db, gentry, getattr(self, 'id', '0') + '/' + song['id'])
File "/usr/lib/python2.7/dist-packages/gi/types.py", line 72, in constructor
return info.invoke(cls, *args, **kwargs)
TypeError: constructor returned NULL
nvbn 30.05.2012 19:46 #
А где оно хранит логин и пароль? Можно ли писать лог не в /usr/lib?

Логин и пароль хранит в gconf, gnome-keyring с rhythmbox из gi.repository сегфолтится.

Автор, давай исправим английский текст?

Ок, вечером залью с исправлениями и переводами.

Почему оно падает после выхода из Rhythmbox и повторного захода? (Ubuntu 12.04 x64)

Какие-нибудь другие плагины установлены?
mealsforall 30.05.2012 22:26 #
Какие-нибудь другие плагины установлены?

Падает именно сам плагин, отображается с красным кружочком в списке плагинов. Из других плагинов всё стандартное по дефолту: Audio CD Rec, Cover Art, DAAP, lastfm, mediaserver2 d-bus, mpris d-bus, Notification, iPod, MTP.
ananas 31.05.2012 14:29 #
а что, самим play.google.com уже можно пользоваться? а то меня посылают, обвиняя в не 100%-м американстве
nvbn 01.06.2012 02:02 #
Там нужно 1 раз зайти с американского ip, потом работает.