使用 python 从 ttdownloader 下载视频

Download Videos using python from ttdownloader

大家好,我需要一些帮助,我正在尝试使用 python 从本网站https://ttdownloader.com/dl.php?v=YTo0OntzOjk6IndhdGVybWFyayI7YjowO3M6NzoidmlkZW9JZCI7czoxOToiNjkxMjEwNzYyNzY1MjY5NzM1MCI7czozOiJ1aWQiO3M6MzI6Ijk0MTdiOWE3NWU2MmE3MDQ1NjZhYzk0MzJjMThlY2VlIjtzOjQ6InRpbWUiO2k6MTYxMTQ5NzE1ODt9 下载视频。

这是我试过的代码。

import requests

url ='''https://ttdownloader.com/dl.php?v=YTo0OntzOjk6IndhdGVybWFyayI7YjowO3M6NzoidmlkZW9JZCI7czoxOToiNjkxMjEwNzYyNzY1MjY5NzM1MCI7czozOiJ1aWQiO3M6MzI6Ijk0MTdiOWE3NWU2MmE3MDQ1NjZhYzk0MzJjMThlY2VlIjtzOjQ6InRpbWUiO2k6MTYxMTQ5NzE1ODt9'''
page = requests.get(url)
with open('output.mp4', 'wb') as file:
    file.write(page.content)

但它没有按预期工作,当我检查 page.content 时,我只看到 b''

您应该使用 request.urlretrieve 直接将 URL 保存到文件中:

from urllib import request 

url ='''https://ttdownloader.com/dl.php?v=YTo0OntzOjk6IndhdGVybWFyayI7YjowO3M6NzoidmlkZW9JZCI7czoxOToiNjkxMjEwNzYyNzY1MjY5NzM1MCI7czozOiJ1aWQiO3M6MzI6Ijk0MTdiOWE3NWU2MmE3MDQ1NjZhYzk0MzJjMThlY2VlIjtzOjQ6InRpbWUiO2k6MTYxMTQ5NzE1ODt9'''
request.urlretrieve(url, output.mp4)

但是,这段代码给了我一个 urllib.error.HTTPError: HTTP Error 403: Forbidden 错误。看来这个 link 未经身份验证不能公开使用。

❌ 您正在使用的 link 不是 一个 html 页面。
❌ 因此它不会 return 任何 html.

✅ 你的 link 是媒体 link.
✅ 因此,您必须流式传输并下载它。像这样:

import requests

url = '/your/valid/ttdownloader/url'
with requests.get(url, stream=True) as r:
    with open('ouput.mp4', 'wb') as f:
        for chunk in r.iter_content(chunk_size=8192): 
            f.write(chunk)

注意:
您在问题中发布的 link 现在无效。
请使用新生成的 link.

尝试上面的代码