Comments 41
Поменяют и спрячут алгоритм теперь после этой публикации.
+9
Зато автор публикации получит новый заказ на доработку парсера )))
+1
Не думаю, что из-за статьи будут что-то менять. В конце концов, они и не прячут декодер — просто скрывают таким образом музыку от обывателя.
0
ровно год назад была статья на эту тему.
интересно за это время сильно изменился механизм?
habr.com/post/340810
интересно за это время сильно изменился механизм?
habr.com/post/340810
0
Сравнивал вскользь недавно.
Они добавили привязку к id пользователя
i: function(e, t) {
return i.s(e, t ^ vk.id)
},
0
На сколько понимаю, они этим самым проверяют локаль пользователя… и в плейлисте появляется то и дело — «Аудиозапись your_favorite_music недоступна для прослушивания в Вашем регионе.»
Но можно же, в теории, позаимствовать айди товарища из «нужной» страны… Хотя вроде там более замароченно.
Но можно же, в теории, позаимствовать айди товарища из «нужной» страны… Хотя вроде там более замароченно.
0
Думаю, за это отвечает другой механизм и на такие аудио даже ссылки не выдает. К сожалению, мне такие записи не попадались и как это обойти — ответить трудно. Попробую зайти через впн глянуть.
0
Именно ВПН и позволяет обойти «ваш регион».
Точнее, если у туннеля выход в Европе — DMCA(или кто там у них) блюдётся. Если в России — слушай на здоровье.
Точнее, если у туннеля выход в Европе — DMCA(или кто там у них) блюдётся. Если в России — слушай на здоровье.
0
А у меня, к сожалению, такое встречается постоянно… если не пользуюсь русским прокси.
Именно поэтому перестал пользоваться вк музыкой как таковой… проще уж из других источников слушать, чем слушать трэк через три.
Именно поэтому перестал пользоваться вк музыкой как таковой… проще уж из других источников слушать, чем слушать трэк через три.
0
Попробуйте Тайский впн, очень многие песни с Пхукета недоступны, кстати.
0
А никто ничего не прячет, похожий на base64 декодер подогнанный под свои нужды
0
Всегда есть возможность использовать telegram бота…
0
главное успеть скачать всю свою музыку) я успел) автору большой респект!!!
+3
А зачем? Можно же просто взять ID официального приложения и пользоваться API для аудио как раньше.
0
Там не просто, надо еще прикинуться, например, андроидом и по-хитрому получить несколтко токенов, чтобы это сработало. На гитхабе видел реализацию, но у меня что-то пошло не так.
0
Не эту реализацию случайно — github.com/vodka2/vk-audio-token? Если эту, то можно было создать Issue, кроме того, не так давно я добавил примеры использования полученных токенов. Если другую, можете, если не трудно, написать ссылку? Вообще, на мой взгляд, использование API намного удобнее, чем парсинг сайта.
0
Реализация ваша, да. Спасибо за нее :)
Я просто ради интереса решил переписать на шарпе, поэтому issue не помогут. Токены получаю от гугла и от вк, но что-то делаю не так — vk api всегда возвращает тот самый 25-секундный семпл. Хочу разобраться и запилить экспортер всего-и-вся-из-вк, но все руки не доходят.
Я просто ради интереса решил переписать на шарпе, поэтому issue не помогут. Токены получаю от гугла и от вк, но что-то делаю не так — vk api всегда возвращает тот самый 25-секундный семпл. Хочу разобраться и запилить экспортер всего-и-вся-из-вк, но все руки не доходят.
+1
Мы вот получаем один обычный токен через авторизацию по логину-паролю под видом одного из официальных приложений и по этому токену напрямую используем старые методы аудио-апи. И никаких вытаскиваний GMS не нужно.
+1
поделитесь кусочком кода?
0
def create_playlist_file(self, user_id: Union[int, str]) -> str:
# Probably it is better to separate it all to different methods
all_music_link = f'https://api.vk.com/method/audio.get?owner_id={user_id}&access_token={self.token}&v=5.85'
all_music = requests.get(all_music_link).json()['response']['items']
song_ids = []
# Create unique song ids
for song in all_music:
if not song.get('access_key'):
continue
access_key = song['access_key']
song_id = song['id']
song_ids.append(f'{user_id}_{song_id}_{access_key}')
splited_song_ids = self.group(song_ids, 200) # Grouping ids because of VK API limits for songs in one request
result = OrderedDict() # OrderedDict here and below is to specify order of songs like in a real playlist
for chunk in splited_song_ids:
# Making one request to get data for each 200 songs
ids_for_request = ','.join(chunk)
data = {'audios': ids_for_request, 'access_token': self.token, 'v': '5.85'}
songs_with_urls = requests.post('https://api.vk.com/method/audio.getById', data=data).json()['response']
sleep(0.5) # Excepting VK API rate limit
# Getting only needed data for each song to create a beautiful playlist file
for song in songs_with_urls:
id_ = song['id']
author = song.get('artist')
title = song.get('title')
src = song.get('url')
if not src:
is_blocked = True
else:
is_blocked = False
needed_data = OrderedDict(author=author, title=title, src=src, is_blocked=is_blocked)
result[id_] = needed_data
0
После того как появилась платная подписка на музыку, сделали завязку на google play, и для полноценной работы нужно проходить доп. валидацию с использованием android_id (device_id) при которой api токен меняется на такой же токен с доп. правами, в частности с правами на доступ к audio api, при том что документацию по audio api с сайта вк выпилили.
+1
Значит ли это что сейчас опять появятся на пару недель over 9000 приложений музыки в AppStore?
0
Как ответила мне одна девушка, «У меня целых три таких приложения и я жму там одну кнопочку, а ты тут столько строк какой-то фигни написал»)
+1
Даже Google сейчас выпиливает плагины для скачивания музыки из VK.
-1
Такие приложения разве не нарушают условия соглашений?
0
Красивый код на php)
0
Подозреваю, что это шифрование ссылок сделано только для того, что бы у правообладателей не было претензий к сервису.
0
Данная страница будет полезной для тех, кто решил взять заказ на парсер аудио-треков VK и резко понял, что ничего не понял.
А если для себя решил написать, то страница полезной не будет?
-2
Спасибо за статью. Ранее через API ходил, потом через ID приложений. Этот метод куда проще кажется.
Забавно, но не все ссылки декодирует нормально. После процесса декодирования, перейдя по ссылке, кидает 404. Позже скину пример…
Забавно, но не все ссылки декодирует нормально. После процесса декодирования, перейдя по ссылке, кидает 404. Позже скину пример…
0
0
Sign up to leave a comment.
Получение ссылок на аудио без VKApi