蔻享学术下载器:KouShare-dl

项目地址:https://github.com/yliu7949/KouShare-dl
有很多功能,如下载蔻享学术www.koushare.com
上的视频和课件、录制直播、下载回放视频等。以下内容摘抄自GitHub,侵删。

KouShare-dl v0.8.0

功能

它目前具有如下功能

  • 登录蔻享账户,且一周内免登录

  • 获取视频的详细信息

  • 下载单个蔻享视频或整个系列的视频

  • 下载清晰度为标清、高清和超清的视频(需要登录)

  • 下载已购买且在有效期内的付费视频(需要登录)

  • 继续上一次的视频下载

  • 定时录制直播间

  • 继续上一次的直播间录制

  • 下载直播间的快速回放🚀

  • 下载单个课件或整个系列的课件

它无法做到的事情

  • 下载未购买的付费视频

"功能支持"表格

类型是否支持系列下载是否支持单独下载是否支持断点续传是否支持不同清晰度的下载是否支持付费产品下载
视频✔️✔️✔️✔️
直播✔️✔️
课件✔️✔️✔️

(✔️表示支持该功能,❌表示不支持该功能,➖表示该功能不存在,⭕表示部分支持该功能)

编译

如果您是 Windows 平台用户,可以直接下载 Releases
中的可执行文件ks.exe。 否则,您需要下载源代码自行编译。

使用方法

您需要通过命令行或终端进入该程序所在的文件夹,才能执行相关命令。

Windows平台为例,若可执行程序ks.exe位于C:\Users\lenovo\Downloads\路径下,您每次使用时需要通过快捷键Win+R打开“运行”对话框,输入CMD后回车打开命令行窗口。在命令行窗口中输入以下命令:

cd C:\Users\lenovo\Downloads\
ks version

若出现KouShare-dl v0.8.0字样,则说明可以正常使用。接下来您可以继续输入 KouShare-dl 程序的命令来进行交互。比如,输入ks help并回车,您就可以看到 KouShare-dl 程序的帮助信息了。

命令简介

KouShare-dl 程序的命令具有下面的格式:

  ks [command] <flag>

其中[command]为必选命令,<flag>为可选参数。

可使用的 command 命令:

  help        查看某个具体命令的更多帮助信息
  info        获取视频的基本信息
  login       通过短信验证码获取“蔻享学术”登陆凭证
  logout      退出登陆
  merge       合并下载的视频片段文件
  record      录制指定直播间ID的直播,命令别名为live
  save        保存指定vid的视频(vid为视频网址里最后面的一串数字),命令别名为video
  slide       下载指定vid的视频对应的课件
  version     输出版本号,并检查最新版本

可使用的 flag 参数:

  -@, --at         指定时间,格式为"2006-01-02 15:04:05"
  -a, --autoMerge  指定是否自动合并下载的视频片段文件
  -h, --help       查看帮助信息
  -n, --name       指定输出文件的名字
  -p, --path       指定保存文件的路径(若不指定,则默认为该程序当前所在的路径)
  -q, --quality    指定下载视频的清晰度(high为超清,standard为高清,low为标清,不指定则默认为超清)
      --qpdf-bin   指定qpdf的bin文件夹所在的路径(注:该flag无简写形式)
  -r, --replay     指定是否下载直播间快速回放视频
  -s, --series     指定是否下载整个系列的文件
  -v, --version    查看版本号

需要注意的是,对于每个 command 命令,仅有部分 flag 参数是可用且有效的。可以通过ks help [command]来查看某个命令的详细描述及其可用的 flag 参数。

示例

一、登录账户与注销登陆

登录蔻享账户并不是使用流程中的必须操作,但登录蔻享账户后可以下载更高清晰度的视频和下载已购买的付费视频,获取视频的基本信息时还可以获取到更多详细的内容。

1.1 登录蔻享账户

使用下面的命令登录蔻享账户:

ks login [phone number]

其中[phone number]参数为 11 位手机号码。该命令执行后,手机会收到 6 位短信验证码,在命令行中继续输入短信验证码后回车即可登录。登录成功后会在当前路径下生成一个用于保存登录凭证的 Token 隐藏文件,Token 有效期为一周,因此一周内无需再次登录即可保持登录状态。

重复运行该命令会自动更新登陆凭证。登录凭证过期后重新登陆即可。

1.2 注销登录状态

如果想注销登录状态,可以使用这条命令:

ks logout

手动删除程序所在路径下的.token文件与该命令的执行效果相同。

二、查看视频信息

查看视频信息使用ks info [vid]命令。info命令没有 flag 。

执行该命令后会返回指定 vid 的视频的详细信息,包括标题、讲者、单位、日期、时长、体积、类别、系列、分组以及视频简介等。

几点说明:

  • 非登录状态下,“体积”仅展示标清清晰度下的视频大小;登录状态下,“体积”展示最高清晰度下的视频大小。

  • 若“体积”为0MB [未知],则说明该视频是未购买的(或未在购买有效期内的)付费视频,此时 KouShare-dl 无法获取该视频的体积信息。

  • 若“系列”不为空,说明该视频是属于某个系列的视频,比如某精品公开课中的一节课。

您可以试一试下面的例子:

ks info 7304

建议下载视频和课件前使用info命令确认视频的信息是否正确。

三、下载视频

每个蔻享学术视频都有唯一对应的 id,即 vid。 在蔻享学术网站进入某个视频的播放页面后,该页面网址的最后的数字部分即为该视频的 vid。例如,在下面的网址中,7412是该视频的 vid。

https://www.koushare.com/video/videodetail/7412

下载视频使用ks save [vid] <flags>命令。与save对应的 flag 有三个:

简写形式完整形式说明类型默认值
-p--path指定保存视频的路径String当前所在路径
-q--quality指定下载视频的清晰度String超清
-s--series指定是否下载系列视频Bool

多个 flag 可以不分顺序地叠加使用,但Bool类型的 flag 宜放在最后使用。关于命令中 flag 的详细使用语法,可以参考这里的描述

3.1 使用默认参数下载视频

使用save时不加任何 flag ,程序就会使用save的所有 flag 的默认值进行下载。

例如,在登录状态下要默认下载 vid 为7552的视频,可以运行下面这条命令:

  ks save 7552

该命令执行完毕后,程序所在的路径下会出现一个.mp4格式的超清视频文件,这就是下载下来的 vid 为7552的蔻享视频。

save命令的别名是video,因此ks save 7552ks video 7552的功能是相同的。

3.2 下载视频至指定文件夹

若要指定保存视频的位置,可以加上-p参数,并为其指定一个新值(如D:\temp\)以覆盖默认值(当前所在路径),如下所示:

  ks save 7552 -p D:\temp\

这里的-p--path的简写形式,而-p D:\temp\--path=D:\temp\是等价的,因此上一条命令也可以等价地修改为:

ks save 7552 --path=D:\temp\

若指定的文件夹不存在,程序会创建该文件夹以保存视频。若遇到Access is denied的错误提示,则说明权限不足,此时您需要使用更高的权限来运行 KouShare-dl。

3.3 下载某个系列的所有视频

系列下载需要指定-s参数,-s--series参数是Bool型 flag,使用时无需指定具体的值。

您需要知道所要下载的系列视频中任意一个视频的 vid。以“中物院研究生院精品公开课之《高等量子力学》公开课程”系列为例,可以使用下面这条命令下载该系列的所有视频:

ks save 7304 -s

程序会使用该系列的名字创建一个文件夹用以存放下载的视频。7304是该系列第一个视频的 vid,可被替换为该系列任意视频的 vid。

若要同时指定保存视频的位置(如D:\temp\),可以运行该命令:

ks save 7552 -p D:\tmp\ -s

3.4 下载不同清晰度的视频

使用-q--quality参数来指定下载视频的清晰度。该 flag 的值只有high(超清)、standard(高清)和low(标清)三种。示例如下:

ks save 7304 -q high
ks save 7304 -q standard
ks save 7304 --quality=low

需要注意的是:

  • 非登录状态下,-q--quality参数无效。这是因为非登录状态下仅能下载标清视频。
  • 若您指定的该 flag 的值并不在以上三种值之内,程序会判定要下载的清晰度为标清。
  • 登录状态下,若您要下载的视频没有您指定的清晰度,程序会选择次于您指定清晰度的清晰度进行视频的下载。

四、录制直播与下载快速回放

每个蔻享直播间都有唯一对应的 id,即 roomID。 在蔻享学术网站进入某个直播间的页面后,该页面网址的最后的数字部分即为该直播间的房间号。例如,在下面的网址中,676216是该直播间的 roomID。

https://www.koushare.com/lives/room/676216

录制直播使用ks record [roomID] <flags>命令。与record对应的 flag 有三个:

简写形式完整形式说明类型默认值
-@--at开播时间,格式为"2006-01-02 15:04:05"String立即开始录制
-a--autoMerge指定是否自动合并下载的视频片段文件Bool
-p--path指定保存录制视频的路径String当前所在路径
-r--replay指定是否下载直播间快速回放视频Bool

合并下载的.ts视频片段使用ks merge <directory> <flags> 命令。与merge对应的 flag 有一个:

简写形式完整形式说明类型默认值
-n--name指定合并后文件的名字,格式xxx.tsStringrecorded Video File.ts

4.1 对指定直播间进行录制

录制直播时不需要处于登录状态下。假如您想要录制房间号为751111的直播间,可以运行该命令:

  ks record 751111 -a

执行命令后程序会立即开始录制。但如果此时尚未开播,您会收到相关提示(距离开播还有一段时间、正式回放视频已上线等),随后程序会自动退出。该命令用于录制已开始直播的直播间,或者查看回放视频是否上线等信息。

record命令的别名是live,所以 ks record 751111 -a ks live 751111 -a的功能是相同的。

如果直播尚未开始,但您知道准确的开播时间,那么可以用-@参数指定开播时间,如:

  ks record 751111 -@="2021-07-15 18:30:00" -a

运行这条命令后会立即启动倒计时,到指定的开播时间后 KouShare-dl 会以1080p的清晰度自动开始录制直播,直播结束时会自动停止录制。

注:若到指定的开播时间后直播间仍未开播,程序会自动退出。

4.2 合并录制的视频片段

在观看直播时,直播视频是以一个个小文件(即一些时长较短的视频片段)的方式传输给用户的。在上一个示例中,指定-a参数后,KouShare-dl 会自动合并下载的直播视频片段为一个.ts文件(一种视频文件,可被视频播放器直接播放)。

有时直播时间过长,自动合并后得到的文件体积较大,不便于传输,可以在录制直播时不指定-a参数,这样下载下来的直播片段不会自动合并。您可以在传输后使用merge命令手动合并.ts视频片段:

  ks merge <directory> <flags>

其中<directory>参数为存放视频片段文件的文件夹的路径,若为空则默认为程序当前所在路径。

示例如下:

ks merge
ks merge D:\temp\直播录制 -n 课程.ts
ks merge -n output.ts

4.3 下载直播间快速回放视频

示例: 使用ks live 447482 命令得到“快速回放视频已上线”的信息:

$ ks live 447482

直播已结束。快速回放视频已上线,访问 https://www.koushare.com/lives/room/447482 观看快速回放或使用“ks record 447482 --replay”命令下载快速回放视频。

使用ks live 447482 -r ks record 447482 --replay命令即可下载快速回放视频:

$ ks live 447482 -r

开始下载快速回放视频...
2126692489_2083434824_1.ts?start=0 ...
2126692489_2083434824_1.ts?start=1752160 ...
2126692489_2083434824_1.ts?start=3504696 ...
 ...
快速回放视频下载完成。

可使用-p指定保存快速回放视频的路径,如:

ks live 447482 -r -p "C:\Users\lenovo\Desktop"
ks live 447482 -r --path="C:\Users\lenovo\Desktop"

五、下载课件

下载课件使用ks slide [vid] <flags>命令。与slide对应的 flag 有三个:

简写形式完整形式说明类型默认值
-p--path指定保存课件的路径String当前所在路径
--qpdf-bin指定qpdf的bin文件夹所在的路径String不使用qpdf
-s--series指定是否下载整个系列的所有课件Bool

5.1 下载单个课件和系列课件

下载课件时不需要处于登录状态下。假如您想要下载为 vid 为7405的视频关联的课件,可以运行该命令:

ks slide 7405

使用info命令查看 vid 为7405的视频信息,可以发现该视频的“系列”不为空,说明该视频还有其它相关视频。

假如您想下载这个系列视频的所有课件,可以使用-s参数:

ks slide 7405 -s

同样地,7405可以被替换为同系列任意视频的 vid。

5.2 优化 pdf 文件【实验性功能】

该功能当前并不稳定,不推荐使用。

如果想要使用--qpdf-bin标志,需先下载 qpdf包 并进行解压操作,然后在命令行或终端中指定 qpdf 包的 bin 文件夹所在的路径,如:

ks slide 7405 --qpdf-bin=C:\Downloads\qpdf-10.1.0\bin\
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值