python273 / vk_api

Модуль для создания скриптов для ВКонтакте | vk.com API wrapper
https://pypi.org/project/vk-api/
Apache License 2.0
1.33k stars 322 forks source link

track.url возвращает ссылки на битые mp3 файлы размером 2-3 КБ #431

Open Andrej730 opened 2 years ago

Andrej730 commented 2 years ago

В последнее время при сохранении аудиозаписей из ВК начали сохраняться битые файлы размером в 2-3 КБ. Тоже самое наблюдается во всех аддонах для браузеров, которые имеют похожую функцию. Судя по всему, ВК изменил что-то в своём API для прослушивания музыки и теперь нужно изменить алгоритм подбора ссылки на скачивание.

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

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

Окружение

vk_api: 11.9.6

Пример

vk_session = vk_api.VkApi(login=login, password=password)
vk_session.auth()
vk = vk_session.get_api()

vkaudio = VkAudio(vk_session)
count = 0
for track in vkaudio.get_iter():
    r = requests.get(track.get('url'), allow_redirects = True)
    open('test.mp3', 'wb').write(r.content)
    break
python273 commented 2 years ago

в #298 есть обсуждение

dashedman commented 2 years ago

это также смежная проблема https://github.com/python273/vk_api/issues/424