Skip to main content

GitHub | Gitee

m3u8dwn - m3u8视频下载器

概述

python实现的m3u8视频多协程下载器,支持多个ts切片文件同时下载;

初始版,是使用requests库+多线程来实现的,下载速度还行,就是电脑经常卡住,因为线程被频繁创建、占用、切换;

最终版,是使用httpx异步请求库+多协程来实现,下载速度嗖嗖的,电脑不卡,并发下载数随便加。

  • 支持功能
  1. 通过m3u8地址下载视频
  2. 通过网页解析出m3u8地址,并下载视频
  3. 并发下载ts分片文件 + 解密 + 合并为mp4
  4. 可指定ts并发下载数
  5. 当ts文件下载失败后,会自动重试1次
  6. 可指定下载目录
  7. 断点续传:当命令半途中断后,可重新执行命令,因为下载目录与视频地址不变,他会继续上次未完成的下载
  8. 打日志
  • 目前仅支持linux环境,windows环境未测试

使用

1. 安装

pip install m3u8dwn

2. 下载命令

2.1 命令格式

m3u8dwn -m m3u8地址 -p 内含m3u8地址的网页地址 -r 网页地址范围 -o 输出目录 [-f 下载文件名] [-c 并发下载数] 

其中选项有:

-m-p-r是三选一;

-m为 m3u8 url;

-p为 网页url, 网页内容需包含m3u8 url, 同时其标题可作为输出文件名;

-r为 网页url范围, url包含范围表达式, 如[1:3], 范围中的每个元素代表一个url;

-o可省, 为输出目录, 默认为当前目录;

-f可省, 为输出文件名, 默认是网页标题.mp4或result.mp4;

-c可省, 为并发下载数, 默认为200

-t可省, 为重试次数, 默认为2

2.2 例子

# 通过m3u8地址下载视频,下载目录为当前目录,-m指定m3u8地址
m3u8dwn -m http://xxx.com/yyy.m3u8

# -o指定下载目录
m3u8dwn -m http://xxx.com/yyy.m3u8 -o /home/shi/video

# 通过网页解析出m3u8地址,并下载视频,-p指网页地址
m3u8dwn -p http://xxx.com/yyy.html 

# -r指定网页url范围,其中[1:3]是范围表达式,代表遍历从1到3的数字元素, 每个元素代表一个url,命令会遍历每个url来下载视频
m3u8dwn -r http://xxx.com/yyy-[1:3].html 

# -c指定并发下载数为150
m3u8dwn -m http://xxx.com/yyy.m3u8 -c 150

# -t指定重试次数为3
m3u8dwn -m http://xxx.com/yyy.m3u8 -t 3

2.3 运行效果 cmd

Release files for m3u8dwn 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for m3u8dwn 1.0.1
File Size Uploaded
m3u8dwn-1.0.1.tar.gz 9.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for m3u8dwn 1.0.1
File Interpreter ABI Platform
m3u8dwn-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size:19.2 kB

Release files / m3u8dwn-1.0.1.tar.gz

Download URL m3u8dwn-1.0.1.tar.gz
Size 9.1 kB
Tags Source
SHA-256 checksum
How to use checksums
f3ac05653cadd3347480b00995666d156d6a9efb98dd66548d9f60b8487150df
BLAKE2b-256 checksum
How to use checksums
fbcb6c5e9404fd58d1ec32ecb0803f5bba60896dcbc4f2ff69b0774e59bf4c07
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.6

Release files / m3u8dwn-1.0.1-py3-none-any.whl

Download URL m3u8dwn-1.0.1-py3-none-any.whl
Size 10.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
16398054953fb916171c5d7b8fe0a3e1c2986db695e332e80785624fadef8ba0
BLAKE2b-256 checksum
How to use checksums
4a7a16462d5c8ff48a37d0a597a3659015fce7c59e17906f36a17b2a732d7265
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.6

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page