yliu7949 / koushare-dl Goto Github PK
View Code? Open in Web Editor NEWKouShare-dl 是一个用于从“蔻享学术”视频网站下载视频和课件、录制直播的命令行工具。
License: The Unlicense
KouShare-dl 是一个用于从“蔻享学术”视频网站下载视频和课件、录制直播的命令行工具。
License: The Unlicense
在ks login时失败
提示:登录失败: Post "https://login.koushare.com/api/api-user/sendSms": stopped after 10 redirects
panic: runtime error: slice bounds out of range [-1:]
goroutine 1 [running]:
github.com/yliu7949/KouShare-dl/live.(*Live).getNewTsURLBym3u8(0xc0000e86c0)
github.com/yliu7949/KouShare-dl/live/live.go:276 +0x13e
github.com/yliu7949/KouShare-dl/live.(*Live).recordLive(0xc0000e86c0, 0x1)
github.com/yliu7949/KouShare-dl/live/live.go:251 +0xee
github.com/yliu7949/KouShare-dl/live.(*Live).WaitAndRecordTheLive(0xc0000e86c0, {0x0?, 0x0?}, 0xcb?)
github.com/yliu7949/KouShare-dl/live/live.go:143 +0xbbd
github.com/yliu7949/KouShare-dl/cmd/ks.RecordCmd.func1(0xc000004f00?, {0xc000112180?, 0x2?, 0x2?})
github.com/yliu7949/KouShare-dl/cmd/ks/commands.go:123 +0x172
github.com/spf13/cobra.(*Command).execute(0xc000004f00, {0xc000112160, 0x2, 0x2})
github.com/spf13/[email protected]/command.go:944 +0x847
github.com/spf13/cobra.(*Command).ExecuteC(0xc000004300)
github.com/spf13/[email protected]/command.go:1068 +0x3bd
github.com/spf13/cobra.(*Command).Execute(...)
github.com/spf13/[email protected]/command.go:992
main.main()
./ks.go:34 +0x334
win的这个步骤我知道怎么用(cd C:\Users\lenovo\Downloads
ks version),mac如何输入进入呀
新增 ks clean
命令用以清理指定目录下的所有下载过程中产生的 tmp 临时文件。
--path, -p
标志用于指定要清理的目录。--quiet, -q
标志用于指定是否在清理过程中输出已清理的文件名。
示例:ks clean -p="C:\Users\lenovo\Downloads" -q
。
命令格式为:ks save batch [vid1,vid2,vid3,...]
,例如 ks save batch [2233,2832]
。
batch
是 save
命令的子命令, -p
等 flag 对 batch
命令也生效。
新增加了 --proxy, -P
标志以支持 HTTP/HTTPS/SOCKS5 代理。使用示例:
ks save 35353 -P https://username:[email protected]:port
ks info 35353 --proxy="socks5://localhost:1080"
部分提示文字和进度条数字在各个终端下显示为彩色。使用--nocolor
标志表明不使用彩色输出。
ks info
现在可以显示加密视频的体积信息。
jellyfin的nfo文件的一些介绍参考:https://jellyfin.org/docs/general/server/metadata/nfo/
比如以下信息:
直播的ts文件流的网址有所变动,造成了无法录制的问题。
当查询到直播间已上线快速回放视频或正式录播回放视频时,ks live
命令会给出相关提示。
我的手机号是191开头的,但是输入进去显示手机号码格式不正确,希望解决一下
save
命令新增 -v, --vidPrefix
标志,指定是否使用 vid 作为保存视频文件名的前缀。
以 ks save 2233 -v
命令为例,最终得到的 mp4
文件名为:2233_(Lecture44) Studying Statistical Physics Properties of Soft Matter by Molecular Simulation Methods_标清.mp4,即 vid_视频名_清晰度.mp4
的格式。
在 save batch
命令中也可以使用该标志。
使用ks version
命令可以查询是否发布了 KouShare-dl 的新版本。
使用ks info [roomID]
命令可以查询直播的详细信息,包括标题、直播状态、主办方、开播时间、有无回放、浏览次数、专题以及最新通知等。
我用的是FFBatch 转码的,无法正常转码,有没有好的办法
如:Lecture 1: Defect Calculation in Semiconductors: Concept, Calculation and Control 标题中使用了 :
号
mkdir .\Defect Calculation in Semiconductors: Concept, Calculation and Control_videos\: The directory name is invalid
程序:ks.exe
操作系统:windows
测试终端:powershell
能否加入ks upgrade
,提供windows平台的自动更新功能
在录制直播时出现的报错,随后程序停止了运行,报错信息如下
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x40 pc=0x55c168]
goroutine 1 [running]:
github.com/yliu7949/KouShare-dl/user.MyGetRequest({0xc00023e6c7?, 0xc000025098?}, {0x0, 0x0, 0x0?})
github.com/yliu7949/KouShare-dl/user/user.go:177 +0x5c8
github.com/yliu7949/KouShare-dl/live.(*Live).getNewTsURLBym3u8(0xc0000fa0f0)
github.com/yliu7949/KouShare-dl/live/live.go:207 +0x3a
github.com/yliu7949/KouShare-dl/live.(*Live).recordLive(0xc0000fa0f0, 0x0)
github.com/yliu7949/KouShare-dl/live/live.go:188 +0x45
github.com/yliu7949/KouShare-dl/live.(*Live).WaitAndRecordTheLive(0xc0000fa0f0, {0x0?, 0x0?}, 0xb3?)
github.com/yliu7949/KouShare-dl/live/live.go:96 +0x78b
github.com/yliu7949/KouShare-dl/cmd/ks.RecordCmd.func1(0xc0000f8900?, {0xc000072f70?, 0x1?, 0x1?})
github.com/yliu7949/KouShare-dl/cmd/ks/commands.go:89 +0x137
github.com/spf13/cobra.(*Command).execute(0xc0000f8900, {0xc000072f40, 0x1, 0x1})
github.com/spf13/[email protected]/command.go:920 +0x847
github.com/spf13/cobra.(*Command).ExecuteC(0xc0000f8000)
github.com/spf13/[email protected]/command.go:1040 +0x3bd
github.com/spf13/cobra.(*Command).Execute(...)
github.com/spf13/[email protected]/command.go:968
main.main()
./ks.go:34 +0x31a
随后再次执行ks record
命令,报错误如下
登陆凭证有效。
Error: unknown command "PathtoKS\\ks.exe" for "ks"
Run 'ks --help' for usage.
第三次执行record
命令后成功重新开始录制。
尝试保存回播视频,出现提示:“请求的数据或操作在服务器中不存在!获取视频信息失败。”
ks save 512309
如何处理?
下载某个专题系列里面的多个视频文件时,后续文件的名字会变成前面视频名称加上该视频名称的字符串,例如:AA_超清.mp4、AA_超清BB_超清.mp4、AA_超清BB_超清CC_超清.mp4……
版本:KouShare-dl v0.9.1,windows11系统。
希望下载视频的命名可以利用视频的“报告时间”(与“发布时间”有区别),比如“2023-XX-XX 标题”,或者 “2023-XX-XX 报告人.标题”等等,可以自定义。
在Linux上以默认参数命令(如ks save 31499
或ks record 431726
)在未指定--path
的情况下保存视频和幻灯片时,会在当前目录下生成以.\文件名
命名的视频文件或pdf文件,即变成了隐藏文件。
如果不使用“-@, --at”标志来指定开始录制的时间,例如在 ks record 751111 -a
命令中,程序在未到开播时间时不会直接退出,而是将将根据开播时间启动倒计时功能。在倒计时结束时,程序会自动开始该直播间的录制。
下载视频时显示下载速度。
rt.希望Po主添加个直播回放视频下载功能。
例如 vid 为 21944 的视频,使用 ks info 21944
会显示体积为 0MB
:
可媲美脑神经元的非线性器件——高面积效率极低逻辑晶体管 (vid=21944):
时长:Unknownmin 讲者:周鹏
体积:0MB [标清] 单位:复旦大学
日期:2022-01-14 专题:半语-益言系列讲座
类别:免费视频 分组:“半语-益言”特别直播:2021年“**半导体十大研究进展”候选成果
视频简介:(无)
使用 ks save 21944
下载视频时会 panic:
可媲美脑神经元的非线性器件——高面积效率极低逻辑晶体管 vid=21944 标清
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 100% 0.00MB/0.00MB
rename ./可媲美脑神经元的非线性器件——高面积效率极低逻辑晶体管_标清.tmp ./可媲美脑神经元的非线性器件——高面积效率极低逻辑
晶体管_标清.mp4: The process cannot access the file because it is being used by another process.
panic: runtime error: invalid memory address or nil pointer dereference
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x40 pc=0x12cf59c]
goroutine 1 [running]:
github.com/yliu7949/KouShare-dl/video.(*Video).DownloadSingleVideo.func1()
github.com/yliu7949/KouShare-dl/video/video.go:139 +0x1c
panic({0x131b560, 0x163a090})
runtime/panic.go:884 +0x212
github.com/yliu7949/KouShare-dl/video.(*Video).DownloadSingleVideo(0xc0001846e0, {0x136e0b2, 0x4})
github.com/yliu7949/KouShare-dl/video/video.go:162 +0x1464
github.com/yliu7949/KouShare-dl/cmd/ks.SaveCmd.func1(0xc0001a2600?, {0xc00005e150?, 0x1?, 0x1?})
github.com/yliu7949/KouShare-dl/cmd/ks/commands.go:58 +0x127
github.com/spf13/cobra.(*Command).execute(0xc0001a2600, {0xc00005e120, 0x1, 0x1})
github.com/spf13/[email protected]/command.go:920 +0x847
github.com/spf13/cobra.(*Command).ExecuteC(0xc0001a2000)
github.com/spf13/[email protected]/command.go:1040 +0x3bd
github.com/spf13/cobra.(*Command).Execute(...)
github.com/spf13/[email protected]/command.go:968
main.main()
./ks.go:34 +0x31a
同时生成了一个 0KB
的 tmp
文件。
课件pdf不是依附于视频,而是在一个单独的课程资源页面,这种情况怎么下载课件的pdf?
有些直播间,例如 RoomID 为 283276
的直播间需要密码才能访问。执行 ks info 283276
命令会看到“该直播间需要密码”的提示:
**科学技术大学2023毕业典礼 (roomID=283276):
直播状态:直播已结束 主办单位:**科学技术大学
开播时间:2023-06-25 09:00:00 有无回放:[有回放]
浏览次数:80039 专题:(无)
※该直播间需要密码
最新通知:直播结束。感谢主持人、报告人和各位老师同学的参与,更多内容请关注蔻享学术网站(www.koushare.com)、APP (蔻享学术)、公众号(蔻享学术)。
live 命令支持使用密码录制需要密码的直播间。例如:ks live 283276 --password="123456"
。若密码错误,会得到“直播间密码不正确”的提示。
KouShare-dl 会使用视频的标题作为文件名。当视频标题中包含英文的冒号:
等特殊字符时,会造成创建文件错误,从而无法保存下载的视频。
直播录制之后进行下载(不知道是不是因为只下载了部分的原因,没有等完全下载完毕就ctrl+c
终止了程序,感觉这一点是有必要的,因为有的会议是连着的,但是只想录制某个报告人的视频),最后合并的时候报错如下:
开始合并视频文件...
panic: runtime error: slice bounds out of range [-1:]
goroutine 1 [running]:
github.com/yliu7949/KouShare-dl/live.MergeTsFiles.func1({0x0?, 0xc0003c9740?}, {0x12a0d38, 0xc0003a1340}, {0xc0000695c8?, 0xf8751a?})
github.com/yliu7949/KouShare-dl/live/live.go:309 +0x229
path/filepath.walk({0xc0003c9740, 0x2c}, {0x12a0d38, 0xc0003a1340}, 0xc000069bd0)
path/filepath/path.go:433 +0x123
path/filepath.walk({0xc0003c8030, 0x29}, {0x12a0d38, 0xc00041e070}, 0xc000069bd0)
path/filepath/path.go:457 +0x285
path/filepath.walk({0xc00034c600, 0x20}, {0x12a0d38, 0xc0003a1a40}, 0xc000069bd0)
path/filepath/path.go:457 +0x285
path/filepath.walk({0xc00034d1a0, 0x1b}, {0x12a0d38, 0xc0003c1b20}, 0xc000069bd0)
path/filepath/path.go:457 +0x285
path/filepath.walk({0xc00000f5c0, 0xd}, {0x12a0d38, 0xc00015f110}, 0xc000069bd0)
path/filepath/path.go:457 +0x285
path/filepath.walk({0xc00000f1c0, 0x9}, {0x12a0d38, 0xc00015e1c0}, 0xc000069bd0)
path/filepath/path.go:457 +0x285
path/filepath.walk({0x11edb0b, 0x2}, {0x12a0d38, 0xc00015e000}, 0xc000069bd0)
path/filepath/path.go:457 +0x285
path/filepath.Walk({0x11edb0b, 0x2}, 0xc000107bd0)
path/filepath/path.go:520 +0x6c
github.com/yliu7949/KouShare-dl/live.MergeTsFiles({0x11edb0b, 0x2}, {0xc00000e0d8, 0x8})
github.com/yliu7949/KouShare-dl/live/live.go:305 +0x132
github.com/yliu7949/KouShare-dl/cmd/ks.MergeCmd.func1(0xc00014cc00?, {0xc0000509a0?, 0x2?, 0x2?})
github.com/yliu7949/KouShare-dl/cmd/ks/commands.go:121 +0x116
github.com/spf13/cobra.(*Command).execute(0xc00014cc00, {0xc000050980, 0x2, 0x2})
github.com/spf13/[email protected]/command.go:920 +0x847
github.com/spf13/cobra.(*Command).ExecuteC(0xc00014c000)
github.com/spf13/[email protected]/command.go:1040 +0x3bd
github.com/spf13/cobra.(*Command).Execute(...)
github.com/spf13/[email protected]/command.go:968
main.main()
./ks.go:34 +0x31a
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.