после скачивания остается только звук с оригинального видео, но сам видео ряд заменяется на другой
значит 'не так' скачиваешь.
Для начала попробуй найти готовое решение, типа yt-dlp (поддерживает
почти пару тысяч видеохостингов), причем может сработать и на других, которые скопировали решение у тех что поддерживается.
Так же, можно спомощью штатной браузерной консоли разработчика (F12) проанализировать сетевые запросы и найти что то типа .m3u8, этот файл можно скормить ffmpeg напрямую, он скачает (если нет прямого запрета), либо, это текстовый файл, запросы можно скопировать из браузера (правая кнопка на запросе, копировать как curl), и с минимальными правками сформировать список команд на загрузку и скачать куски вручную.
Различные хостинги видео противодействуют автоматизации, особенно если они бесплатные, так как это напрямую влияет на их расходы (их начинают использовать как бесплатный хостинг другие), поэтому для каждого случая необходимо проводить исследование (реверсинженеринг).
Из универсальных средств - запись с экрана, это самый простой способ, с помощью чего то типа
Open Broadcaster Software и любой системы автоматизации (открыть страницу, нажать кнопку play, пропустить рекламу и т.п.), которую так же разрабатывать под каждый случай индивидуально.
Обычно там все не слишком сложно.