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

в 17:34, , рубрики: console, open source, perl, VK::App, vkonakte, Вконтакте, музыка, я пиарюсь, метки: , , , , ,

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

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

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

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

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

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

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

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

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

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

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

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

    $ vmd --gid teamfly

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

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

ToDo

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

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

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

Автор: genaev

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js