m3u8d/README.md

34 lines
2.2 KiB
Markdown
Raw Normal View History

2022-05-15 03:05:31 +00:00
## m3u8d 一款m3u8下载工具
2022-05-29 10:28:42 +00:00
* 提供windows图形界面(Qt), mac\linux命令行, linux支持arm和386
* 使用ffmpeg转换格式为mp4
2022-06-12 14:58:10 +00:00
* windows自带GUI界面的版本下载: [m3u8d_qt_v1.2_windows_amd64.exe](https://github.com/orestonce/m3u8d/releases/download/v1.2/m3u8d_qt_v1.2_windows_amd64.exe):
2022-05-15 03:41:30 +00:00
![](m3u8d-qt/screenshot.png)
2022-05-29 10:28:42 +00:00
* 全部版本下载, 包括windows图形界面/linux命令行/mac命令行: https://github.com/orestonce/m3u8d/releases
2022-05-15 03:05:31 +00:00
## 实现说明
* download.go 大部分抄自 https://github.com/llychao/m3u8-downloader
2022-05-29 10:28:42 +00:00
* 将ffmpeg直接编译进windows/linux-arm/linux-386/darwin的二进制了.
转换mp4时,会自动将二进制里的ffmpeg解压到系统临时目录,然后使用.
因此linux/mac版本的可执行文件达到了32MB, 带Qt ui的可执行文件达到了惊人的 50MB
2022-05-15 03:05:31 +00:00
* 支持跳过前面几个ts文件(一般是广告, 嘿嘿)
* 程序会在下载保存目录创建:
* downloading/ 目录, 用于存放正在下载的分段ts视频, 按照m3u8的url进行划分
* m3u8d_cache.cdb 文件, 用于存放以前的下载历史, 用于防止重复下载文件
* 重复下载文件的判定和跳过
* 将除了保存位置和保存文件名以外的参数进行hash, 得到文件下载id
* 将文件下载id/文件大小/文件内容hash 储存在 m3u8_cache.cdb里面, 下载前搜索下载目录
如果发现某个文件大小/文件内容hash和以前的记录相相等,则认为这个文件是以前下载的文件, 跳过
此次下载.
2022-05-25 06:13:17 +00:00
## TODO:
* [x] 如果不是m3u8样子的URL自动下载html下来、搜索其中的m3u8链接进行下载
2022-05-28 02:11:38 +00:00
* [x] windows、linux、mac都支持ffmpeg合并ts列表为mp4
2022-05-25 06:14:15 +00:00
* [ ] 增加linux的图形界面支持
2022-05-25 06:18:39 +00:00
* [ ] 支持保存为mp3格式
2022-05-15 03:05:31 +00:00
## 二次开发操作手册:
2022-05-15 03:51:05 +00:00
* 如果只开发命令行版本, 则只需要修改*.go文件, 然后编译 cmd/main.go 即可
* 如果涉及到Qt界面打包, 则需要运行 export/main.go 将 *.go导出为Qt界面需要的
2022-05-15 03:05:31 +00:00
`m3u8-qt/m3u8.h`,`m3u8-qt/m3u8.cpp`, `m3u8-qt/m3u8-impl.a`. 然后使用QtCreator进行打包
## 发布协议
* m3u8-qt/ 目录采用 [GPL协议 v3](m3u8d-qt/LICENSE) 发布
2022-05-15 03:39:03 +00:00
* 除 m3u8-qt/ 以外的代码, 采用[MIT协议](LICENSE)发布