Скачивание музыки из VK, используя VK api и Python3 / Хабр
Ещё совсем недавно было первое июня, а тут уже первое сентября. Осень на дворе.
Да, недавно тоже так отвернулся, а очнулся — Mail поглотил VK. И началось: видео без рекламы не посмотришь, музыку не послушаешь — запретили правообладатели. Ходят слухи, что вообще запретят. Почуял неладное. А тут как раз такое время года. Вот и подумал, а почему бы мне не собрать свои запасы? Законсервирую свою музыку на своём компе, перекину на диск — слаще любого варенья будет! А поможет мне в этом, как не странно, сам ВК, а точнее — его api. А ещё третий python, встроенная библиотека urllib и библиотека по работе с данным в формате json.
У api vk можно запрашивать информацию о аудиозаписях пользователя. Ответ нам будет приходить в формате json, и в нём будет содержаться количество аудиозаписей пользователя, а также расширенная информация о каждой песне, если такая информация имеется. А главное, что у каждой песни будет url-адрес, по которому она лежит на серверах ВК. Как раз то, что нам нужно.
Для работы с большинством методов api нужен специальный ключ (далее — access_token), который vk выдает приложениям. Как его получить — расскажу чуть позже.
Помните окошко, которое появляется, как только приложение запрашивает доступ к информации с вашей страницы? Нажимая «Разрешить», вы даете приложению право получить access_token на ваше имя, в котором будут содержаться параметры доступа к информации с вашей страницы.
Что ж, начнём?
Откроем вкладку «разработчикам» и создадим новое приложение:
Вводим название вашего приложения и выбираем его тип: standalone-приложение:
Подтверждаем действие через смс, которая падает в ваш мобильный:
Как только мы прошли все формальности, мы получаем id нашего приложения, который будем использовать для получения access_token-a. Откроем ту часть документации, которая посвящена авторизации клиентских standalone-приложений.
Важно
redirect_uri в нашем случае должен быть равен oauth.vk.com/blank.html
, так как другой адрес нужно указывать, только если мы разрабатываем браузерное javascript-приложение.
Так как в нашем приложении мы будем работать с аудиозаписями, в атрибут scope мы передадим параметр audio. Обычно access_token выдается на время. Чтобы получить его бессрочно, в атрибут scope можно передать параметр offline.
Примечания:
- несколько параметров в один и тот же атрибут пишутся через запятую.
- атрибуты в запросе пишутся через амперсанд (&)
Для полной таблицы параметров атрибута scope посетите ссылку.
В итоге в адресной строке мы вбиваем что-то на подобие:
https://oauth.vk.com/authorize/client_id=YOUR_CLIENT_ID&redirect_uri=https://oauth.vk.com/blank.html&display=page&response_type=token
Если у вас всё получилось, вы увидите это окошко.
После успешной авторизации и получения прав доступа вы будете перенаправлены по адресу oauth.vk.com/blank.html
. В адресной строке вы увидите атрибут access_token= YOUR_ACCESS_TOKEN
. Обязательно сохраните этот ключ, чтобы не потерять его в дальнейшем. Именно его мы будем использовать при написании запросов к api.
Для того, чтобы получать список аудиозаписей пользователя, мы воспользуемся методом api audio.get. Как я уже говорил выше, метод audio.get возвращает нам ответ в json-формате. Вот пример json-объекта, который возвращает этот метод.
{ "response": [712, { "aid":393825624, "owner_id":59223044, "artist":"Saint Asonia", "title":"Blow Me Wide Open", "duration":224, "url":"http:\/\/cs9-11v4.vk.me\/p13\/39a25fcb2c8ce0.mp3?extra=hLsHqDEzrwLWudHCpV1RRIAEHmwymoX6DyWikmJFCpjhdS_xrATqtAtC9trWSyyd1asFakko8BvXCTkjfQKEPlqdVFL6", "lyrics_id":"274446714", "genre":18 }, {"aid":392782493, "owner_id":59223044, "artist":"Kongos", "title":"I'm Only Joking", "duration":225, "url":"http:\/\/cs9-12v4. vk.me\/p15\/b4d77a6a010d08.mp3?extra=7PQDPyENs9k029CQcO7hVtYV3AHQx90-ZUxKYKhE3ztr5BY9esrUeLaF-KG-ub1_svELz0E1M5pd6zca3BK12J4EwrnI", "lyrics_id":"184734619" ,"genre":21 } ] }
Итак, как вы видите, объект состоит из словаря с ключом response, по которому хранится массив песен.
Первый объект — количество песен на странице пользователя, а все последующие являются словарями, содержащими информацию о песнях. Воспользуемся методом request.urlopen из библиотеки urllib, который позволяет получать данные, хранящиеся по url-адресу в интернете.
from urllib.request import urlopen
Функция urlopen требует обязательный параметр — url-адрес, который она откроет. В нашем случае — это метод audio.get:
Для обращения к методам api vk нужно дергать методы, расположенные по адресу
https://api.vk.com/method/METHOD_NAME?
, передавая туда все нужные методу аргументы.
Итак, напишем тот урл, который будем открывать:
address = ‘https://api.vk.com/method/audio.get?owner_id=YOUR_OWNER_ID&access_token=YOUR_ACCESS_TOKEN’и откроем его:
data = urlopen(address)
Данные, которые мы получили, надо прочитать и раскодировать, так как нам приходит нераскодированная информация. А так, как это всё завернуто в формат json, то чтобы обращаться со словарём, как с объектом Python, мы должны воспользоваться библиотекой json.
import json
Воспользуемся методом loads(), который превращает строку, содержащую объект формата json, в объект языка Python:
decoded_response = data.read().decode()
final_data = json.loads(decoded_response)
Ура! Теперь мы можем обращаться к данным, содержащимся в переменной final_data. Получим все словари, в которых содержится информация о песнях:
songs = final_data[‘response’][1:]
Этой строчкой мы получили все элементы массива response с 1 по конечный. Теперь будем работать с каждой песней отдельно.
for song in songs: song_artist = song['artist'] song_title = song['title'] song_url = song['url']
Получим информацию, хранящуюся по адресу song_url:
cached_song = urlopen(song_url).read()
И запишем её в файл. Где же его создавать, спросите вы? А для этого вам нужна будет библиотека os. Напишем вне нашего цикла:
import os
И создадим папку music на диске С функцией
os.mkdir(‘C://Music’)
Теперь у нас есть папка, в которую мы хотим записывать наши песни.
Для того, чтобы наши песни хранились в порядке, мы будем создавать группы для каждого артиста. А для того, чтобы понять, нужно ли нам создавать папку, или нет, воспользуемся функцией os.listdir, которая возвращает список объектов по указанному пути:
if song_artist not in os.listdir('C://Music'): os.mkdir('C://Music/%s' %(song_artist))
Теперь мы создаём файл и записываем туда нашу песню.
filename = ‘C://Music/%s/%s.mp3’ %(song_artist, song_title)
file = open(filename, ‘wb’)
file.write(cached_song)
file.close()
Ура. Осталось всего лишь ещё раз посмотреть на красивый код и нажать «Выполнить». Ну, а ещё, конечно, подождать немного, ведь песням нужно какое-то время на запись.
Полный текст программы
from urllib.request import urlopen import json import os os.mkdir('C://Music') address = 'https://api. vk.com/method/audio.get?owner_id=MY_ID&access_token=MY_TOKEN' data = urlopen(address) decoded_response = data.read().decode() final_data = json.loads(decoded_response) songs = final_data['response'][1:] for song in songs: song_artist = song['artist'] song_title = song['title'] song_url = song['url'] cached_song = urlopen(song_url).read() if song_artist not in os.listdir('C://Music'): os.mkdir('C://Music/%s' %(song_artist)) filename = 'C://Music/%s/%s.mp3' %(song_artist, song_title) file = open(filename, 'wb') file.write(cached_song) file.close()
Наслаждайтесь музыкой и любите программирование. До связи!
Как скачать музыку из ВКонтакте на телефон бесплатно: 6 способов
Людей, которые не любят слушать музыку, почти нет. Приятные песни, легкие мелодии, любимые песни — все это можно скачать на телефон и слушать в свободное время в оффлайне. Это удобно, ведь не всегда у вас есть доступ к интернету, например, когда вы в метро или поезде, а послушать любимую музыку хочется. Вот и возникает вопрос: как найти приложение для скачивания музыки из ВКонтакте? Сегодня рассмотрим несколько бесплатных и без рекламы приложений, которые помогут скачать музыку из ВК.
Шесть лучших бесплатных способов скачивания музыки из ВКонтакте
VKMusic
Скачать бесплатно VKMusic
Удобная программа российского производства, которая изначально разрабатывалась только для ВКонтакте. Сейчас работает с YouTube, MailRu, Vimeo и другими сайтами. Приложение предназначено для скачивания любых мультимедийных файлов со всех интернет-ресурсов — то есть вы можете скачивать клипы, видео, а не только песни. Удобная фишка в том, что вы можете скачивать треки не только из собственных аудиозаписей, но и из аудиозаписей ваших друзей и групп. Для этого достаточно ввести свой запрос в строку поиска и выбрать ресурс, на котором нужно найти файл. По мере ввода появляются подсказки, и можно посмотреть информацию об исполнителе трека, других песнях, альбомах и просто похожей музыке. В среднем на поиск уходит пара секунд, а результатом может быть до 1000 файлов на запрос. Затем вы можете прослушать музыку и загрузить нужный файл в созданную папку. Вы можете начать загрузку, нажав кнопку «Добавить в загрузку» или дважды щелкнув по нужному треку.
Приложение имеет два режима загрузки — ручной и автоматический. Вы можете выбрать подходящий с помощью кнопок «Загрузить все» и «Приостановить все».
Все это можно увидеть в подробном видео от автора программы:
Недостаток этого приложения в том, что оно создано для Windows и не будет установлено на телефон. А в целом — очень удобное и, главное, бесплатное приложение.
Через Telegram — бесплатно по телефонуОчень простой способ скачать музыку, если у вас есть Telegram. Но, похоже, сейчас он есть почти у всех. Что вам нужно сделать? Во-первых, вы должны настроить свои записи так, чтобы они были доступны для всех пользователей. После этого заходим в Telegram и в поисковой строке набираем этого бота: https://goo.gl/R3ksZc или напрямую @vk_virus_bot. Вы его запускаете, он спрашивает, откуда вы хотите скачать музыку, вы указываете его и выбираете треки, которые хотите скачать. Они появятся в переписке, нажмите на них и скачайте. Даже если бот перестанет работать, музыка все равно будет в вашей переписке и вы сможете слушать ее офлайн.
Скачать музыку из Музыки ВКонтакте iOS
Это приложение для скачивания музыки из ВКонтакте для iPhone, которое синхронизирует ваше устройство с вашей учетной записью Вконтакте, позволяя вам скачивать ее. Фишка уникального плеера, позволяющая выбирать режим, создавать папки, сортировать, использовать 10-полосный эквалайзер, скачивать любое видео или песню из приложения. Приятным бонусом является то, что вы можете составить собственный плейлист и удалить сразу все скачанные песни через приложение. Если на сайте есть скачанный текст, он отобразится в поиске.
Из минусов — есть реклама, как и в большинстве приложений, но не особо навязчивая (чаще всего — просто полоска внизу экрана, а иногда и перескакивание страниц). Также размер песен не виден ни до, ни после загрузки трека.
Хотя приложение было удалено из AppStore, его можно загрузить из некоторых учетных записей, таких как Общая учетная запись.
Мое аудиоВ приложении много источников звука, например, из ленты новостей, а не только из ваших аудиозаписей. В программе есть две вкладки: Музыка, где можно посмотреть песни, и Загрузки, что позволяет скачать нужные песни, посмотреть и удалить ненужные, что-то переименовать. А также, в отличие от Музыка ВК iOS, вы сможете увидеть размер файла после скачивания.
Недостаток приложения: опять реклама, хотя ее меньше, чем в предыдущем приложении. Ну его нет в свободном доступе, нужно устанавливать не напрямую из AppStore, а из Shared account.
Kiss VKПерейти в Kiss VK
Очень простое приложение, за 1-2 секунды вы сможете найти нужную песню и скачать ее. Вы можете скачать из списка ваших аудио, или путем поиска на других ресурсах. Вы вводите название и исполнителя в строку поиска, выбираете нужный файл и скачиваете.
BOOM: плеер для музыкиСкачать бесплатно BOOM: плеер для музыки из AppStore
Официальное музыкальное приложение для скачивания песен из ВКонтакте и Одноклассников. Вы можете скачивать со своих аудиозаписей, из групп, искать новую музыку в новостных лентах и с друзьями, делиться любимыми треками и делать многое другое. Также есть расширенный поиск, где можно указать жанр, музыкальную категорию и т.д.
Приложение бесплатное, вы можете слушать музыку без доступа к интернету, без рекламы. Но покупки в программе платные. Например, месячная подписка стоит 149 руб./мес. Это дает вам доступ ко всем функциям программы.
Это были самые удобные приложения, с помощью которых можно скачать музыку из ВКонтакте на Айфон. Скачивайте любимые песни и слушайте их на здоровье!
Олег Цегельник
Здравствуйте! Я основатель Apps4Life. Это началось как хобби, но превратилось в отличный и полезный проект, помогающий людям познакомиться с цифровым миром мобильных игр, дополнений, веб-сервисов и криптоиндустрии.
save vk — Googlesuche
AlleVideosBilderNewsMapsShoppingBücher
suchoptionen
Tipp: Begrenze diesuche auf deutschsprachige Ergebnisse. Du kannst deinesuchsprache in den Einstellungen ändern.
Einfach Загрузка видео и музыки ВКонтакте — Savefrom.net
de.savefrom.net Видео, музыка и фотографии от ВКонтакте. Nutzen dazu einfach das praktische Add-on SaveFrom.net Helper для браузера. Эс…
Загрузчик видео ВКонтакте онлайн — MP3, MP4, HD!
www.downloadvideosfrom.com › VK
Перейдите к видео ВКонтакте, которое хотите скачать. Скопируйте URL-адрес видео и вставьте его в поле на этой странице. Выберите между загрузкой видео в обычном качестве (MP4), …
Скачать аудио и видео ВКонтакте — PasteDownload
pastedownload.com › vk-downloader
Лучший бесплатный онлайн-загрузчик видео ВКонтакте (как публичное, так и приватное видео) . Скачивайте и сохраняйте видео ВК бесплатно без ограничения скорости. Просто вставьте URL и загрузите …
Vk Video Downloader — SaveFrom.net — Y2bs
y2bs.com › vk-video-downloader
Шаг 1: Запустите приложение ВКонтакте и найдите видео, которое хотите сохранить, нажмите кнопку «Поделиться» под дисплеем и выберите Копировать ссылку. Шаг 2 :Вставьте ссылку в белое …
VK Video Downloader — Скачать видео из ВКонтакте в высоком качестве!
www.vkdownload.one
С помощью VKDownload.one вы можете легко загружать видео из ВКонтакте и сохранять их на свое устройство для последующего воспроизведения. Это полезно, когда вы находитесь в пути или в …
Загрузчик видео из ВКонтакте — MP4 и MP3 ВКонтакте — SteptoDown
steptodown.com › vk-video-downloader
Загрузчик видео из ВКонтакте действует как мост между вашим компьютером и серверами социальных сетей. Он просто скачивает видео из ВК и отправляет его …
Онлайн загрузчик видео ВКонтакте бесплатно Mp4 — GiveFastLink
givefastlink.com › vk-video-downloader
Как скачать видео ВКонтакте с помощью бесплатного загрузчика ВКонтакте GiveFastLink ? ; 1- Скопируйте URL-адрес видео ВКонтакте; 2- Вставьте URL-адрес видео ВКонтакте; 3- Загрузите лучшее качество и сохраните его!
VK Video Downloader — Сохраняйте фото, музыку и видео ВКонтакте онлайн
save-from.com › как-сохранить-видео-из-vk
Загрузите ссылку VK, выполнив три простых шага, чтобы сохранить любимое видео видео на свое устройство через веб-сайт Save-From.com. · 1. Скопируйте и вставьте URL-адрес · 2.