Go to file
orestonce 995bed598a
Update README.md
2022-06-28 17:18:01 +08:00
cmd 支持curl 2022-06-25 20:16:21 +08:00
export 支持curl 2022-06-25 20:16:21 +08:00
m3u8d-qt save 2022-06-25 20:18:51 +08:00
.gitignore * 删除m3u8-impl.a 2022-06-20 07:47:33 +08:00
LICENSE v1.0 2022-05-15 11:05:31 +08:00
README.md Update README.md 2022-06-28 17:18:01 +08:00
cache.go save 2022-06-20 07:32:53 +08:00
curl.go 支持curl 2022-06-25 20:16:21 +08:00
download.go 支持curl 2022-06-25 20:16:21 +08:00
go.mod 支持curl 2022-06-25 20:16:21 +08:00
go.sum 支持curl 2022-06-25 20:16:21 +08:00
merge.go 更新gomedia, 修复mp4合并bug 2022-06-21 22:17:26 +08:00
proxy.go 支持设置代理,包括http/socks5 2022-06-21 07:22:53 +08:00

README.md

m3u8视频下载工具

实现说明

  • download.go 大部分抄自 https://github.com/llychao/m3u8-downloader
  • 使用gomedia 代替ffmpeg进行格式转换
  • 支持跳过前面几个ts文件(一般是广告, 嘿嘿)
  • 程序会在下载保存目录创建:
    • downloading/ 目录, 用于存放正在下载的分段ts视频, 按照m3u8的url进行划分
    • m3u8d_cache.cdb 文件, 用于存放以前的下载历史, 用于防止重复下载文件
  • 重复下载文件的判定和跳过
    • 将M3u8Url+SkipTsCountFromHead进行hash, 得到文件下载id
    • 将文件下载id/文件大小/文件内容hash 储存在 m3u8_cache.cdb里面, 下载前搜索下载目录 如果发现某个文件大小/文件内容hash和以前的记录相等,则认为这个文件是以前下载的文件, 跳过此次下载.

TODO:

二次开发操作手册:

  • 如果只开发命令行版本, 则只需要修改*.go文件, 然后编译 cmd/main.go 即可
  • 如果涉及到Qt界面打包, 则需要运行 export/main.go 将 *.go导出为Qt界面需要的 m3u8-qt/m3u8.h,m3u8-qt/m3u8.cpp, m3u8-qt/m3u8-impl.a. 然后使用QtCreator进行打包

发布协议