1 Star 0 Fork 0

kaylee595 / m3u8Downloader

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

介绍

m3u8Downloader是用来下载m3u8视频的, 轻轻松松跑满全部带宽来进行下载~

  1. 支持并发下载媒体流
  2. 支持加密的媒体资源
  3. 媒体资源的合并
  4. 媒体资源转MP4.

相比m3u8Download:

  1. 整体进行重构, 将M3U8文件的解析逻辑抽离到模块(感兴趣可以在这里查看, 欢迎改进)
  2. 下载性能更加优越, 合理使用多路复用减少请求TCP创建的时间.

使用

在开始下载TS之前, 我们需要将M3U8文件下载到本地, 然后再去下载TS流, 这是两个步骤. 你可以自己手动下载好m3u8文件, 也可以使用软件自带的m3u8下载器来下载m3u8文件. 注意, 自己下载的m3u8文件务必确保m3u8文件中的资源链接是绝对地址.

下载M3U8文件

m3u8文件下载, 会自动转换m3u8数据中的相对路径为绝对路径.

Usage:
m3u8Downloader m3u8 {m3u8URL地址} [flags]

Flags:
-h, --help                help for m3u8
-o, --output string   输出的文件名(Default: 链接尾部的名称)

# Example
# 这将下载链接中的数据到"周处除三害.m3u8"
.\m3u8Downloader.exe m3u8 https://example.com/100.m3u8 -o "周处除三害"

下载M3U8视频

将m3u8中的所有媒体流全部下载到本地后合并成视频

Usage:
m3u8Downloader {m3u8文件} [flags]

Flags:
--config string   config file (default is currentDirectory/config.yaml)
-h, --help          help for m3u8Downloader

# Example
# 使用之前, 确保你已经在配置文件中配置好了ffmpeg路径, 如果没有, 将不会自动把下载好的媒体转为mp4.
# 这将下载"周处除三害.m3u8"中的媒体到当前目录下的media文件夹
# 全部媒体下载完后会自动合并成一个, 最后会调用ffmpeg将合并的媒体流转为mp4存储到mp4文件夹.
.\m3u8Downloader.exe "周处除三害.m3u8"

配置文件

在当前目录下创建一个config.yaml文件, 配置以下内容.

# concurrency 下载并发数量(默认为CPU核心数量)
# concurrency: 8
# streamMinKB 媒体的最小KB值, 用于过滤不完整/损坏的媒体流, 如果没有过滤可能导致生成的最终话音不一致.(默认不限制)
streamMinKB: 80
# proxy 下载时使用的代理, 这里请直接使用URL的格式, 也可以带上用户名和密码: http://user:pass@localhost:10809 (默认不使用代理)
proxy: http://localhost:10809
# referer 下载媒体流时, header添加的referer值.
#referer: https://example.com/
# refererConfig 下载媒体流时, header添加的referer值, 该配置可以动态的选择主域名相匹配的referer. 如果上面的referer配置已有的话, 该选项refererConfig无效.
#refererConfig:
#  example.com: "https://video.example.com/"
# 出错重试次数, 如果设置为3, 其总计下载次数为3. (默认0/1下载失败后不进行重试)
retry: 3
# 允许出错次数, 当有指定的媒体数量都下载出错时, 则认为该m3u8文件可能失效了, 终止下载, 设置该值时, 你需要能够接收部分媒体的丢失, 通常不会很多甚至不会丢失媒体资源. (默认0/1只要出错一个就直接终止)
allowError: 60
# ffmpeg文件路径, 将下载完成并合成后的媒体转换为mp4.(默认不进行转换)
#ffmpeg: C:\ffmpeg\ffmpeg.exe
# downloadTimeoutSecond 下载超时, 单位秒, 可以防止下载某个资源过久, 当下载过久直接判定为出错, 交给retry或allowError策略进行重新下载.(默认不限制, 一直等待到文件下载完成)
downloadTimeoutSecond: 50

清理视频

当你成功下载到MP4视频之后, 你会发现media目录下面的文件是多余的, 可以清理掉, 但是有时候手动清理太多视频比较麻烦, 因为你有可能需要一个个对比看看media中的文件夹中哪个是已经下载成功有MP4文件了, 可以借助这个命令来快速安全的删除.

.\m3u8Downloader.exe clean

执行命令后, 程序会扫描mp4文件夹下面下载成功的视频, 将扫描到的视频文件名对应的在media文件夹中进行匹配, 如果匹配到了, 程序会自动删除那些没用的媒体文件. 该命令只会删除media文件夹下的文件, 不会删除其他目录的文件, 可以放心大胆的执行!

联系我

在使用过程中遇到问题, 欢迎随时提问我, 你可以在Issues中留下你的问题或建议.
如果你有能力解决本仓库的BUG, 欢迎你在Pull Request中提交你的改进.

空文件

简介

m3u8视频下载器 展开 收起
Go
取消

发行版 (1)

全部

贡献者

全部

近期动态

加载更多
不能加载更多了
Go
1
https://gitee.com/kaylee595/m3u8Downloader.git
git@gitee.com:kaylee595/m3u8Downloader.git
kaylee595
m3u8Downloader
m3u8Downloader
master

搜索帮助