Foair / course-crawler

🎓 中国大学MOOC、学堂在线、网易云课堂、好大学在线、爱课程 MOOC 课程下载。
https://mooc.xoy.io
MIT License
774 stars 196 forks source link

下载后木有字幕 #2

Closed forkforlearn closed 6 years ago

forkforlearn commented 6 years ago

感谢老兄放出这个项目,用起来很省心。 但是在使用过程中发现,用在学堂在线的时候,并没有解析字幕的下载地址,不知道是否GITHUUB上这个版本是否是最新版本呀?

Foair commented 6 years ago

这个是最新版本,学堂在线没有实现下载字幕的功能。

现在我已经将学堂在线下载字幕加到我的 TODO 里面了,具体什么时候能够更新我也不知道。

谢谢关注 : )

forkforlearn commented 6 years ago

似乎在get_content中加入

                        srt_file = file_name + '.srt'
                        srt_link = block.find("a", text="下载字幕")
                        if srt_link:
                            print("srt link:", "http://www.xuetangx.com/" + srt_link["href"])
                            #srt_resource = CONNECTION.get("http://www.xuetangx.com/" + srt_link["href"]).text
                            #SRT = open(os.path.join(BASE_DIR, master_name), 'w', encoding='utf-8')
                            #SRT.write(srt_resource)
                            #SRT.close()
                            _temp = "http://www.xuetangx.com/" + srt_link["href"]
                            #在start中加入全局SRT,并打开、关闭
                            SRT.write(_temp + '\n')
                            RENAMER.write('REN "' + _temp + '" "' +  '%s.srt"\n' % master_name)
                        else:
                            print('not found:', master_name)

即可:) 另外,在get_video中加入一个判断(quality10,quality20的)会更稳定,有些视频只有低解析度,没有高清,再次感谢老兄的工作

Foair commented 6 years ago

Thanks ♪(・ω・)ノ

其实我是想找到一个更加通用的获得字幕的方法,有些视频并没有给出下载字幕的按钮,然而还是可以获得字幕的。

比如这个:http://www.xuetangx.com/courses/course-v1:TsinghuaX+90640012X+sp/about

上面这个有两种字幕,暂时还无法都获得 SRT 文件,而后端返回的是 JSON

http://www.xuetangx.com/courses/course-v1:TsinghuaX+90640012X+sp/xblock/block-v1:TsinghuaX+90640012X+sp+type@video+block@8e5cacc04a364047a439bf58d12964fd/handler/transcript/translation/zh

http://www.xuetangx.com/courses/course-v1:TsinghuaX+90640012X+sp/xblock/block-v1:TsinghuaX+90640012X+sp+type@video+block@8e5cacc04a364047a439bf58d12964fd/handler/transcript/translation/en_xuetangx

获得可用的字幕列表:

http://www.xuetangx.com/courses/course-v1:TsinghuaX+90640012X+sp/xblock/block-v1:TsinghuaX+90640012X+sp+type@video+block@8e5cacc04a364047a439bf58d12964fd/handler/transcript/available_translations

仿照其他可以下载字幕的视频,得到如下地址:

http://www.xuetangx.com/courses/course-v1:TsinghuaX+90640012X+sp/xblock/block-v1:TsinghuaX+90640012X+sp+type@video+block@8e5cacc04a364047a439bf58d12964fd/handler/transcript/download

这个是中文的,那么英文的 SRT 文件怎么获得呢?我现在就卡在这里了。

不知道有没有可以选择语言下载字幕的视频,如果有的话,问题就解决了。然后所有有字幕的视频都可以下载字幕了。

不知道你有没有什么发现呢?

Foair commented 6 years ago

哈哈,我找到方法了,我就说怎么突然就下载成英文字幕了。

只要先获取一次 JSON 字幕,下载字幕的地址就会下载相应语言的字幕。

偶然发现,字幕的问题应该可以解决了,等我个两天。

谢谢你啦 ^_^

forkforlearn commented 6 years ago

老兄你太客气了,我基本没帮上啥忙。。。说的我都不好意思啦:)