Скачиваем музыку из vk с помощью python / Хабр

Всем, привет. Я люблю слушать музыку в ВК, так как малоизвестные группы обычно выкладывают свою музыку туда. Приложение, через которое я слушал бесплатно в фоне, почему-то перестало рабоать, и тогда решил скачать музыку на телефон. Тыкать в браузере очень долго, а светиться на сайтах, которые скачивают музыку, я не хотел. Пришла в голову идея скачать музыку с помощью питона. Через официальное API от ВК скачать музыку не выйдет, так как они отключили публичный API для аудио. Сначала был вариант парсить мобильную версию и тащить оттуда ссылки на песни, но я не умею парсить сайты, да и python отличается именно тем, что для любой задачи уже есть модуль. Собственно полазил в google нашел библиотеку vk_api. У нее как раз есть метод, который возвращает ссылки на песни.

Сначала импортируем нужные модули. Модуль time нужен, чтоб посмотреть за сколько скачивались ваши песни. Он не обязателен.

import vk_api
from vk_api import audio
import requests
from time import time
import os

Теперь добавим немного переменных. name_dir — имя папки, в которую скачаются песни (добавил, чтоб все аккуратно было), а path — путь, куда скачаются песни

REQUEST_STATUS_CODE = 200
name_dir = 'music_vk'
path = r'E:\python\course\music\\' + name_dir 
login = '___'  # Номер телефона
password = '___'  # Пароль
my_id = '____'  # Ваш id vk

Здесь создаем нашу папку name_dir, если ее нет.

if not os.path.exists(path):
    os.makedirs(path)

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

vk_session = vk_api.VkApi(login=login, password=password)
vk_session.auth()
vk = vk_session.get_api()  # Теперь можно обращаться к методам API как к обычным 
                                        # классам
vk_audio = audio.VkAudio(vk_session)  # Получаем доступ к audio

Переходи в директорию, куда будем сохранять песни

os.chdir(path)

А вот и алгоритм, который скачивает песни и сохраняет их. vk_audio.get(owner_id=my_id) — возвращает список песен по переданному id. Итерируемся по этому списку, чтоб потом записать каждую песню в файл

time_start = time()
for i in vk_audio.get(owner_id=my_id):
    try:
        r = requests.get(i["url"])
        if r.status_code == REQUEST_STATUS_CODE:
            with open(i["artist"] + '_' + i["title"] + '.mp3', 'wb') as output_file:
                output_file.write(r.content)
    except OSError:
        print(i["artist"] + '_' + i["title"])
time_finish = time()
print("Time seconds:", time_finish - time_start)

У меня 1000 песен качались 600 секунд.
vk_audio.get(owner_id=my_id) — возвращает список. Список выглядит вот так:

[
  {
    "id": 456239850,
    "owner_id": Здесь будет переданный id,
    "url": "https://cs1-67v4.vkuseraudio.net/p9/d6e2cf63cf34b8.mp3?extra=KIpwmZ_N4DW8dxSL5waeW4LtuhKO_6Wjamf1xjc0kg7YT_iGXVtayuRtTU0tspSNAaMGKYqcmLluZXjdLqXifH-p2h83sCpo2yzN3fO2p9M1sOHpx0_X_abTKzVXO7Uwsf6YiZOWL1P5RQmSOZhY3GEz",
    "artist": "Lumen",
    "title": "Sid & Nancy",
    "duration": 247
  },
   .
.. ]

При скачивании песен возникла вот такая ошибка, не совсем понял что это. Мне кажется связано с названием песен. Разбираться было лень, поэтому я просто вывел название песен в консоль. Вот ошибка:

Требуемые модули: request, vk_api, BeautifulSoup4

Бесплатно скачать музыку из ВК

Приложения для Android > Музыка и аудио > Бесплатно скачать музыку из ВКонтакте

Это приложение в настоящее время не активно в Google Play

История рейтинга Google Play и гистограмма

Список изменений

  • 11 марта 2014 г. Неопубликовано

Информация о разработчике

вьентоскуро

Веб-сайт

Н/Д

Описание

ВОЗМОЖЕН НЕСАНКЦИОНИРОВАННЫЙ ПОИСК МУЗЫКИ!

Удобный способ скачать музыку из ВКонтакте прямо на телефон. Поддерживаются расширенные возможности аудио, добавляйте его в свои списки музыки среди всех вконтакте!
Теперь есть поиск дополнительных видео и просмотр их в браузере ( из-за ограничений API ВКонтакте эта опция доступна только .

Скачать пока нет )

Группа в ВКонтакте : http://vk.com/vk_mdownloader

Ключ возможности:

— Скачать аудио в папку Музыка на карту памяти
— Просмотр ваших записей, а также ваших друзей (и просмотр альбомов)
— Просмотр аудио группы
— Просмотр аудио на стенах друзей и групп (анализ первых 2000 записей)
— Добавление песен к вашему аудио, если песен пока нет
— Отображать длину записей
— Показывать битрейт/размер записи
— Синхронизировать с Shazam
— Для просмотра видео и поиска. Просмотр видео только через браузер, к сожалению

Отличие от платной версии: в платной версии нет рекламы и оффлайн режим. Вы можете скачать его здесь: https://play.google.com/store/apps/details?id=com.vientooscuro.downloader

ключевые слова: вконтакте музыка и видео вконтакте скачать музыку, видео вконтакте, видео, музыка, vk music, vk muzika, vk musica, vk,

Последние изменения:
В версии 7.0
— Добавлена ​​история поиска при поиске из приложения меню
— Исправление ошибок
— Добавлена ​​возможность установки размытия фона и изменения степени размытия
— Добавлена ​​возможность загрузки до 5 файлов за раз при двойной загрузке (в настройках можно выбрать старую загрузку )

— Добавлен стандартный фон (выключен в настройках)
— Добавлен запрос на подтверждение выхода из системы
— Увеличены списки флажков

ВОЗМОЖЕН НЕСАНКЦИОНИРОВАННЫЙ ПОИСК МУЗЫКИ!

Удобный способ скачать музыку из ВКонтакте прямо на телефон. Поддерживаются расширенные возможности аудио, добавляйте его в свои списки музыки среди всех вконтакте!
Теперь есть поиск дополнительных видео и просмотр их в браузере ( из-за ограничений API ВКонтакте эта опция доступна только . Скачать пока нет )

Группа ВКонтакте: http://vk.com/vk_mdownloader

Основные возможности:

— Скачать аудио в папку Музыка на карту памяти
— Просмотреть свои записи, а так же своих друзей (и просмотр альбомов)
— Просмотр группы Аудио
— Просмотр аудио на стенах друзей и групп (анализ первых 2000 записей)
— Добавление песен к вашему аудио, если песен еще нет
— Отображение длины записей
— Показывает битрейт/размер записи
— Синхронизировать с Shazam
— Для просмотра видео и поиска. Просмотр видео только через браузер, к сожалению

Отличие от платной версии: в платной версии нет рекламы и оффлайн режим. Скачать можно здесь: https://play.google.com/store/apps/details?id=com.vientooscuro.

downloader

ключевые слова: вконтакте музыка и видео вконтакте скачать музыку, видео вконтакте, видео, музыка, музыка вк ,vk muzika,vk musica,vk,

Последние изменения:
В версии 7.0
— Добавлена ​​история поиска при поиске из меню приложения
— Исправление ошибок
— Добавлена ​​возможность установки размытия фона и изменения степени размытия
— Добавлена ​​возможность загрузки до 5 файлов за раз при двойной загрузке (в настройках можно выбрать старую загрузку)
— Добавлен стандартный фон (выключен в настройках)

— Добавлен запрос на подтверждение выхода из системы
— Увеличены списки флажков

Показать полное описание Скрыть полное описание

Комментарии

У нас недостаточно комментариев для создания облака тегов. Пожалуйста, зайдите позже.

Рейтинг Google Play

Это приложение не имеет рейтинга

Разрешения

Разрешения не найдены

Библиотеки

Мы еще не собрали информацию о библиотеке для этого приложения. Вы можете использовать приложение AppBrain Ad Detector для обнаружения библиотек в приложениях, установленных на вашем устройстве.

VK Music & Video Downloader 2.4 Скачать бесплатно


РЕКЛАМА Д В Е Р Т И С Е М Е Н Т

Описание издателя



Программа, с помощью которой вы можете не только слушать любимую музыку, которую слушают пользователи социальной сети «ВКонтакте», но также ее и скачивать. Скачать бесплатно музыку MP3 и видео MP4

О VK Music & Video Downloader

VK Music & Video Downloader — бесплатное приложение для Android, опубликованное в списке «Другие приложения» раздела «Аудио и мультимедиа».

Разработчик VK Music & Video Downloader — Android_LGE. Последняя версия, выпущенная разработчиком, — 2.4. Это приложение было оценено 3 пользователями нашего сайта и имеет средний рейтинг 3,5.

Чтобы установить VK Music & Video Downloader на Android-устройство, просто нажмите зеленую кнопку «Продолжить в приложении» выше, чтобы начать процесс установки. Приложение размещено на нашем сайте с 24 июня 2013 г. и было загружено 1035 раз. Мы уже проверили, безопасна ли ссылка для загрузки, однако для вашей собственной безопасности мы рекомендуем вам проверить загруженное приложение антивирусом. Если ваш антивирус определяет VK Music & Video Downloader как вредоносное ПО или если ссылка для скачивания com.lgelectronics.vkmusic не работает, воспользуйтесь контактной страницей, чтобы написать нам.

Как установить VK Music & Video Downloader на Android-устройство:
  • Нажмите кнопку «Продолжить в приложении» на нашем сайте. Это перенаправит вас в Google Play.
  • Как только VK Music & Video Downloader появится в списке Google Play вашего Android-устройства, вы можете начать его загрузку и установку. Нажмите на кнопку «Установить», расположенную под строкой поиска и справа от значка приложения.
  • Появится всплывающее окно с разрешениями, необходимыми для VK Music & Video Downloader. Нажмите «Принять», чтобы продолжить процесс.