nilaoda / N_m3u8DL-CLI

[.NET] m3u8 downloader 开源的命令行m3u8/HLS/dash下载器,支持普通AES-128-CBC解密,多线程,自定义请求头等. 支持简体中文,繁体中文和英文. English Supported.
https://nilaoda.github.io/N_m3u8DL-CLI/
MIT License
13.84k stars 2.12k forks source link

希望增加队列功能,以及任务加入队列的参数 #713

Closed butaixianran closed 1 year ago

butaixianran commented 1 year ago

现在只有GUI下,可以拖入一个目录,来下载旗下所有m3u8。但是,这并不符合这个东西的一个主要使用场景。

一个常见用法,是下载网络流媒体的影视作品。通过猫抓之类的,网页视频解析工具,得到m3u8地址,调用N_m3u8DL-CLI下载。

但是,这些网站,都对m3u8限定了http header中的referer。而且,m3u8里面,分片地址是相对路径。因此,如果我把这些m3u8下载到本地,再拖入GUI,是下载不了的。

唯一下载方法,是靠猫抓等网页解析工具,生成调用N_m3u8DL-CLI的带参数命令,通过m3u8dl://协议下载。

然而,这样下载是没有队列的。一部剧集,必须下完一集,再手动下另一集。

希望能够增加一个参数,比如: --list,就是把当前命令中的下载需求,添加到队列。

也就是说,这个队列功能,不是添加在GUI的程序中的。而是希望内建到N_m3u8DL-CLI的功能。

nilaoda commented 1 year ago

GUI可以拖入形式如下的txt文件以批量下载:

标题1,http...
标题2,http...
标题3,http...
butaixianran commented 1 year ago

这个格式中,"http..."的部分,能带参数吗?类似: "https://example.com/abc.m3u8" --workDir "%USERPROFILE%\Downloads\m3u8dl" --saveName "abc" --enableDelAfterDone --disableDateInfo --noProxy

还是说,只能是一个m3u8地址?

nilaoda commented 1 year ago

其余参数由GUI生成,txt中只能有url和标题

butaixianran commented 1 year ago

这个事情就比较尴尬。因为同一个影视网站,它的视频播放源,也是不同的。有的视频源必须挂代理,有的则不挂代理比较好,挂了反而没速度。

于是,就有了,一个下载队列中,有的视频需要挂代理,有的视频不挂代理,这种非常有中国特色的需求。

如果列表不能含参数,那么这一点就做不到。

butaixianran commented 1 year ago

看了下,这个项目已经是维护阶段,有了替代的N_m3u8DL-RE项目。

那么,希望GUI的队列功能问题,能在N_m3u8DL-RE项目得到解决。

队列中的每一个条目,都需要有独立的下载参数。GUI在设计的时候,就需要基于任务列表来设计,而不是像现在这样的单任务GUI。

N_m3u8DL的主体程序,最好有开放API。在GUI发起下载任务,而N_m3u8DL任务完成后,返回一个消息给GUI程序,让GUI知道上一个任务完成了。这样,GUI就发起执行下一个下载任务。形成Server-Client的方式。

有了明确的可调用API,网友也有机会协助GUI的开发。

cookle0106 commented 1 year ago

地址复制下来写个bat就可以了吧

lweo commented 1 year ago

地址复制下来写个bat就可以了吧

能给出一个同时下载的bat 示例吗