# m3u8Download **Repository Path**: kaylee595/m3u8-download ## Basic Information - **Project Name**: m3u8Download - **Description**: m3u8视频文件下载 - **Primary Language**: Go - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 2 - **Created**: 2023-09-14 - **Last Updated**: 2024-09-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 该项目已停止, 请前往新地址 在这里访问新项目: [M3U8Downloader](https://gitee.com/kaylee595/m3u8Downloader) ### 介绍 m3u8Download是用来下载m3u8视频的,支持并发下载TS流, 支持加密的TS, TS视频合并, TS转MP4. 轻轻松松跑满全部带宽来进行下载~ ### 使用 在开始下载TS之前, 我们需要将M3U8文件下载到本地, 然后再去下载TS流, 这是两个步骤. #### 1.下载M3U8文件 **该下载命令会将TS中所有非绝对路径的URI转为绝对路径~** ```shell m3u8Download.exe m3u8 -o <下载的文件名, 通常设定影片的名字方便区分> -r <来源referer> ``` | 缩写 | 全写 | 类型 | 作用 | |----|-----------|-----|---------------------| | -o | --out | str | 下载后的m3u8文件名, 默认为路径名 | | -r | --referer | str | 发起请求时的referer, 默认空白 | 执行完毕之后, 会将M3U8文件下载至到程序目录下的`m3u8`文件夹中.\ 如果需要下载多个视频, 可以将所有M3U8文件全部提前下载好. #### 2. 下载M3U8视频 ```shell m3u8Download.exe -r <来源referer> -p http://localhost:10809 ``` 执行命令后, 程序会扫描`M3U8`文件夹中所有以m3u8结尾的文件, 将它们进行下载. 1. M3U8被成功下载完成之后, 会将文件后缀更名为ok, 避免下次下载文件再次被扫描到, 而且留存M3U8文件可以避免下载重复, 软件在下载之前会检查之前有没有OK过的文件, 有的话软件会提示该文件一已经被下载过, 不会再次下载. 2. 在TS下载之前, 会检查某个TS是否已经下载过, 如果已经下载, 软件不会重新覆盖下载, 可以做到断点重新下. 3. 当你成功下载到MP4视频之后, 你最好打开视频, 拖动到末尾看一下视频的声音是否于画面同步, 如果没有同步, 则表示中间其中某个TS的文件出现损坏, 需要进行排查删除或重新下载某个TS文件. | 缩写 | 全写 | 类型 | 作用 | |----|---------------|-----|---------------------------------------| | -m | --maxDownload | int | 最大并发下载数, 默认使用系统CPU核心数量 | | -p | --proxy | str | 代理地址, 默认不使用代理 | | -r | --referer | str | 发起请求时的referer | | | --allowError | int | 允许出错次数, 默认只要出错将不进行TS合并和MP4转换 | | | --retry | int | TS下载出错重试次数 (default 3) | | | --tsSizeLimit | int | TS文件大小限制, 单位KB, 默认100KB (default 100) | #### 清理视频 当你成功下载到MP4视频之后, 你会发现TS目录下面的文件是多余的, 可以清理掉, 但是有时候手动清理太多视频比较麻烦, 因为你有可能需要一个个对比看看哪个TS的文件夹是已经下载成功有MP4文件了, 可以借助这个命令来快速安全的删除. ```shell m3u8Download.exe clean ``` 执行命令后, 程序会扫描`MP4`文件夹下面下载成功的视频, 将扫描到的视频文件名对应的在`TS`文件夹中进行匹配, 如果匹配到了, 程序会自动删除那些没用的TS文件. 该命令只会删除`TS`文件夹下的文件, 不会删除其他目录的文件, 可以放心大胆的执行! #### 配置文件的使用 1. 掌握前面的内容, 你就已经可以游刃有余的使用软件了, 但是细心的你发现每次下载不同平台的M3U8视频, 都要手动指定对应平台的Referer, 非常麻烦!! 2. 有时候需要经常指定代理地址, 非常繁琐, 下载一个M3U8视频需要输入很多繁琐的东西!! **那么这个时候配置文件就可以闪亮登场啦~**\ 你只需要在程序目录下面创建一个`config.yaml`文件, 然后使用全写标记配置好我们的设置, 这样就不用每次执行命令的时候都在反复的输入一些繁琐的标记啦. ```yaml # config.yaml # proxy 代理地址 proxy: http://127.0.0.1:10809 # 最大并发下载数 maxDownload: 32 # 出错重试次数 retry: 3 # 允许出错次数 allowError: 60 refererConfig: domain: referer ``` 细心的伙伴已经发现了`refererConfig`这个配置, 这个配置是用来解决我们提出的第一个问题的, 就是不同平台不同referer.\ domain位置请写TS下载时的Host, 当程序在下载TS时, 发现这个TS的Host有对应的Referer, 会自动使用这个referer.\ 当然了, 如果你使用referer标记指定了一个固定的referer时, 这个配置就失去作用了, 程序会优先使用你指定的referer. ### 后言 如果你在使用遇到问题 / 遇到不支持的网站, 欢迎写下你遇到的Issues,\ 当然, 如果你能自己解决问题, 也可以提交PR给我进行合并.\