1
0
mirror of https://github.com/yt-dlp/yt-dlp.git synced 2025-06-28 01:18:30 +00:00

feat: parse access hash from url

This commit is contained in:
DarkCat09 2025-03-22 00:28:12 +04:00
parent 04111cb6b5
commit 6f0c64b148
No known key found for this signature in database

View File

@ -758,7 +758,7 @@ def _real_extract(self, url):
class VKMusicIE(VKBaseIE): class VKMusicIE(VKBaseIE):
IE_NAME = 'vk:music' IE_NAME = 'vk:music'
_VALID_URL = r'https?://(?:(?:m|new)\.)?vk\.com/(?:audio(?P<track_id>-?\d+_\d+)|(?:.*\?z=audio_playlist|music/playlist/)(?P<playlist_id>-?\d+_\d+))' _VALID_URL = r'https?://(?:(?:m|new)\.)?vk\.com/(?:audio(?P<track_id>-?\d+_\d+)|(?:.*\?z=audio_playlist|music/[a-z]+/)(?P<playlist_id>-?\d+_\d+)(?:(?:%2F|_)(?P<access_hash>[0-9a-f]+))?)'
_TESTS = [ _TESTS = [
{ {
'url': 'https://vk.com/audio-2001746599_34746599', 'url': 'https://vk.com/audio-2001746599_34746599',
@ -782,6 +782,7 @@ def _real_extract(self, url):
mobj = self._match_valid_url(url) mobj = self._match_valid_url(url)
track_id = mobj.group('track_id') track_id = mobj.group('track_id')
playlist_id = mobj.group('playlist_id') playlist_id = mobj.group('playlist_id')
access_hash = mobj.group('access_hash') or ''
if track_id: if track_id:
webpage = self._download_webpage(url, track_id) webpage = self._download_webpage(url, track_id)
@ -826,7 +827,7 @@ def _real_extract(self, url):
elif playlist_id: elif playlist_id:
playlist = self._download_payload('al_audio', playlist_id, { playlist = self._download_payload('al_audio', playlist_id, {
'act': 'load_section', 'act': 'load_section',
'access_hash': '', # TODO: unnecessary, but it's better to parse from url if access_hash is present 'access_hash': access_hash,
'claim': '0', 'claim': '0',
'context': '', 'context': '',
'from_id': self._parse_vk_id(), 'from_id': self._parse_vk_id(),