- PVSM.RU - https://www.pvsm.ru -

vmd — консольное приложение для скачивания музыки из vk.com

У вас в vk.com есть любимые музыкальных группы или друзья, с которыми ваши музыкальные вкусы совпадают? У меня да. И хотелось иметь актуальную локальную копию музыки этих групп и друзей, чтобы слушать её, например в машине, телефоне, плейере или где-нибудь ещё. Так родилась идея создания консольного open sourse приложения vmd (vkontakte music downloader), которое я обещал выложить на github вот в этом посте [1]. Программа мультиплатформенная работает под linux, windows и mac os x. Скачать бинарные сборки под эти ОС можно скачать на домашней странице [2] проекта. Под хабракатом рассказано, как vmd использовать и некоторые технические подробности.

Как vmd пользоваться?

Для использования программы надо получить api_id, перейдя по ссылке: http://vk.com/apps.php?act=add [3]. Если у вас есть api_id существующего приложения — можете использовать его.

После этого надо создать файл с сессией.
Используйте следующею команду для его генерации:

$ vmd --login <ваш email или номер телефона> --password <ваш пароль> --api_id <ID приложения>

vmd не хранит ваш пароль на жестком диске, используя файл с сессией для авторизации. Эту команду надо выполнить всего один раз!

Теперь можно скачивать музыку.

Скачивание музыки у пользователей

Если страница пользователя vk.com/genaev [4] или vk.com/id2302071 [5], то для того что бы скачать его музыку надо запустить:

    $ vmd --uid genaev
    $ vmd --uid 2302071

Скачивание музыки из групп

Если страница группы vk.com/teamfly [6], то надо запустить

    $ vmd --gid teamfly

Загрузка музыки происходит в текущею директорию. Имеет смысл скопировать vmd куда-нибудь в PATH.

Синхронизация происходит автоматически по имени файла, если трек уже скачан, второй раз он скачиваться не будет. Имена файлов соответствуют шаблону: исполнитель-название_трека-id_трека.mp3. Зачастую в vk.com файлы называют как попало, включая названия всякие смайлики, сердечки и прочий мусор. Для его удаления была написана функция clean_name() [7].

ToDo

Я рад, что программа [2] и модуль VK::App [8] оказался полезен не только мне. Уже составлен не большой ToDo лист.

  • Добавить возможность скачивать плей листы и альбомы
  • Добавить возможность поиска музыки
  • Добавить возможность скачивания в многопоточном режиме
  • Добавить поддержку proxy
  • Добавить возможность скачивания сразу у нескольких пользователей или из нескольких групп
  • Создание GUI интерфейса на QT

Буду рад любым фитбекам!

Автор: genaev


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/vkontakte/10574

Ссылки в тексте:

[1] посте: http://habrahabr.ru/post/146598/

[2] домашней странице: http://genaev.com/pages/vdm

[3] http://vk.com/apps.php?act=add: http://vk.com/apps.php?act=add

[4] vk.com/genaev: http://vk.com/genaev

[5] vk.com/id2302071: http://vk.com/id2302071

[6] vk.com/teamfly: http://vk.com/teamfly

[7] clean_name(): http://genaev.com/-windows

[8] VK::App: http://search.cpan.org/search?query=VK%3A%3AApp&mode=all