Как скачать видео с вк?
Есть скрипт, который с помощью api получает ссылку на видео. Если вручную перейти туда, то сразу начинается скачивание и все нормально, но если через скрипт, то скачивается только 2 байта (переменная size равна 2) и говорит, что все скачалось. Скачивание идет по ссылке такого формата:
https://vkvd133.mycdn.me/?expires=1611936279423 (она не полная, т.к. далее идут мой айпишник и т.д.)
def download_file(file_path, url):
r = requests.get(url, stream=True)
size = int(r.headers.get('content-length'))
print(size)
block_size = 1024000 # мегабайт
progress_bar = tqdm(total=size, unit='iB', unit_scale=True)
with open(file_path, "wb") as file:
for chunk in r.iter_content(block_size):
progress_bar.update(len(chunk))
file.write(chunk)
progress_bar.close()
Как скачать видос?
Ответы (2 шт):
Короче, обновил токен, не помогло. Ответ сервера (данные о видео) сохранял в json(один раз, пару дней назад (когда все было хорошо), для того, чтобы если вдруг бы ответ от сервера изменился, вк бы сказал: "слушай, раньше твое видео нам казалось нормальным, но теперь мы его заблокируем", а мой ответ ему фиг тебе, все равно скачаю, так как у меня есть ссылка на видео до того как ты его удалил (логика странная, но я пытался)).
Так вот, попробовал с новым токеном создать новый json, тоже ничего не получилась (та же длина в 2 байта), и так, ничего не меняя, с новым токеном (а в конце еще и новое приложение сделал) в очередной раз взял ссылку с нового json и сработало.
Другими словами помогло несколько раз, по новой, получить все данные, от токенов до приложений и ответов от сервера и сработало. Так что, видимо, все баги на их стороне.
как-то так
import youtube_dl
ydl_opts = {}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
ydl.download(['https://vk.com/video11344912_138014288'])