10 способов скачать музыку с ВК бесплатно

Что делать, если vkmusic не работает

Разработчик VKmusic признаётся, что время от времени допускает ошибки в своей программе. Но тут же их исправляет и выкладывает для загрузки новую версию программного обеспечения. Ошибки в этом случае могут относиться к версиям операционной системы компьютера или ноутбука.

Парсинг mp3 ссылок

Первую задачу, которую, по-моему, следует решить – сделать ( или найти ) нормальный парсер ссылок mp3 из audio_api_unavailable. Дабы облегчить людям жизнь, представляю код на c с extern-C методами, который можно импортировать почти из любого языка. Ну и его версия, адаптированная в виде Extension, для python – ссылка.

P.S. Данный модуль для python можно установить через pypi pip install vk_audio. Ну и соответственно методы :

Download-music-vkontakte (dmv)

Сервис Download-music-vkontakte, возможно, покажется вам более удобным, чем 2 предыдущих. Он загружает на свою страницу не только записи из вашего аккаунта, но и те, что пользуются популярностью у обитателей ВКонтакта (популярные), соответствуют вашим музыкальным предпочтениям (рекомендуемые) и были прослушаны вами какое-то время назад (прослушанные).

Работает как браузерный плагин, нуждается в установке на компьютер.

M3u8 в mp3

Наверняка, многим знакомая ситуация – получили ссылку, а она ведет на какой-то “непонятный”m3u8 файл. Рабочий вариант получить играбельную ссылку на mp3 была найдена уже довольно давно. Не буду тянуть:

Через регулярку (sub):
Через регулярку (findall)
Через цикл (c )

Vkmusic

VKMusic — классическое Windows-приложение с отдельным окном, которое открывает доступ к медийному контенту ВКонтакте, дает возможность воспроизводить его и скачивать на ПК. Работает независимо от веб-браузера и от того, выполнен ли в нем вход в аккаунт ВК. Точнее, чтобы пользоваться VKMusic, вы должны авторизоваться в социальной сети через само приложение.

Похожее:  Авторизация в 1xbet - через ВК, двухфакторная, что делать если аутентификация не удалась

Аудиовк

Сервис АудиоВК работает очень просто – он добавляет к каждому музыкальному треку в ВК кнопку скачивания. Клик – и песня на вашем компьютере, причем под тем же названием, что и в соцсети.

AudioVK «по зубам» даже сложные случаи: если трек недоступен для загрузки, вы можете прослушать и сохранить его вручную.

Чтобы пользоваться сервисом всегда, достаточно один раз установить и запустить расширение VKSaver для Google Chrome. Его еще поддерживает Яндекс и другие браузеры на базе Chromium.

Никакой регистрации, никакой рекламы, никаких ограничений. Войдите на свою страницу ВКонтакте – и качайте сколько влезет.

Загрузка музыки вконтакте

Доброго времени суток всем.

Захотелось мне скачать всю мою музыку со ВКонтакте на флешку, как в старые добрые времена. Немного погуглив и не найдя практически ничего более менее приемлемого, я решил действовать своими силами. Спустя пол часа получился вполне себе рабочий скрипт. Итак, начнём.

Для работы нужно скачать модули vk_api и request!

Для начала подключим необходимые модули и объявим некоторые переменные:

import os
import pickle
import vk_api
import requests

from vk_api import audio

from time import time

vk_file = "vk_config.v2.json"
REQUEST_STATUS_CODE = 200 
path = 'vk_music/'

Теперь напишем метод авторизации в аккаунт ВКонтакте:

def Auth(new=False):
    try:
        USERDATA_FILE = r"AppData/UserData.datab" #файл хранит логин, пароль и id
        global my_id # объявляем переменную глобально, дабы иметь к ней доступ из других методов
                # проверяем, нет ли сохранённых данных авторизации? Если есть, то загружаем
        if (os.path.exists(USERDATA_FILE) and new == False):
            with open(USERDATA_FILE, 'rb') as DataFile:
                LoadedData = pickle.load(DataFile)

            login = LoadedData[0]
            password = LoadedData[1]
            my_id = LoadedData[2]
        else: # если есть, но пользователь выбрал новую авторизацию, то удаляем данных и просим ввести новые
            if (os.path.exists(USERDATA_FILE) and new == True):
                os.remove(USERDATA_FILE)

            login = str(input("Введите логинn> ")) 
            password = str(input("Введите парольn> ")) 
            my_id = str(input("Введите id профиляn> "))
            SaveUserData(login, password, my_id)

        SaveData = [login, password, my_id]
        with open(USERDATA_FILE, 'wb') as dataFile:
            pickle.dump(SaveData, dataFile) # сохраняем введённые данные

        vk_session = vk_api.VkApi(login=login, password=password)
        try:
            vk_session.auth() # пробуем авторизоваться, если возникнет исключение, значит у пользователя включена двухфакторная аутентификация. Просим ввести код.
        except:
            vk_session = vk_api.VkApi(login=login, password=password, 
                auth_handler=auth_handler) # auth_handler=auth_handler - вызываем метод, см. далее
            vk_session.auth()
        print('Вы успешно авторизовались.')
        vk = vk_session.get_api()
        global vk_audio # объявляем глобально, дабы иметь доступ из других методов
        vk_audio = audio.VkAudio(vk_session)
    except KeyboardInterrupt:
        print('Вы завершили выполнение программы.')

Метод будет проверять, не авторизовывались ли мы уже раньше? Если такое было, то можно будет продолжить в этом аккаунте, или авторизоваться по-новой. В этом случае старые данные будут стёрты.

Далее напишем метод auth_handler, который нужен для авторизации в аккаунтах, в которых включена двухфакторная аутентификация:

def auth_handler():
    code = input("Введите код подтвержденияn> ")
    remember_device = True # True -  запоминаем и не просим каждый раз вводить код
    return code, remember_device

И так, теперь мы можем авторизоваться во ВКонтакте. В методе Auth упомянался метод SaveUserData(), он нужен для сохранения данных. Напишем его:

def SaveUserData(login, password, profile_id):
    USERDATA_FILE = r"AppData/UserData.datab"
    if (not os.path.exists("AppData")): # если нет папки AppData - создадим ее
        os.mkdir("AppData")

    SaveData = [login, password, profile_id] # список данных для сохранения

    with open(USERDATA_FILE, 'wb') as dataFile: # собственно записываем данные в файл
        pickle.dump(SaveData, dataFile)

Данные будут записаны в бинарном виде, дабы не хранить логин и пароль пользователя в открытом виде.

Осталось написать метод загрузки аудио со ВКонтакте, давайте это и сделаем:

def main():
    try:
        if (not os.path.exists("AppData")):
            os.mkdir("AppData")
        if not os.path.exists(path):
            os.makedirs(path)
                # спросим пользователя, нужно ли авторизоваться по-новой или продолжить старую сессию
        auth_dialog = str(input("Авторизоваться заново? yes/non> "))
        if (auth_dialog == "yes"):
            Auth(new=True)
        elif (auth_dialog == "no"):
            Auth(new=False)
        else:
            print('Ошибка, неверный ответ.')
            main()
        print('Подготовка к скачиванию...')
        os.chdir(path) #меняем текущую директорию

        audio = vk_audio.get(owner_id=my_id)[0]
        print('Будет скачано:', len(vk_audio.get(owner_id=my_id)), 'аудиозаписей.')
        count = 0
        time_start = time()
        print("Скачивание началось...n")
                # этим циклом, собственно, и скачиваем нашу музыку.
        for i in vk_audio.get(owner_id=my_id):
            try:
                print('Скачивается: '   i["artist"]   " - "   i["title"])
                count  = 1
                r = requests.get(audio["url"])
                if r.status_code == REQUEST_STATUS_CODE:
                    print('Скачивание завершено: '   i["artist"]   " - "   i["title"])
                    with open(i["artist"]   ' - '   i["title"]   '.mp3', 'wb') as output_file:
                        output_file.write(r.content)
            except OSError:
                print("!!! Не удалось скачать аудиозапись №", count)
        time_finish = time()
        print(""   vk_audio.get(owner_id=my_id)   " аудиозаписей скачано за: ", 
                                            time_finish - time_start   " сек.")
    except KeyboardInterrupt:
        print('Вы завершили выполнение программы.')

Ну вот и всё. Теперь у нас есть рабочий скрипт для загрузки аудиозаписей из ВКонтакте.
Вот так выглядит весь исходный код:

Показать исходный код

import os
import pickle
import vk_api
import requests

from vk_api import audio

from time import time

__version__ = 'VK Music Downloader v1.0'

APP_MESSAGE = '''
        _   .   ___
    /\   |   | | \  |  |   |  \    /  | /
   /__\  |   | |  \ |  |   |   \  /   |/
  /    \ |___| |__/ |  |___|    \/    |\
  '''

vk_file = "vk_config.v2.json"
REQUEST_STATUS_CODE = 200 
path = 'vk_music/'

def auth_handler(remember_device=None):
    code = input("Введите код подтвержденияn> ")
    if (remember_device == None):
        remember_device = True
    return code, remember_device

def SaveUserData(login, password, profile_id):
    USERDATA_FILE = r"AppData/UserData.datab"
    SaveData = [login, password, profile_id]

    with open(USERDATA_FILE, 'wb') as dataFile:
        pickle.dump(SaveData, dataFile)

def Auth(new=False):
    try:
        USERDATA_FILE = r"AppData/UserData.datab" #файл хранит логин, пароль и id
        global my_id
        if (os.path.exists(USERDATA_FILE) and new == False):
            with open(USERDATA_FILE, 'rb') as DataFile:
                LoadedData = pickle.load(DataFile)

            login = LoadedData[0]
            password = LoadedData[1]
            my_id = LoadedData[2]
        else:
            if (os.path.exists(USERDATA_FILE) and new == True):
                os.remove(USERDATA_FILE)

            login = str(input("Введите логинn> ")) 
            password = str(input("Введите парольn> ")) 
            my_id = str(input("Введите id профиляn> "))
            SaveUserData(login, password, my_id)

        SaveData = [login, password, my_id]
        with open(USERDATA_FILE, 'wb') as dataFile:
            pickle.dump(SaveData, dataFile)

        vk_session = vk_api.VkApi(login=login, password=password)
        try:
            vk_session.auth()
        except:
            vk_session = vk_api.VkApi(login=login, password=password, 
                auth_handler=auth_handler)
            vk_session.auth()
        print('Вы успешно авторизовались.')
        vk = vk_session.get_api()
        global vk_audio 
        vk_audio = audio.VkAudio(vk_session)
    except KeyboardInterrupt:
        print('Вы завершили выполнение программы.')

def main():
    try:
        if (not os.path.exists("AppData")):
            os.mkdir("AppData")
        if not os.path.exists(path):
            os.makedirs(path)

        auth_dialog = str(input("Авторизоваться заново? yes/non> "))
        if (auth_dialog == "yes"):
            Auth(new=True)
        elif (auth_dialog == "no"):
            Auth(new=False)
        else:
            print('Ошибка, неверный ответ.')
            main()
        print('Подготовка к скачиванию...')
        os.chdir(path) #меняем текущую директорию

        audio = vk_audio.get(owner_id=my_id)[0]
        print('Будет скачано:', len(vk_audio.get(owner_id=my_id)), 'аудиозаписей.')
        count = 0
        time_start = time() # сохраняем время начала скачивания
        print("Скачивание началось...n")
                # собственно циклом загружаем нашу музыку 
        for i in vk_audio.get(owner_id=my_id):
            try:
                print('Скачивается: '   i["artist"]   " - "   i["title"]) # выводим информацию о скачиваемой в данный момент аудиозаписи
                count  = 1
                r = requests.get(audio["url"])
                if r.status_code == REQUEST_STATUS_CODE:
                    print('Скачивание завершено: '   i["artist"]   " - "   i["title"])
                    with open(i["artist"]   ' - '   i["title"]   '.mp3', 'wb') as output_file:
                        output_file.write(r.content)
            except OSError:
                print("!!! Не удалось скачать аудиозапись №", count)
        time_finish = time()
        print(""   vk_audio.get(owner_id=my_id)   " аудиозаписей скачано за: ", 
                                            time_finish - time_start   " сек.")
    except KeyboardInterrupt:
        print('Вы завершили выполнение программы.')

if __name__ == '__main__':
    print(APP_MESSAGE)
    print(__version__   "n")
    main()

Я только учусь, поэтому буду рад всем замечаниям в коде. Спасибо за внимание.

Извлечение музыкального трека из кэша браузера

Этот вариант покажется вам, скорее всего, самым неудобным, но он единственный будет работать всегда, невзирая ни на какие изменения на сайте, запреты и введения платных подписок. До тех пор, пока пользователям ВКонтакта доступно прослушивание музыки через браузер. Почему так?

Да потому, что во время проигрывания трек кэшируется — загружается во временную память воспроизводящей программы на компьютере пользователя и остается там, пока кэш не будет очищен. Наша задача — просто найти его, переименовать и сохранить в более подходящем месте.

Извлечь музыкальный трек из кэша браузера можно как минимум двумя способами.

Компьютер

На сегодняшний день администрация рассматриваемого ресурса сильно ограничивает сторонних разработчиков, блокируя методы доступа к аудиозаписям без посещения сайта VK. Однако, даже с учетом этого, существует немало актуальных способов, большинство из которых мы рассмотрим далее по ходу статьи.

Осталась последняя проблема – ссылки

Для того, чтобы получить их, воспроизводим любую аудиозапись, и видим запрос:

Отключение антивирусной системы

Все известные антивирусы имеет свою базу программ, которым доверяют. Когда вы устанавливаете такую программу, антивирус «узнаёт» её и сразу же вносит в белый список. Каждое ПО, которого нет в этом списке тщательно сканируется. Функции VKmusic могут блокироваться антивирусом. Чтобы проверить это, попробуйте отключить на время свой защитник.

Антивирусные программы сложно сдерживать в системе. Их нельзя отключить совсем в автозагрузке или удалить без специального ПО. Но вы можете отключить его на время. К примеру, Avast отключается следующим образом:

  1. Нажмите на небольшую стрелочку в трее Windows;
  2. Выберите значок Аваст ПКМ;
  3. Нажмите на пункт «Управление экранами»;

    Настройки AVAST
    Временно отключите ваш антивирус

  4. Укажите курсором время, которое антивирус будет бездействовать.

Инструкцию по отключению других антивирусов вы можете найти через поисковую систему или на официальном сайте разработчика. После этих действий попробуйте снова авторизоваться в VKmusic.

Помощник savefrom

Помощник SaveFrom.net — это бесплатное приложение, которое встраивает свой компонент одновременно во все установленные браузеры — Opera, Mozilla Firefox, Яндекс.браузер и Гугл Хром. После его установки вы получите возможность скачивать музыку прямо из плеера на сайте VK. Помощник SaveFrom добавляет кнопку загрузки (в виде такой же стрелки, как у DMV) на панель выбранного трека.

Смартфон

Более половины пользователей рассматриваемой социальной сети используют ВКонтакте с мобильных устройств. Однако официальное приложение для Android и iOS предоставляет сильно ограниченный функционал прослушивания музыки, отчего приходится использовать обходные методы.

Способ 1: kate mobile

Данный способ скорее является альтернативой стандартному приложению ВК, так как для получения списка музыки вам все равно придется зайти на сайт ВКонтакте, хотя и через Kate Mobile. При этом если вам достаточно свернутого плеера, то метод подойдет идеально.

Способ 1: поиск ссылки на трек в коде элементов

  • Зайдем в раздел музыки VK и отыщем нужную аудиозапись. Щелкнем по ней правой клавишей мышки и выберем в меню «Просмотреть код (элемента)».
  • В таблице, которая откроется после этого, найдем раздел «Network». Пока трек не начал воспроизводиться, здесь должно быть пусто.
  • Далее нажмем на кнопку Play — запустим проигрывание композиции. Таблица начнет заполняться записями, а если нет, через 20-30 секунд после начала воспроизведения нажмем на клавиатуре F5. Одна из записей, которая здесь появится, и есть прямая ссылка на трек. Внешне она не похожа на привычную нам ссылку, но определить ее довольно просто: по типу и размеру (смотрим в колонки Type и Size). Ссылка на музыкальный файл имеет тип media или audio/mpeg (в разных браузерах по-разному) и размер в несколько мегабайт.
  • Найдя нужную ссылку, кликнем по ней 2 раза мышкой в колонке Name.
  • Если это действительно музыкальный файл, после клика нас перебросит на другую вкладку браузера, где трек начнет воспроизводиться. Осталось нажать кнопку скачивания (обведена рамкой на скриншоте ниже), дать композиции человеческое имя и сохранить в нужной папке.

Способ 1: скачиваем музыку

Наиболее простое решение поставленной задачи заключается в загрузке нужных аудиозаписей к себе на компьютер или какое-либо другое устройство. После этого от вас потребуется лишь добавить музыку в любой удобный плеер, например, AIMP или воспользоваться встроенным проигрывателем Windows Media Player.

Способ 2: stellio media player

Если вы слушаете музыку не только из ВКонтакте, но и других источников, проигрыватель Stellio позволит объединить все композиции в одном месте. Однако важно отметить, что полноценный функционал доступен только в платной версии приложения.

Способ 2: vk audiopad

Из всех некогда доступных к использованию расширений для браузера, единственным рабочим является приложение VK Audiopad. Принцип его работы позволяет вам слушать музыку из ВК без личного посещения социальной сети, но только при условии предварительной авторизации в ВК для конкретного интернет-обозревателя.

Данный метод мы рекомендуем использовать преимущественно в тех случаях, когда ваш компьютер не имеет проблем с недостатком производительности. В противном случае работающее дополнение может существенно снизить скорость работы системы.

Перейти к официальному сайту VK Audiopad

Способ 2: поиск трека в папке временных файлов браузера

Папки временных файлов веб-браузеров спрятаны глубоко в недрах системы. Чтобы долго не искать, скопируйте путь к нужной папке отсюда, вставьте в адресную строку проводника Windows и нажмите кнопку перехода.

Как видно, папки не пустые. Содержимого в них — вагон, и всё — с непонятными цифробуквенными именами без расширений. Для удобства поиска отсортируем файлы по дате изменения и, не спуская с них глаз, начнем воспроизводить нужный трек в браузере.

В ходе проигрывания музыкальный файл скачается во временную папку, но поскольку у него будет такое же непонятное имя, как у остальных, узнать его можно только по размеру (чтобы отследить изменение размера, не забываем периодически нажимать F5).

Дабы убедиться, что это тот самый трек, просто переименуем файл, приписав ему расширение mp3. А потом откроем с помощью плеера и прослушаем.

Угадали? Сохраняем файл в более подходящем месте. Не угадали? Ищем дальше. Кстати, чтобы ничего не мешало, можно предварительно очистить кэш браузера.

Оба этих способа применимы для скачивания музыки не только с VK, а с любого веб-сайта — Одноклассников, Фейсбука и других, ведь ограничений в Интернете много. И еще они хороши тем, что не требуют установки дополнительных программ, то есть дают нам возможность пополнять личную фонотеку, например, за рабочим компьютером или в общественных местах. Берите на вооружение и пользуйтесь.

Способ 3: vkmusic

Одной из самых популярных программ, нацеленных на расширение базовых возможностей ВКонтакте, является VKmusic. Данный софт поставляется на бесплатной основе и позволяет не только слушать аудиозаписи, но и скачивать их на компьютер.

Использование встроенного проигрывателя музыки в VKmusic

Узнать о программе более подробно вы можете из соответствующей статьи у нас на сайте.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *