Всем доброго времени суток! Подскажите, пожалуйста, как можно скачать YouTube видео через DevTools?
Я знаю, что можно скачать через различные сайты или yt-dlp. Но как это сделать без них?
В консоли только xhr файлы идут. Может, оттуда можно как-то ссылку на видео вытащить?
Update:
У меня получилось вытащить видео из консоли как мне и нужно было.
1) Выбираете нужный вам ролик.
2) Перед запуском ролика выбираете нужное вам качество.
3) Открываете Developer tools - Network и запускаете ролик на несколько секунд
4) Во вкладке Network после начала проигрывания видео появятся файлы с именем videoplayback?expire=...
Какие-то из этих файлов с именем videoplayback?expire=... относятся к видео файлу, а какие-то к звуку.
5) Открываете ссылку на файл в новой вкладке, там будет окошко с видео, но там ничего нет.
6) В адресной строке в самом конце ищите &range=какое-то число-какое-то число. Например, &range=1680777-2230746 и записываете его так &range=0-99999999999999999. Девяток или других цифр может быть сколько угодно. Как я понял, это размер файла в байтах. Так у вас загрузится файл полностью.
7) Обновляете страницу с измененным &range и скачиваете полученный файл. Это будет либо видео, либо аудио.
Чтобы не проверять все ссылки подряд, чтобы определить видеофайл это или аудиофайл, справа в разделе headers в content-type указан формат.
Ну а потом склеиваете через ffmpeg или что вам нравится видео+аудио.
Может, кому-то это пригодится.
А так, пользуйтесь yt-dlp)
P.S. Я не программист.
где yt-dlp вытянет отдельно ссылки на видео и аудио
можно и под разные форматы, подробнее смотри этот вопрос
ну а далее по эти ссылкам можно качать чем угодно, даже тем же curl
curl -L -o "видео.avi" "...URL..."
правда потом не забудте склеить аудио и видео
Я сейчас так и скачиваю видео yt-dlp и ffmpeg для скейлики и перевода в нужный формат. Но я хочу получить ссылки на видео + звук из консоли или как-то руками, а не через yt-dlp или какие-то сайты.
yt-dlp как-то же получает их.
В если посмотреть в консоли на xhr, то справа в headers многое похоже на то, что возвращает --get-url.
Приведу цитату из инструкции на английском. Проверил, этот способ работает.
To reach the direct video and audio links: (using Chrome)
Navigate to the desired youtube video.
Press F12 to open Chrome DevTools, and then select the ‘Network’ tab.
Ensure network recording log is turned on, indicated by the red circle near the top-left. To enable, press the black circle or press ‘Ctrl-E’.
In the filter box, search for ‘mime=video’. If you just turned on network recording you may to press ‘F5’ to refresh in order to see results.
Right click on the entry nearest the bottom and select ‘Open in new tab’.
In the new tab, you’ll be faced with a empty media player that doesn’t work. The URL is very long, and you will need to modify it slightly to allow the video to play. Near the end of the URL you will find a ‘range’ parameter similar to this: &range=15880614-17942602
Remove this section of the URL and renavigate to the URL.
You now have a direct video download link. You can view the video from this URL or right-click on the video frame to download locally.
Repeat from step 4 using ‘mime=audio’ in the filter to download the audio.