Pull to refresh

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

Reading time2 min
Views9.4K
У вас в vk.com есть любимые музыкальных группы или друзья, с которыми ваши музыкальные вкусы совпадают? У меня да. И хотелось иметь актуальную локальную копию музыки этих групп и друзей, чтобы слушать её, например в машине, телефоне, плейере или где-нибудь ещё. Так родилась идея создания консольного open source приложения 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


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

UPDs
В новой версии vmd исправлена ошибка с неправильной кодировкой некоторых треков.

Режим рекомендации (опция доступна начиная с версии 0.03):
Этот режим дает возможность скачать в некотором смысле «пересечение» аудиозаписей ваших друзей. На самом деле, наши друзья скорее всего имеют схожие с нами музыкальные вкусы. Можно получить дамп аудиозаписей всех друзей и скачивать только те, которые встречаются минимум у 2-х или у 3-х друзей. Изменяя коэффициент можно получать разные наборы. Пример. Если мы хотим скачать все mp3 которые пересекаются не менее 5 раз:
$ vmd --rec 5
Спасибо хаброюзеру spiff за идею!

версия для Mac OS доступна для скачивания
Tags:
Hubs:
+25
Comments59

Articles

Change theme settings