【问题标题】:Downloading video from website using python使用python从网站下载视频
【发布时间】:2021-09-28 11:55:52
【问题描述】:

我正在尝试从网站下载视频,但我无法专门下载该视频。我无法下载视频。我没有看到任何错误,但我也没有看到下载的视频。我不确定我的代码有什么问题。任何帮助深表感谢。提前谢谢你。

代码如下:

try:
    import urllib.request as urllib2
except ImportError:
    import urllib2

dwn_link = 'https://www1.wdr.de/fernsehen/lokalzeit/ostwestfalen/videos/video-lokalzeit-owl---1304.html'

file_name = '_video.mp4' 
rsp = urllib2.urlopen(dwn_link)
with open(file_name,'wb') as f:
    f.write(rsp.read())

【问题讨论】:

  • 您的代码将通过 WDR 链接下载 HTML 页面,该链接提供给名为 _video.mp4 的文件。它不会下载实际的视频。你会想要例如youtube-dl 包代替;尽管它的名字,它也可以下载 WDR 视频。

标签: python web-scraping beautifulsoup python-requests


【解决方案1】:

结果中有一个包含 mp4 和 m3u8 链接的 Javascript 对象,其格式如下:

<script type="text/javascript">
globalObject.gseaInlineMediaData["something"] =
{
    "mediaVersion": "1.4.0",
    "mediaType": "vod",
    "mediaResource": {
        "dflt": {
            "videoURL": "//some_file.m3u8",
            "mediaFormat": "hls"
        },
        "alt": {
            "videoURL": "//some_file.mp4", <======== HERE
            "mediaFormat": "mp4"
        },
        "previewImage": "//some_file.jpg"
    },
    ....
};
</script>

然后你可以像这样直接抓取 mp4 文件:

import requests
import re
import json

r = requests.get("https://www1.wdr.de/fernsehen/lokalzeit/ostwestfalen/videos/video-pausenbrot-prozess-mit-gutachten-zum-angeklagten-100.html")
res = re.search(r"globalObject\.gseaInlineMediaData.*\s*=\s*(.*)\s*;\s*<\/script>", r.text, re.DOTALL)
data = json.loads(res.group(1))
video_url = f'https:{data["mediaResource"]["alt"]["videoURL"]}'

print(video_url)

r = requests.get(video_url, stream = True) 

with open("video.mp4", 'wb') as f: 
    for chunk in r.iter_content(chunk_size = 1024*1024): 
        if chunk: 
            f.write(chunk)

如果您有一个视频链接,其中 mp4 在 alt 对象中不可用,您可以使用 ffmpeg 从 m3u8 获取文件:

ffmpeg  -protocol_whitelist "file,http,https,tcp,tls" -i  something.m3u8 file.mp4

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-07-21
  • 2017-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-02
  • 2018-09-28
相关资源
最近更新 更多