У вас в vk.com есть любимые музыкальных группы или друзья, с которыми ваши музыкальные вкусы совпадают? У меня да. И хотелось иметь актуальную локальную копию музыки этих групп и друзей, чтобы слушать её, например в машине, телефоне, плейере или где-нибудь ещё. Так родилась идея создания консольного open source приложения vmd (vkontakte music downloader), которое я обещал выложить на github вот в этом посте. Программа мультиплатформенная работает под linux, windows и mac os x. Скачать бинарные сборки под эти ОС можно скачать на домашней странице проекта. Под хабракатом рассказано, как vmd использовать и некоторые технические подробности.
Для использования программы надо получить api_id, перейдя по ссылке: http://vk.com/apps.php?act=add. Если у вас есть api_id существующего приложения — можете использовать его.
После этого надо создать файл с сессией.
Используйте следующею команду для его генерации:
vmd не хранит ваш пароль на жестком диске, используя файл с сессией для авторизации. Эту команду надо выполнить всего один раз!
Теперь можно скачивать музыку.
Если страница пользователя vk.com/genaev или vk.com/id2302071, то для того что бы скачать его музыку надо запустить:
Если страница группы vk.com/teamfly, то надо запустить
Загрузка музыки происходит в текущею директорию. Имеет смысл скопировать vmd куда-нибудь в PATH.
Синхронизация происходит автоматически по имени файла, если трек уже скачан, второй раз он скачиваться не будет. Имена файлов соответствуют шаблону: исполнитель-название_трека-id_трека.mp3. Зачастую в vk.com файлы называют как попало, включая в названия всякие смайлики, сердечки и прочий мусор. Для его удаления была написана функция clean_name().
Я рад, что программа и модуль VK::App оказался полезен не только мне. Уже составлен не большой ToDo лист.
Буду рад любым фитбекам!
UPDs
В новой версии vmd исправлена ошибка с неправильной кодировкой некоторых треков.
Режим рекомендации (опция доступна начиная с версии 0.03):
Этот режим дает возможность скачать в некотором смысле «пересечение» аудиозаписей ваших друзей. На самом деле, наши друзья скорее всего имеют схожие с нами музыкальные вкусы. Можно получить дамп аудиозаписей всех друзей и скачивать только те, которые встречаются минимум у 2-х или у 3-х друзей. Изменяя коэффициент можно получать разные наборы. Пример. Если мы хотим скачать все mp3 которые пересекаются не менее 5 раз:
версия для Mac OS доступна для скачивания
Как 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 доступна для скачивания