Нажмите "Enter", чтобы перейти к содержанию

Сказать музыку с вк бесплатно: Скачать музыку с Вконтакте — KissVK

Как получать музыку из ВКонтакте в 2022 году / Хабр

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

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

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

Я решил посмотреть что сейчас отдает ВКонтакте при воспроизведении записи и полез во вкладку network, вот что я там увидел:

ФотоНас интересует index.m3u8Открыв его мы видим GET запрос на сгенерированный ВКонтакте urlА ответ этого запроса представляет из себя просто HLS формат, с сегментами и их ключами декодирования если они закодированы

Теперь передо мной стояла новая задача, как получить с определенного аудио нужную ссылку на m3u8 файл и уже потом думать как его разбирать и собирать в дальнейшем в цельным mp3 файл.

В ходе раздумий был найден довольно простой вариант в виде библиотеки для питона vk_api и реализация получения такой ссылки через эту библиотеку выглядит так:

from vk_api import VkApi
from vk_api.audio import VkAudio
login = "+7XXXXXXXXXX"
password = "your_password"
vk_session = VKApi(
  login=login,
  password=password,
  api_version='5.81'
)
vk_session.auth()
vk_audio = VKAudio(vk_session)
# Делаем поиск аудио по названию
# Так же можно получать аудио со страницы функцией .get_iter(owner_id)
# где owner_id это айди страницы
# или же можно получить аудио с альбома, где мы сначала получаем айди альбомов
# функцией .get_albums_iter()
# и после снова вызываем .get_iter(owner_id, album_id), где album_id полученный
# айди альбома
q = "audio name"
audio = next(vk_audio.search_iter(q=q))
url = audio['url'] # получаем ту длиннющую ссылку на m3u8 файл

Вот мы и получили ссылку на этот файл и встал вопрос, а что делать дальше. Я попробовал запихнуть эту ссылку в ffmpeg и уже было обрадовался, ведь он скачал мой заветный аудиофайл и сразу же сделал конвертацию в mp3, однако, счастье мое длилось не долго, ведь ffmpeg хоть и скачал все сегменты, самостоятельно склеив их, но зашифрованные сегменты он не расшифровал, поэтому давайте еще раз взглянем на внутренности m3u8 файла

#EXTM3U
#EXT-X-TARGETDURATION:25
#EXT-X-ALLOW-CACHE:YES
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-KEY:METHOD=AES-128,URI="https://cs1-66v4. vkuseraudio.net/s/v1/ac/wYaompMqHNQpBIh283wK68QVW45tvaJLaznkPiqES66JM-xzffiiM4KQx5WPS0Vg99U9ggCDronPKO8bzit3v_j8fH6LymN2pngBXYTv5uaDnFiAfc2aXv848bhRJEyFVB1gaJw1VR4BS9WnSb8jIMd0haPgfvJMcWC7FW7wpFkGU14/key.pub"
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:2.000,
seg-1-a1.ts
#EXT-X-KEY:METHOD=NONE
#EXTINF:4.000,
seg-2-a1.ts
#EXTINF:20.000,
seg-3-a1.ts
#EXT-X-KEY:METHOD=AES-128,URI="https://cs1-66v4.vkuseraudio.net/s/v1/ac/wYaompMqHNQpBIh283wK68QVW45tvaJLaznkPiqES66JM-xzffiiM4KQx5WPS0Vg99U9ggCDronPKO8bzit3v_j8fH6LymN2pngBXYTv5uaDnFiAfc2aXv848bhRJEyFVB1gaJw1VR4BS9WnSb8jIMd0haPgfvJMcWC7FW7wpFkGU14/key.pub"
#EXTINF:20.000,
seg-4-a1.ts
#EXT-X-KEY:METHOD=NONE
#EXTINF:25.444,
seg-5-a1.ts
#EXT-X-ENDLIST

Мы видим, что перед зашифрованными сегментами в EXT-X-KEY указан метод шифровки AES-128 и ссылка на скачку ключа для расшифровки.

Для решения уже этой проблемы была найдена прекрасная библиотека m3u8 и pycryptodome:

import m3u8
import requests
from Crypto.Cipher import AES
from Crypto. Util.Padding import unpad
# Получаем этот самый m3u8 файл
m3u8_data = m3u8.load(
  url="" # Вставляем наш полученный ранее url
)
segments = m3u8.data.get("segments")
# Парсим файл в более удобный формат
segments_data = {}
for segment in segments:
  segment_uri = segment.get("uri")  
  extended_segment = {
    "segment_method": None,
    "method_uri": None
  }
  if segment.get("key").get("method") == "AES-128":
    extended_segment["segment_method"] = True
    extended_segment["method_uri"] = segment.get("key").get("uri")
    
	segments_data[segment_uri] = extended_segment
  
# И наконец качаем все сегменты с расшифровкой
uris = segments_data.keys()
downloaded_segments = []
for uri in uris:
  # Используем начальный url где мы подменяем index.m3u8 на наш сегмент
  audio = requests.get(url=index_url.replace("index.m3u8", uri))
  # Сохраняем .ts файл
  downloaded_segments.append(audio.content)
  # Если у сегмента есть метод, то расшифровываем его
  if segments_data.get(uri).get("segment_method") is not None:
    # Качаем ключ
    key_uri = segments_data.
get(uri).get("method_uri") key = requests.get(url=key_uri) iv = downloaded_segments[-1][0:16] ciphered_data = downloaded_segments[-1][16:] cipher = AES.new(key, AES.MODE_CBC, iv=iv) data = unpad(cipher.decrypt(ciphered_data), AES.block_size) downloaded_segments[-1] = data complete_segments = b''.join(downloaded_segments)

И наконец конвертируем все в mp3 формат, для чего нам понадобится установленный ffmpeg на ПК.

import os
with open('../m3u8_downloader/segments/temp.ts', 'w+b') as f:
  f.write(complete_segments)
os.system(f'ffmpeg -i "media/music/segments/temp.ts" -vcodec copy '
          f'-acodec copy -vbsf h364_mp4toannexb "media/music/mp3/temp.wav"')
os.remove("../m3u8_downloader/segments/temp.ts")

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

Так же выложу весь код:

Hidden text
import os
import m3u8
import requests
from vk_api import VkApi
from vk_api.audio import VkAudio
from Crypto.Cipher import AES
from Crypto.Util.Padding import unpad
class M3U8Downloader:
    def __init__(self, login: str, password: str):
        self._vk_session = VkApi(
            login=login,
            password=password,
            api_version='5.81'
        )
        self._vk_session.auth()
        self._vk_audio = VkAudio(self._vk_session)
    def download_audio(self, q: str):
        url = self._get_audio_url(q=q)
        segments = self._get_audio_segments(url=url)
        segments_data = self._parse_segments(segments=segments)
        segments = self._download_segments(segments_data=segments_data, index_url=url)
        self._convert_ts_to_mp3(segments=segments)
    @staticmethod
    def _convert_ts_to_mp3(segments: bytes):
        with open(f'media/music/segments/temp.ts', 'w+b') as f:
        		f.write(segments)
        os.system(f'ffmpeg -i "media/music/segments/temp.
ts" -vcodec copy ' f'-acodec copy -vbsf h364_mp4toannexb "media/music/mp3/temp.wav"') os.remove("../m3u8_downloader/segments/temp.ts") def _get_audio_url(self, q: str): self._vk_audio.get_albums_iter() audio = next(self._vk_audio.search_iter(q=q)) url = audio['url'] return url @staticmethod def _get_audio_segments(url: str): m3u8_data = m3u8.load( uri=url ) return m3u8_data.data.get("segments") @staticmethod def _parse_segments(segments: list): segments_data = {} for segment in segments: segment_uri = segment.get("uri") extended_segment = { "segment_method": None, "method_uri": None } if segment.get("key").get("method") == "AES-128": extended_segment["segment_method"] = True extended_segment["method_uri"] = segment.get("key").get("uri") segments_data[segment_uri] = extended_segment return segments_data @staticmethod def _download_segments(segments_data: dict, index_url: str) -> bin: downloaded_segments = [] for uri in segments_data.
keys(): audio = requests.get(url=index_url.replace("index.m3u8", uri)) downloaded_segments.append(audio.content) if segments_data.get(uri).get("segment_method") is not None: key_uri = segments_data.get(uri).get("method_uri") key = download_key(key_uri=key_uri) iv = downloaded_segments[-1][0:16] ciphered_data = downloaded_segments[-1][16:] cipher = AES.new(key, AES.MODE_CBC, iv=iv) data = unpad(cipher.decrypt(ciphered_data), AES.block_size) downloaded_segments[-1] = data return b''.join(downloaded_segments) @staticmethod def download_key(key_uri: str) -> bin: return requests.get(url=key_uri).content login = "" # phone password = "" # password md = M3U8Downloader(login=login, password=password) q = "Воллны Волны" # Запрос музыки по названию md.download_audio()

Как слушать музыку из VK на iPhone

Слушать музыку на Айфон

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

Скачивание треков в память смартфона

Этот способ подразумевает, что нужно просто скачивать понравившиеся треки в память смартфона. Не нужно скачивать лишних сторонних приложений, и в этом есть большой плюс. Изначально нужно скачать само приложение VK на iPhone. Зачастую это приложение уже имеется в памяти смартфона практически каждого пользователя. Открываем приложение и проходим авторизацию. Если вы уже авторизированы в приложении, тогда можно сразу перейти во вкладку «Музыка» и найти нужный трек. После этого нужно нажать на значок, который подразумевает скачивание трека (рис.1), и дождаться полной загрузки. О завершении скачивания скажет зеленая галочка возле названия трека.

Значок для скачивания трека

Больше повторять эти манипуляции для уже скачанного трека не потребуется, пока вы сами не удалите его из памяти своего смартфона. Для того, чтобы слушать скачанную музыку, вовсе не обязательно устанавливать дополнительные приложения. Для этого (даже при отсутствии интернет-подключения) достаточно просто зайти в приложение, перейти во вкладку «Музыка» и слушать скачанные треки в режиме оффлайн. Тем не менее, слушать скачанную музыку можно и с помощью других приложений, в которых требуется авторизация ВКонтакте. Это сделано специально для сохранения большей доступной памяти в устройстве, так как iPhone не поддерживают расширение памяти.

Музыка ВК

В этом способе существует несколько нюансов. Например, в приложении нужно обязательно авторизовать свой аккаунт ВКонтакте. Также есть функция отображения треков, которые можно прослушивать онлайн. То есть, уже скачанная музыка будет отмечена соответствующим значком. У приложения имеется несколько функций, в том числе поддержка музыки из различных источников. Таким образом, можно слушать музыку друзей, если у них не отключена данная функция в настройках приватности. Если в источнике есть текст песни, он будет отображаться при прослушивании трека.


Приложение «Музыка ВК».

Также имеется функция создания своих плейлистов. При необходимости можно удалить всю музыку сразу. Главным недостатком приложения является наличие ненавязчивой рекламы внизу экрана. Стоит учесть, что данное приложение не доступно для скачивания из AppStore. Чтобы бесплатно скачать его, необходимо убедиться в том, что присутствует интернет-подключение, затем открыть браузер и перейти по следующей ссылке: https://music-vk.com Далее скачивание и установка происходят обычным образом. Нажмите кнопку «Установить» и система начнет скачивание приложения, по завершении которого установка начнется автоматически.

My audio


Приложение «My audio»

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

Также имеется несколько интересных функций: [

  • добавление треков в закладки;
  • возможность прослушивания и использование треков, появляющихся в новостях;
  • можно посмотреть размер трека.

Есть возможность просмотра скачанных треков, не выходя из приложения. Для этого можно просто зайти во вкладки Downloads или Music. Там будут отображаться файлы, которые вы загрузили. Помимо этого, возможно совершать различные манипуляции с сохраненными музыкальными файлами. При прослушивании музыки с включенным Интернет-соединением можно активировать функцию трансляции прослушиваемого трека в статус вашей страницы. Небольшим недостатком приложения является реклама, которая возникает на экране. Длительность рекламы всего 5 секунд, после чего ее можно выключить. Стандартное оформление не отвлекает пользователя на посторонние детали. В нем нет необычных элементов, что делает его немного скучным, но в то же время простым. При стандартном дизайне приложение имеет больше функций, чем многие красивые «навороченные» приложения для прослушивания музыки ВК.

XMusic


Приложение «XMusic»

Самое функциональное приложение среди всех представленных. Среди основных функций можно отметить:

  • синхронизация с аккаунтом ВКонтакте;
  • наличие встроенного браузера для скачивания музыки с других ресурсов;
  • система поиска треков по ссылкам;
  • возможность поиска и он-лайн просмотра видеозаписей и фильмов;
  • предоставляется таймер, установив который, можно настроить отключение музыки в определенное время;
  • приятная цветовая гамма оформления;

Пожалуй, в этой «бочке меда» есть своя «ложка дегтя». Заключается она в рекламе, которую не так просто закрыть из-за слишком маленького крестика. В остальном же, приложение поражает количеством встроенных функций. Скачать приложение можно абсолютно бесплатно на iTunes. Ссылка для скачивания: https://itunes.apple.com/ru/app/xmusic-premium/id1041255122?mt=8

DSound


Приложение «DSound»

Даже не присматриваясь, можно понять, что данное приложение практически ничем не отличается от предыдущего. Основные функции можно перечислить те же:

  • синхронизация с аккаунтом ВКонтакте;
  • встроенный браузер для поиска и скачивания треков;
  • приятная цветовая гамма интерфейса;
  • таймер отключения музыки;

Из недостатков такая же реклама, которую сложно отключить. В остальном приложения отличаются лишь названием. Функционал абсолютно идентичен, как и интерфейс. Приложение, так же, как все представленные, абсолютно бесплатно и доступно для скачивания всем пользователям.

Выводы

Практически все пользователи мобильных устройств прослушивают музыку со своего смартфона. Чтобы можно было прослушивать музыку в режиме оффлайн на iPhone, требуется произвести некоторые манипуляции. Они совсем несложные. С помощью нашей инструкции разберется даже новичок. В большей части перечисленных способов необходимо провести все манипуляции при наличии Интернет-соединения. Зато позже вы получите полный доступ к любимой музыке оффлайн. Все представленные приложения абсолютно бесплатны и доступны для скачивания любому пользователю.

По материалам сайта GeekHacker.ru — Как слушать музыку ВК на Айфоне без интернета: Самые простые способы

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 › …

Перейдите к видео ВКонтакте, которое хотите скачать. Скопируйте URL-адрес видео и вставьте его в поле на этой странице. Выберите между загрузкой видео в обычном качестве (MP4), …

Скачать аудио и видео ВКонтакте — PasteDownload

pastedownload. com › vk-downloader

Лучший бесплатный онлайн-загрузчик видео ВКонтакте (как публичное, так и приватное видео) . Скачивайте и сохраняйте видео ВК бесплатно без ограничения скорости. Просто вставьте URL и загрузите …

Онлайн-загрузчик видео ВКонтакте бесплатно Mp4 — GiveFastLink

givefastlink.com › vk-video-downloader

1- Скопируйте URL-адрес видео ВКонтакте. Просмотрите и найдите видео ВКонтакте, которое хотите скачать. · 2- Вставьте URL-адрес видео ВКонтакте · 3- Загрузите лучшее качество и сохраните его!

VK Video Downloader — Скачать видео с ВКонтакте в высоком качестве!

www.vkdownload.one

С помощью VKDownload.one вы можете легко загружать видео из ВКонтакте и сохранять их на свое устройство для последующего воспроизведения. Это полезно, когда вы находитесь в пути или в …

VK Video Downloader — ВКонтакте MP4 & MP3 — SteptoDown

steptodown.com › vk-video-downloader

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

Загрузчик видео с ВКонтакте — SaveFrom.net — Y2bs

y2bs.com › vk-video-downloader

Шаг 1. Запустите приложение ВКонтакте и найдите видео, которое вы хотите сохранить, коснитесь кнопки «Поделиться» под дисплеем и выберите «Копировать ссылку». Шаг 2: Вставьте ссылку в белый …

Онлайн-загрузчик видео ВКонтакте для MP4 и MP3 бесплатно

fastsavenow.com › vk-video-downloader

1. · Скопируйте URL-адрес видео ВКонтакте · 2. · Вставьте URL-адрес в окно загрузки · 3. · Загрузите и сохраните файл. · Часто задаваемые вопросы о VK Downloader …

Как скачать видео из ВКонтакте — Полное руководство — MiniTool MovieMaker

moviemaker.minitool.com › Советы Movie Maker

11.12.2022 · 1. 9xbuddy. 9XBUDDY — популярный онлайн-загрузчик видео, который может загружать видео со многих социальных платформ, таких как ВКонтакте, YouTube, .

Ваш комментарий будет первым

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

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