soimort/you-get · error · NotImplementedError
Nothing to download here
Error message
Nothing to download here
What it means
vk_download routes by three URL patterns: (.+)z=video(.+) (video with hash param), vk.com/photo(.+), and vk.com/video<owner>_<id>. Any VK URL matching none — clips, m.vk.com mobile links, short vk.cc links, wall posts — hits the else and raises NotImplementedError('Nothing to download here').
Source
Thrown at src/you_get/extractors/vk.py:62
title = (' ').join(page_of + photo_date)
image_link = r1(r'href="([^"]+)" class=\"mva_item\" target="_blank">Download full size', image_page)
type, ext, size = url_info(image_link)
print_info(site_info, title, type, size)
return image_link, title, ext, size
def vk_download(url, output_dir='.', stream_type=None, merge=True, info_only=False, **kwargs):
link = None
if re.match(r'(.+)z\=video(.+)', url):
link, title, ext, size = get_video_info(url)
elif re.match(r'(.+)vk\.com\/photo(.+)', url):
link, title, ext, size = get_image_info(url)
elif re.search(r'vk\.com\/video\d+_\d+', url):
link, title, ext, size = get_video_from_user_videolist(url)
else:
raise NotImplementedError('Nothing to download here')
if not info_only and link is not None:
download_urls([link], title, ext, size, output_dir, merge=merge)
site_info = "VK.com"
download = vk_download
download_playlist = playlist_not_supported('vk')
View on GitHub (pinned to 049548f3f3)
Solutions
- Use the canonical desktop video URL form https://vk.com/video<owner_id>_<video_id>
- For photo downloads use the vk.com/photo<owner>_<id> form
- If you rely on the z=video hash form, ensure the URL literally contains z=video... and starts appropriately — or patch re.match to re.search at src/you_get/extractors/vk.py:58
- For clip/other formats, resolve the final video URL in a browser first, then hand that to the extractor
Example fix
# before
if re.match(r'(.+)z\=video(.+)', url):
link, title, ext, size = get_video_info(url)
# after
if re.search(r'z\=video(.+)', url):
link, title, ext, size = get_video_info(url) Defensive patterns
Strategy: validation
Validate before calling
import re
def vk_url_supported(url):
return bool(re.search(r'z=video', url)
or re.search(r'vk\.com/photo', url)
or re.search(r'vk\.com/video\d+_\d+', url)) Try / catch
try:
vk_download(url, ...)
except NotImplementedError:
print('use https://vk.com/video<owner>_<id> or a z=video/photo URL') Prevention
- Convert clip/mobile/short links to the canonical vk.com/video<owner>_<id> form first
- Do not rely on the z=video form unless the URL literally starts per re.match semantics
- Resolve redirects (vk.cc) before handing the URL to the extractor
When it happens
Trigger: Passing 'https://vk.com/clip-123_456', 'https://m.vk.com/video123_456' (matched: the video\d+_\d+ search actually hits here since it's re.search without https anchor — but z=video via re.match requires the URL to start with arbitrary chars then 'z=video', which ordinary https URLs never satisfy at position 0), playlist/album links, or vk.cc shortened share links.
Common situations: Users pasting mobile or clip URLs; VK changing URL structure; the first pattern using re.match so only URLs beginning with something followed immediately by 'z=video' qualify, which breaks normal browser URLs.
Related errors
- Wrong url or unsupported link ... {0}
- not found book number: %s
- Cannot find item ID
- url
- not found total count in html
AI-assisted analysis of soimort/you-get@049548f3f3 (2026-08-15).
Data as JSON: /api/errors/9aa495768ddacc0d.
Report an issue: GitHub.