SiMa Blog

  • 文章
  1. 首页
  2. 文章
  3. Python
  4. 正文

python下载视频网站视频

2024年8月17日 340点热度

1、定位m3u8接口

1.1 原理

目前主流的网站,为了提高加载速度和降低带宽消耗,许多视频网站采用了将视频内容切割成多个小片段(也称为视频分片或分段),这些小视频片段的地址并不会直接暴露给用户或播放器,而是被组织并存储在一个特殊的文本文件(通常是m3u8格式)中。m3u8文件,它定义了流媒体视频的分片结构、编码格式、播放列表等关键信息。

为了获得m3u8文件,通常需要通过网络请求与视频网站的服务器进行交互。可以使用浏览器的开发者工具(如Chrome的Network面板)监控网络请求,定位到视频网站返回m3u8文件的具体接口(URL)。

1.2 具体操作

下边以爱奇艺视频为例
1. 打开Chrome浏览器,在浏览器的地址栏中输入你想要下载的视频的完整网址,并按下回车键加载页面。
2. 按12调出开发者工具,在开发者工具中,会了现多个标签页,如Elements、Console、Sources等。点击“Network”标签页以切换到网络请求监控界面。
3. 在Network面板的搜索框中输入"m3u8"关键字(最好使用F5键或点击浏览器刷新按钮重新捕获网络请求),然后按回车键进行搜索。这将帮助你快速筛选出所有包含"m3u8"的请求,这些请求很可能就是视频流的播放列表文件。

通常接口在叫dash里的

2、视频下载代码

  1. 引相关的模块,如果没有安装的话,用pip install XXXX 进行安装
import requests
import re
from tqdm import tqdm
  1. 通过http接口获得m3u8的文件
url=""
name="move.mp4"

respone=requests.get(url).json()
m3u8List=respone['data']['program']['video']
m3u8Text=[]
for item in m3u8List:
    if 'm3u8' in (item):
        m3u8Text.append(item['m3u8'])
  1. 把m3u8数据里的每个ts视频文件地址获取,并将视频数据写进一个文件里
for m3u8 in m3u8Text:
    tsList=re.sub('#E.*','',m3u8).split()
    for tsUrl in tqdm(tsList):
        tsData=requests.get(tsUrl).content
        with open(name,mode="ab") as f:
            f.write(tsData)

3、说明

由于版权保护和技术限制,直接访问或下载视频网站的m3u8文件及其视频片段可能违反网站的服务条款或法律法规。因此,在进行此类操作时,请确保你有权访问这些视频内容,并遵守相关的法律法规。本文仅作为技术交流

相关文章:

  1. Python之爬取我爱我家的房价
  2. Python之调用FFmpeg实现视频剪辑
  3. Axure+javascript嵌入视频(一)
  4. Axure API 加载js、css文件
  5. Axure+js嵌入图表之GIS地图(二)
标签: Python vedio 视频
最后更新:2024年8月17日

司马陵空

小小分享,共同进步

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复
分类
  • Axure
  • docker
  • Hass
  • Kodi
  • linux
  • Python
  • Wordpress
  • 其他
  • 未分类

COPYRIGHT © 2021 www.sima.link ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

浙ICP备2021033974号