0byte — Качаем музыку из ВКонтакте.
ВКонтакте — это одна из наиболее популярных социальных сетей. Что мне больше всего в ней понравилось (и, фактически, что меня еще в ней удерживает) — это огромнейшая коллекция музыки. Вот только доставать ее оттуда не очень удобно, особенно пользователю Linux: нужно или использовать скрипты (greasemonkey) и/или расширения для браузера, или ковыряться в кэше того самого браузера, или пользоваться софтом для Windows, который неудобен и все время норовит выкрасть пароль. Нужно сказать, что и сам поиск музыки там не слишком удобный: часто попадаются дубликаты, нету никакой сортировки и т.д. Помучавшись немного с всевозможными способами получения музыки оттуда, я решил написать свою кроссплатформенную программку для того, чтобы можно было без лишних телодвижений скачивать оттуда нужные аудиозаписи.
Вот так и появилась на свет программа MuDo.
Программа написана на python с использованием библиотек PyQt и libxml2dom. Интерфейс создан таким образом, чтобы дубликаты "самоуничтожались": в программе задействована группировка сначала по исполнителю (названию), потом по названию (исполнителю), а потом по продолжительности. Таким образом, можно выбрать как конкретный дубликат (бывает нужно, если, к примеру, один из серверов ВК не работает), раскрыв список, так и первый из них, не раскрывая список. Группировку можно отключить. В программе фиксировано заданы действия вывода ссылки на stdout, а также копирование в буффер (как в selection, так и в обычный). В конфигурационном файле (~/.mudorc) можно задать свои действия. Например, мой конфигурационный файл содержит такие строки:
http://pastebin.com/f63780daa
Где, %a — исполнитель, %t — название, %d — продолжительность, %u — URL, %% — символ "%".
Программам в секции SendTo все параметры будут передаваться как есть, в секции SendEscapedTo — специальные символы будут экранированы.
Для возможности скачивать музыку, к сожалению, необходимо иметь аккаунт ВК. Возможность входа по логину и паролю пока не реализована (не хватило времени), поэтому входить можно только по cookies, получить которые очень просто:
1) Зайти на любую страницу ВК
2) Ввести в адресную строку "javascript:document.write(document.cookie);" и нажать enter.
3) Скопировать полученный текст в окно программы.
Можно поставить галочку "Save account data" и больше ничего не вводить.
Поскольку программа распространяется под GPL, в том, что она не ворует пароли, убедиться можно самостоятельно.
Вот, вроде бы, и все. Осталось только выложить ссылки на скачку:
http://mudo.googlecode.com/ — googlecode'овский проект.
http://mudo.googlecode.com/files/mudo-0.1-alpha1.tar.gz — исходный код.
http://mudo.googlecode.com/files/mudo-0.1-alpha1-win32.exe — сборка под Windows.
svn:
Запускать следует файл main.py.
Для установки libxml2dom следует скачать ее с официального сайта, распаковать и выполнить две команды:
Буду рад услышать комментарии, пожелания добавления/изменения возможностей, багрепорты.
P.S. В дальнейшем хочу сделать версию на C++/Qt, ибо питон+PyQt слишком тяжелые.
P.P.S. Не знаю точно, куда писать, поэтому пишу здесь:
Когда я вставил в пост те строки, которые сейчас на pastebin'е, и запостил их, меня перекинуло на страницу, я так понимаю, хостера "insecure request".
UPD 1 Первый багфикс :) Ссылка на патч: http://mudo.googlecode.com/files/mudo-0.1-alpha1-1.patch. Ссылка на программу ведет на исправленную версию.
Этот и все дальнейшие патчи будут применяться следующей командой в папке с программой:
patch -p0 -i <имя_файла.patch>
UPD 2 Перекочевал на googlecode, чтобы не ютиться на ftp'шниках. C svn, все таки, удобнее работать, хоть и программа маленькая. Адрес — http://mudo.googlecode.com/
Вот так и появилась на свет программа MuDo.
Программа написана на python с использованием библиотек PyQt и libxml2dom. Интерфейс создан таким образом, чтобы дубликаты "самоуничтожались": в программе задействована группировка сначала по исполнителю (названию), потом по названию (исполнителю), а потом по продолжительности. Таким образом, можно выбрать как конкретный дубликат (бывает нужно, если, к примеру, один из серверов ВК не работает), раскрыв список, так и первый из них, не раскрывая список. Группировку можно отключить. В программе фиксировано заданы действия вывода ссылки на stdout, а также копирование в буффер (как в selection, так и в обычный). В конфигурационном файле (~/.mudorc) можно задать свои действия. Например, мой конфигурационный файл содержит такие строки:
http://pastebin.com/f63780daa
Где, %a — исполнитель, %t — название, %d — продолжительность, %u — URL, %% — символ "%".
Программам в секции SendTo все параметры будут передаваться как есть, в секции SendEscapedTo — специальные символы будут экранированы.
Для возможности скачивать музыку, к сожалению, необходимо иметь аккаунт ВК. Возможность входа по логину и паролю пока не реализована (не хватило времени), поэтому входить можно только по cookies, получить которые очень просто:
1) Зайти на любую страницу ВК
2) Ввести в адресную строку "javascript:document.write(document.cookie);" и нажать enter.
3) Скопировать полученный текст в окно программы.
Можно поставить галочку "Save account data" и больше ничего не вводить.
Поскольку программа распространяется под GPL, в том, что она не ворует пароли, убедиться можно самостоятельно.
Вот, вроде бы, и все. Осталось только выложить ссылки на скачку:
http://mudo.googlecode.com/ — googlecode'овский проект.
http://mudo.googlecode.com/files/mudo-0.1-alpha1.tar.gz — исходный код.
http://mudo.googlecode.com/files/mudo-0.1-alpha1-win32.exe — сборка под Windows.
svn:
svn checkout http://mudo.googlecode.com/svn/trunk/ mudo
Запускать следует файл main.py.
Для установки libxml2dom следует скачать ее с официального сайта, распаковать и выполнить две команды:
1 2 3 |
python setup.py build |
Буду рад услышать комментарии, пожелания добавления/изменения возможностей, багрепорты.
P.S. В дальнейшем хочу сделать версию на C++/Qt, ибо питон+PyQt слишком тяжелые.
P.P.S. Не знаю точно, куда писать, поэтому пишу здесь:
Когда я вставил в пост те строки, которые сейчас на pastebin'е, и запостил их, меня перекинуло на страницу, я так понимаю, хостера "insecure request".
UPD 1 Первый багфикс :) Ссылка на патч: http://mudo.googlecode.com/files/mudo-0.1-alpha1-1.patch. Ссылка на программу ведет на исправленную версию.
Этот и все дальнейшие патчи будут применяться следующей командой в папке с программой:
patch -p0 -i <имя_файла.patch>
UPD 2 Перекочевал на googlecode, чтобы не ютиться на ftp'шниках. C svn, все таки, удобнее работать, хоть и программа маленькая. Адрес — http://mudo.googlecode.com/