понедельник, 7 января 2013 г.

Быстрое добавление композиций в last.fm из vk.com

Я все как-то обходил вниманием last.fm, слушаю то пандору, то просто 42.fm. Но last.fm хороша тем, что безупречно подбирает что-то, что будет точно  Вам по вкусу :). По этому было решено "перенести" музыку из vk.com на last.fm. Так как композиций на данный момент у меня в профиле vkонтакта 445, то делать это в ручную как-то даже не прилично.
Был написан маленький скриптик -  скробблер vk => last.fm.

Опишу особенности реализации. Чтобы воспользоваться api last.fm необходимо получить две строки - ключ для api и некое секретное значение(ну а еще быть там зарегистрированным ;)) ).
Проходим по адресу http://www.lastfm.ru/api/accounts, регистрируем свое приложение, запоминаем строки.
Идем на http://code.google.com/p/pylast/, эсвээним либу(если нет svn - ставим). Сразу же напишем небольшой пример - добавление композиции.


import pylast
API_KEY = "your_key"
API_SECRET = "your_secret"

username = "username"
password_hash = pylast.md5("password")

network = pylast.LastFMNetwork(api_key = API_KEY, api_secret =
    API_SECRET, username = username, password_hash = password_hash)
library = pylast.Library(user = "username", network = network)
track = network.get_track("Rob Dougan", "Clubbed To Death (Kurayamino Variation)")
library.add_track(track)

И видим... Видим ошибку:

Все потому, что авторы библиотеки забыли добавить одну  строчку, из-за чего собственно и происходит баг. Потому идем в исходники библиотеки, а именно на строку примерно 1970(функция add_track() ), добавляем в нее строку params['artist'] = track.get_artist().get_name(). 
Запускаем пример снова... Работает!

Полдела сделано. Теперь ставим либу для работы с vk.com(sudo pip install vkontakte). Как заводить приложение мною уже было рассказано, 

да и вообще как получать и качать музыку тоже, поэтому расписывать смысла нет, 
используя старые наработки для каждой композиции из вконтакте получаем "имя
 исполнителя", "название" иотправляем в last.fm. После всего получаем забитый профиль :) 

Ссылка на скрипт как всегда: https://www.dropbox.com/s/zlqpu4p0q4t32qd/pyLastFM.py  

Комментариев нет:

Отправить комментарий