首页
社区
课程
招聘
[原创] 安卓考蟲APP視頻鏈接獲取及批量下載(下) By_kwaiching
发表于: 2020-6-24 12:43 5782

[原创] 安卓考蟲APP視頻鏈接獲取及批量下載(下) By_kwaiching

2020-6-24 12:43
5782

0x3. 進入教室

獲取到課程詳情, 課程列表 關鍵參數是上一步獲取的 "goodsIds": "14400"

 

課程詳情

https://teaching.kaochong.com/teaching-course/app/mycourse/get/coursedetail
    ?courseId=14400
    &androidId=xxx
    &apiVer=2
    &appId=1001
    &ca=%E6%9C%AA%E7%9F%A5%E8%BF%90%E8%90%A5%E5%95%86
    &channel=baidu
    &cl=baidu
    &duid=xxx
    &dv=ONEPLUS%20A5010
    &imei=
    &nt=wifi
    &ov=9
    &rosType=android
    &sh=2046
    &sw=1080
    &token=xxx
    &ver=3.7.1


{
        "errorCode": 0, 
        "errorMsg": "ok", 
        "stime": 1592401068975, 
        "results": {
                "courseBegin": 1582455600000, 
                "courseFinish": 1583668800000, 
                "lessonBegin": 1581930000000, 
                "lessonFinish": 1583668800000, 
                "orderId": "1001602521944", 
                "courseId": 14400, 
                "goodsId": 14400, 
                "ctime": 1582872436000, 
                "expirationDate": 1609430399000, 
                "lessonCount": 24, 
                "learnedCount": 0, 
                "courseText": "", 
                "nextLesson": null, 
                "pic": "https://kc-base.oss-cn-beijing.aliyuncs.com/course/item%3Fid%3D14400/4kwERRTaC28f8JW.png", 
                "qqGroup": "", 
                "archives": 0, 
                "archivesUrl": null, 
                "questions": 0, 
                "questionsUrl": null, 
                "upgradePlus": 0, 
                "upgradePlusUrl": null, 
                "refundable": 0, 
                "teachers": [
                        {
                                "id": 72, 
                                "logo": "https://cdn.bos.kaochong.com/web/59--3593732873201158632.png", 
                                "name": "李良"
                        }, 
                        {
                                "id": 73, 
                                "logo": "https://cdn.bos.kaochong.com/web/48--4758587070974160592.png", 
                                "name": "陈晓燕"
                        }, 
                        {
                                "id": 97, 
                                "logo": "https://cdn.bos.kaochong.com/web/52--4596018699663745174.png", 
                                "name": "曾芸芸"
                        }
                ], 
                "title": "21考研数学新手3周刷题营01期", 
                "type": 2, 
                "subjectTypes": "3", 
                "wsType": 1, 
                "wsTypeText": "考研", 
                "courseProp": 2, 
                "communityInfo": null, 
                "needAddress": 0, 
                "haveServiceCode": 1, 
                "needTask": 0, 
                "courseArrangement": 0, 
                "needPersonTrainer": 0, 
                "displayType": 0, 
                "report": {
                        "taughtRate": 100, 
                        "learnedRate": 0, 
                        "classAvgRate": 77.76
                }, 
                "sortDisplay": ...
                "hasExam": 0
        }
}

直播課程列表:

https://teaching.kaochong.com/teaching-course/app/mycourse/timetable/live
    ?courseId=14400
    &androidId=xxx
    &apiVer=2
    &appId=1001
    &ca=%E6%9C%AA%E7%9F%A5%E8%BF%90%E8%90%A5%E5%95%86
    &channel=baidu
    &cl=baidu
    &duid=xxx
    &dv=ONEPLUS%20A5010
    &imei=
    &nt=wifi
    &ov=9
    &rosType=android
    &sh=2046
    &sw=1080
    &token=xxx
    &ver=3.7.1

回放課程列表:

https://teaching.kaochong.com/teaching-course/app/mycourse/timetable/playback
    ?sortType=1
    &courseId=14400
    &androidId=xxx
    &apiVer=2
    &appId=1001
    &ca=%E6%9C%AA%E7%9F%A5%E8%BF%90%E8%90%A5%E5%95%86
    &channel=baidu
    &cl=baidu
    &duid=xxx
    &dv=ONEPLUS%20A5010
    &imei=
    &nt=wifi
    &ov=9
    &rosType=android
    &sh=2046
    &sw=1080
    &token=xxx
    &ver=3.7.1

{
        "errorCode": 0, 
        "errorMsg": "ok", 
        "stime": 1592401374547, 
        "results": [
                {
                        "name": "默认", 
                        "groupId": -1, 
                        "lessons": [
                                {
                                        "serviceType": null, 
                                        "courseId": 14400, 
                                        "lessonId": 248844,         // 關鍵
                                        "index": 1, 
                                        "lessonType": 1, 
                                        "classify": 0, 
                                        "title": "2月23日直播答疑&总结", 
                                        "teacherName": "李良", 
                                        "teacherLogo": "https://cdn.bos.kaochong.com/web/59--3593732873201158632.png", 
                                        "begin": 1582455600000, 
                                        "finish": 1582459200000, 
                                        "remindLabel": "2020.02.23  19:00-20:00", 
                                        "playStatus": 5, 
                                        "playTime": 1582455060000, 
                                        "learnedStatus": 2, 
                                        "togglePoint": 1, 
                                        "allowComment": 1, 
                                        "commentCount": 17, 
                                        "haveExercise": 0, 
                                        "exercise": null, 
                                        "stageTest": null, 
                                        "report": null, 
                                        "miniProgram": null
                                }, 
                                {
                                        "serviceType": null, 
                                        "courseId": 14400, 
                                        "lessonId": 248845, 
                                        "index": 2, 
                                        "lessonType": 1, 
                                        "classify": 0, 
                                        "title": "3月1日直播答疑&总结", 
                                        "teacherName": "陈晓燕", 
                                        "teacherLogo": "https://cdn.bos.kaochong.com/web/48--4758587070974160592.png", 
                                        "begin": 1583060400000, 
                                        "finish": 1583064000000, 
                                        "remindLabel": "2020.03.01  19:00-20:00", 
                                        "playStatus": 5, 
                                        "playTime": 1583059860000, 
                                        "learnedStatus": 0, 
                                        "togglePoint": 0, 
                                        "allowComment": 1, 
                                        "commentCount": 10, 
                                        "haveExercise": 0, 
                                        "exercise": null, 
                                        "stageTest": null, 
                                        "report": null, 
                                        "miniProgram": null
                                }, 
                                {
                                        "serviceType": null, 
                                        "courseId": 14400, 
                                        "lessonId": 248846, 
                                        "index": 3, 
                                        "lessonType": 1, 
                                        "classify": 0, 
                                        "title": "3月8日直播答疑&总结", 
                                        "teacherName": "曾芸芸", 
                                        "teacherLogo": "https://cdn.bos.kaochong.com/web/52--4596018699663745174.png", 
                                        "begin": 1583665200000, 
                                        "finish": 1583668800000, 
                                        "remindLabel": "2020.03.08  19:00-20:00", 
                                        "playStatus": 5, 
                                        "playTime": 1583664660000, 
                                        "learnedStatus": 0, 
                                        "togglePoint": 0, 
                                        "allowComment": 1, 
                                        "commentCount": 3, 
                                        "haveExercise": 0, 
                                        "exercise": null, 
                                        "stageTest": null, 
                                        "report": null, 
                                        "miniProgram": null
                                }, 
                                {
                                        "serviceType": null, 
                                        "courseId": 14400, 
                                        "lessonId": 250217, 
                                        "index": 4, 
                                        "lessonType": 2, 
                                        "classify": 0, 
                                        "title": "2月17日每日一题", 
                                        "teacherName": "李良", 
                                        "teacherLogo": "https://cdn.bos.kaochong.com/web/59--3593732873201158632.png", 
                                        "begin": 1581930000000, 
                                        "finish": 1581933600000, 
                                        "remindLabel": "建议在 2020.02.17 前完成", 
                                        "playStatus": 6, 
                                        "playTime": 1581868800000, 
                                        "learnedStatus": 2, 
                                        "togglePoint": 0, 
                                        "allowComment": 1, 
                                        "commentCount": 79, 
                                        "haveExercise": 0, 
                                        "exercise": null, 
                                        "stageTest": null, 
                                        "report": null, 
                                        "miniProgram": null
                                }, 
                                {
                                        "serviceType": null, 
                                        "courseId": 14400, 
                                        "lessonId": 250218, 
                                        "index": 5, 
                                        "lessonType": 2, 
                                        "classify": 0, 
                                        "title": "2月18日每日一题", 
                                        "teacherName": "李良", 
                                        "teacherLogo": "https://cdn.bos.kaochong.com/web/59--3593732873201158632.png", 
                                        "begin": 1582016400000, 
                                        "finish": 1582020000000, 
                                        "remindLabel": "建议在 2020.02.18 前完成", 
                                        "playStatus": 6, 
                                        "playTime": 1581955200000, 
                                        "learnedStatus": 0, 
                                        "togglePoint": 0, 
                                        "allowComment": 1, 
                                        "commentCount": 55, 
                                        "haveExercise": 0, 
                                        "exercise": null, 
                                        "stageTest": null, 
                                        "report": null, 
                                        "miniProgram": null
                                }, 
                                {
                                        "serviceType": null, 
                                        "courseId": 14400, 
                                        "lessonId": 250219, 
                                        "index": 6, 
                                        "lessonType": 2, 
                                        "classify": 0, 
                                        "title": "2月19日每日一题", 
                                        "teacherName": "李良", 
                                        "teacherLogo": "https://cdn.bos.kaochong.com/web/59--3593732873201158632.png", 
                                        "begin": 1582102800000, 
                                        "finish": 1582106400000, 
                                        "remindLabel": "建议在 2020.02.19 前完成", 
                                        "playStatus": 6, 
                                        "playTime": 1582041600000, 
                                        "learnedStatus": 0, 
                                        "togglePoint": 0, 
                                        "allowComment": 1, 
                                        "commentCount": 41, 
                                        "haveExercise": 0, 
                                        "exercise": null, 
                                        "stageTest": null, 
                                        "report": null, 
                                        "miniProgram": null
                                }, 
                                {
                                        "serviceType": null, 
                                        "courseId": 14400, 
                                        "lessonId": 250220, 
                                        "index": 7, 
                                        "lessonType": 2, 
                                        "classify": 0, 
                                        "title": "2月20日每日一题", 
                                        "teacherName": "李良", 
                                        "teacherLogo": "https://cdn.bos.kaochong.com/web/59--3593732873201158632.png", 
                                        "begin": 1582189200000, 
                                        "finish": 1582192800000, 
                                        "remindLabel": "建议在 2020.02.20 前完成", 
                                        "playStatus": 6, 
                                        "playTime": 1582128000000, 
                                        "learnedStatus": 0, 
                                        "togglePoint": 0, 
                                        "allowComment": 1, 
                                        "commentCount": 43, 
                                        "haveExercise": 0, 
                                        "exercise": null, 
                                        "stageTest": null, 
                                        "report": null, 
                                        "miniProgram": null
                                }, 
                                {
                                        "serviceType": null, 
                                        "courseId": 14400, 
                                        "lessonId": 250221, 
                                        "index": 8, 
                                        "lessonType": 2, 
                                        "classify": 0, 
                                        "title": "2月21日每日一题", 
                                        "teacherName": "李良", 
                                        "teacherLogo": "https://cdn.bos.kaochong.com/web/59--3593732873201158632.png", 
                                        "begin": 1582275600000, 
                                        "finish": 1582279200000, 
                                        "remindLabel": "建议在 2020.02.21 前完成", 
                                        "playStatus": 6, 
                                        "playTime": 1582214400000, 
                                        "learnedStatus": 0, 
                                        "togglePoint": 0, 
                                        "allowComment": 1, 
                                        "commentCount": 32, 
                                        "haveExercise": 0, 
                                        "exercise": null, 
                                        "stageTest": null, 
                                        "report": null, 
                                        "miniProgram": null
                                }, 
                                {
                                        "serviceType": null, 
                                        "courseId": 14400, 
                                        "lessonId": 250222, 
                                        "index": 9, 
                                        "lessonType": 2, 
                                        "classify": 0, 
                                        "title": "2月22日每日一题", 
                                        "teacherName": "李良", 
                                        "teacherLogo": "https://cdn.bos.kaochong.com/web/59--3593732873201158632.png", 
                                        "begin": 1582275600000, 
                                        "finish": 1582279200000, 
                                        "remindLabel": "建议在 2020.02.21 前完成", 
                                        "playStatus": 6, 
                                        "playTime": 1582214400000, 
                                        "learnedStatus": 0, 
                                        "togglePoint": 0, 
                                        "allowComment": 1, 
                                        "commentCount": 30, 
                                        "haveExercise": 0, 
                                        "exercise": null, 
                                        "stageTest": null, 
                                        "report": null, 
                                        "miniProgram": null
                                }, 
                                {
                                        "serviceType": null, 
                                        "courseId": 14400, 
                                        "lessonId": 250223, 
                                        "index": 10, 
                                        "lessonType": 2, 
                                        "classify": 0, 
                                        "title": "2月23日每日一题", 
                                        "teacherName": "李良", 
                                        "teacherLogo": "https://cdn.bos.kaochong.com/web/59--3593732873201158632.png", 
                                        "begin": 1582448400000, 
                                        "finish": 1582452000000, 
                                        "remindLabel": "建议在 2020.02.23 前完成", 
                                        "playStatus": 6, 
                                        "playTime": 1582387200000, 
                                        "learnedStatus": 0, 
                                        "togglePoint": 0, 
                                        "allowComment": 1, 
                                        "commentCount": 26, 
                                        "haveExercise": 0, 
                                        "exercise": null, 
                                        "stageTest": null, 
                                        "report": null, 
                                        "miniProgram": null
                                }, 
                                {
                                        "serviceType": null, 
                                        "courseId": 14400, 
                                        "lessonId": 250456, 
                                        "index": 11, 
                                        "lessonType": 2, 
                                        "classify": 0, 
                                        "title": "2月24日每日一题", 
                                        "teacherName": "陈晓燕", 
                                        "teacherLogo": "https://cdn.bos.kaochong.com/web/48--4758587070974160592.png", 
                                        "begin": 1582509600000, 
                                        "finish": 1582511400000, 
                                        "remindLabel": "建议在 2020.02.24 前完成", 
                                        "playStatus": 6, 
                                        "playTime": 1582473600000, 
                                        "learnedStatus": 0, 
                                        "togglePoint": 0, 
                                        "allowComment": 1, 
                                        "commentCount": 34, 
                                        "haveExercise": 0, 
                                        "exercise": null, 
                                        "stageTest": null, 
                                        "report": null, 
                                        "miniProgram": null
                                }, 
                                {
                                        "serviceType": null, 
                                        "courseId": 14400, 
                                        "lessonId": 250457, 
                                        "index": 12, 
                                        "lessonType": 2, 
                                        "classify": 0, 
                                        "title": "2月25日每日一题", 
                                        "teacherName": "陈晓燕", 
                                        "teacherLogo": "https://cdn.bos.kaochong.com/web/48--4758587070974160592.png", 
                                        "begin": 1582596000000, 
                                        "finish": 1582597800000, 
                                        "remindLabel": "建议在 2020.02.25 前完成", 
                                        "playStatus": 6, 
                                        "playTime": 1582560000000, 
                                        "learnedStatus": 0, 
                                        "togglePoint": 0, 
                                        "allowComment": 1, 
                                        "commentCount": 23, 
                                        "haveExercise": 0, 
                                        "exercise": null, 
                                        "stageTest": null, 
                                        "report": null, 
                                        "miniProgram": null
                                }, 
                                {
                                        "serviceType": null, 
                                        "courseId": 14400, 
                                        "lessonId": 250458, 
                                        "index": 13, 
                                        "lessonType": 2, 
                                        "classify": 0, 
                                        "title": "2月26日每日一题", 
                                        "teacherName": "陈晓燕", 
                                        "teacherLogo": "https://cdn.bos.kaochong.com/web/48--4758587070974160592.png", 
                                        "begin": 1582693200000, 
                                        "finish": 1582695000000, 
                                        "remindLabel": "建议在 2020.02.26 前完成", 
                                        "playStatus": 6, 
                                        "playTime": 1582646400000, 
                                        "learnedStatus": 0, 
                                        "togglePoint": 0, 
                                        "allowComment": 1, 
                                        "commentCount": 34, 
                                        "haveExercise": 0, 
                                        "exercise": null, 
                                        "stageTest": null, 
                                        "report": null, 
                                        "miniProgram": null
                                }, 
                                {
                                        "serviceType": null, 
                                        "courseId": 14400, 
                                        "lessonId": 253332, 
                                        "index": 14, 
                                        "lessonType": 2, 
                                        "classify": 0, 
                                        "title": "2月28日每日一题", 
                                        "teacherName": "陈晓燕", 
                                        "teacherLogo": "https://cdn.bos.kaochong.com/web/48--4758587070974160592.png", 
                                        "begin": 1582864200000, 
                                        "finish": 1582866000000, 
                                        "remindLabel": "建议在 2020.02.28 前完成", 
                                        "playStatus": 6, 
                                        "playTime": 1582819200000, 
                                        "learnedStatus": 0, 
                                        "togglePoint": 0, 
                                        "allowComment": 1, 
                                        "commentCount": 20, 
                                        "haveExercise": 0, 
                                        "exercise": null, 
                                        "stageTest": null, 
                                        "report": null, 
                                        "miniProgram": null
                                }, 
                                {
                                        "serviceType": null, 
                                        "courseId": 14400, 
                                        "lessonId": 250459, 
                                        "index": 15, 
                                        "lessonType": 2, 
                                        "classify": 0, 
                                        "title": "2月27日每日一题", 
                                        "teacherName": "陈晓燕", 
                                        "teacherLogo": "https://cdn.bos.kaochong.com/web/48--4758587070974160592.png", 
                                        "begin": 1582768800000, 
                                        "finish": 1582770600000, 
                                        "remindLabel": "建议在 2020.02.27 前完成", 
                                        "playStatus": 6, 
                                        "playTime": 1582732800000, 
                                        "learnedStatus": 0, 
                                        "togglePoint": 0, 
                                        "allowComment": 1, 
                                        "commentCount": 22, 
                                        "haveExercise": 0, 
                                        "exercise": null, 
                                        "stageTest": null, 
                                        "report": null, 
                                        "miniProgram": null
                                }, 
                                {
                                        "serviceType": null, 
                                        "courseId": 14400, 
                                        "lessonId": 250461, 
                                        "index": 16, 
                                        "lessonType": 2, 
                                        "classify": 0, 
                                        "title": "2月29日每日一题", 
                                        "teacherName": "陈晓燕", 
                                        "teacherLogo": "https://cdn.bos.kaochong.com/web/48--4758587070974160592.png", 
                                        "begin": 1582941600000, 
                                        "finish": 1582943400000, 
                                        "remindLabel": "建议在 2020.02.29 前完成", 
                                        "playStatus": 6, 
                                        "playTime": 1582905600000, 
                                        "learnedStatus": 0, 
                                        "togglePoint": 0, 
                                        "allowComment": 1, 
                                        "commentCount": 22, 
                                        "haveExercise": 0, 
                                        "exercise": null, 
                                        "stageTest": null, 
                                        "report": null, 
                                        "miniProgram": null
                                }, 
                                {
                                        "serviceType": null, 
                                        "courseId": 14400, 
                                        "lessonId": 250462, 
                                        "index": 17, 
                                        "lessonType": 2, 
                                        "classify": 0, 
                                        "title": "3月1日每日一题", 
                                        "teacherName": "陈晓燕", 
                                        "teacherLogo": "https://cdn.bos.kaochong.com/web/48--4758587070974160592.png", 
                                        "begin": 1583028000000, 
                                        "finish": 1583029800000, 
                                        "remindLabel": "建议在 2020.03.01 前完成", 
                                        "playStatus": 6, 
                                        "playTime": 1582992000000, 
                                        "learnedStatus": 0, 
                                        "togglePoint": 0, 
                                        "allowComment": 1, 
                                        "commentCount": 25, 
                                        "haveExercise": 0, 
                                        "exercise": null, 
                                        "stageTest": null, 
                                        "report": null, 
                                        "miniProgram": null
                                }, 
                                {
                                        "serviceType": null, 
                                        "courseId": 14400, 
                                        "lessonId": 253630, 
                                        "index": 18, 
                                        "lessonType": 2, 
                                        "classify": 0, 
                                        "title": "3月2日每日一题", 
                                        "teacherName": "曾芸芸", 
                                        "teacherLogo": "https://cdn.bos.kaochong.com/web/52--4596018699663745174.png", 
                                        "begin": 1583139600000, 
                                        "finish": 1583141400000, 
                                        "remindLabel": "建议在 2020.03.02 前完成", 
                                        "playStatus": 6, 
                                        "playTime": 1583078400000, 
                                        "learnedStatus": 0, 
                                        "togglePoint": 0, 
                                        "allowComment": 1, 
                                        "commentCount": 18, 
                                        "haveExercise": 0, 
                                        "exercise": null, 
                                        "stageTest": null, 
                                        "report": null, 
                                        "miniProgram": null
                                }, 
                                {
                                        "serviceType": null, 
                                        "courseId": 14400, 
                                        "lessonId": 253631, 
                                        "index": 19, 
                                        "lessonType": 2, 
                                        "classify": 0, 
                                        "title": "3月3日每日一题", 
                                        "teacherName": "曾芸芸", 
                                        "teacherLogo": "https://cdn.bos.kaochong.com/web/52--4596018699663745174.png", 
                                        "begin": 1583226000000, 
                                        "finish": 1583227800000, 
                                        "remindLabel": "建议在 2020.03.03 前完成", 
                                        "playStatus": 6, 
                                        "playTime": 1583164800000, 
                                        "learnedStatus": 0, 
                                        "togglePoint": 0, 
                                        "allowComment": 1, 
                                        "commentCount": 14, 
                                        "haveExercise": 0, 
                                        "exercise": null, 
                                        "stageTest": null, 
                                        "report": null, 
                                        "miniProgram": null
                                }, 
                                {
                                        "serviceType": null, 
                                        "courseId": 14400, 
                                        "lessonId": 253632, 
                                        "index": 20, 
                                        "lessonType": 2, 
                                        "classify": 0, 
                                        "title": "3月4日每日一题", 
                                        "teacherName": "曾芸芸", 
                                        "teacherLogo": "https://cdn.bos.kaochong.com/web/52--4596018699663745174.png", 
                                        "begin": 1583312400000, 
                                        "finish": 1583314200000, 
                                        "remindLabel": "建议在 2020.03.04 前完成", 
                                        "playStatus": 6, 
                                        "playTime": 1583251200000, 
                                        "learnedStatus": 0, 
                                        "togglePoint": 0, 
                                        "allowComment": 1, 
                                        "commentCount": 22, 
                                        "haveExercise": 0, 
                                        "exercise": null, 
                                        "stageTest": null, 
                                        "report": null, 
                                        "miniProgram": null
                                }, 
                                {
                                        "serviceType": null, 
                                        "courseId": 14400, 
                                        "lessonId": 253633, 
                                        "index": 21, 
                                        "lessonType": 2, 
                                        "classify": 0, 
                                        "title": "3月5日每日一题", 
                                        "teacherName": "曾芸芸", 
                                        "teacherLogo": "https://cdn.bos.kaochong.com/web/52--4596018699663745174.png", 
                                        "begin": 1583398800000, 
                                        "finish": 1583400600000, 
                                        "remindLabel": "建议在 2020.03.05 前完成", 
                                        "playStatus": 6, 
                                        "playTime": 1583337600000, 
                                        "learnedStatus": 0, 
                                        "togglePoint": 0, 
                                        "allowComment": 1, 
                                        "commentCount": 16, 
                                        "haveExercise": 0, 
                                        "exercise": null, 
                                        "stageTest": null, 
                                        "report": null, 
                                        "miniProgram": null
                                }, 
                                {
                                        "serviceType": null, 
                                        "courseId": 14400, 
                                        "lessonId": 253634, 
                                        "index": 22, 
                                        "lessonType": 2, 
                                        "classify": 0, 
                                        "title": "3月6日每日一题", 
                                        "teacherName": "曾芸芸", 
                                        "teacherLogo": "https://cdn.bos.kaochong.com/web/52--4596018699663745174.png", 
                                        "begin": 1583485200000, 
                                        "finish": 1583487000000, 
                                        "remindLabel": "建议在 2020.03.06 前完成", 
                                        "playStatus": 6, 
                                        "playTime": 1583424000000, 
                                        "learnedStatus": 0, 
                                        "togglePoint": 0, 
                                        "allowComment": 1, 
                                        "commentCount": 13, 
                                        "haveExercise": 0, 
                                        "exercise": null, 
                                        "stageTest": null, 
                                        "report": null, 
                                        "miniProgram": null
                                }, 
                                {
                                        "serviceType": null, 
                                        "courseId": 14400, 
                                        "lessonId": 253635, 
                                        "index": 23, 
                                        "lessonType": 2, 
                                        "classify": 0, 
                                        "title": "3月7日每日一题", 
                                        "teacherName": "曾芸芸", 
                                        "teacherLogo": "https://cdn.bos.kaochong.com/web/52--4596018699663745174.png", 
                                        "begin": 1583571600000, 
                                        "finish": 1583573400000, 
                                        "remindLabel": "建议在 2020.03.07 前完成", 
                                        "playStatus": 6, 
                                        "playTime": 1583510400000, 
                                        "learnedStatus": 0, 
                                        "togglePoint": 0, 
                                        "allowComment": 1, 
                                        "commentCount": 14, 
                                        "haveExercise": 0, 
                                        "exercise": null, 
                                        "stageTest": null, 
                                        "report": null, 
                                        "miniProgram": null
                                }, 
                                {
                                        "serviceType": null, 
                                        "courseId": 14400, 
                                        "lessonId": 253636, 
                                        "index": 24, 
                                        "lessonType": 2, 
                                        "classify": 0, 
                                        "title": "3月8日每日一题", 
                                        "teacherName": "曾芸芸", 
                                        "teacherLogo": "https://cdn.bos.kaochong.com/web/52--4596018699663745174.png", 
                                        "begin": 1583658000000, 
                                        "finish": 1583659800000, 
                                        "remindLabel": "建议在 2020.03.08 前完成", 
                                        "playStatus": 6, 
                                        "playTime": 1583596800000, 
                                        "learnedStatus": 0, 
                                        "togglePoint": 0, 
                                        "allowComment": 1, 
                                        "commentCount": 12, 
                                        "haveExercise": 0, 
                                        "exercise": null, 
                                        "stageTest": null, 
                                        "report": null, 
                                        "miniProgram": null
                                }
                        ]
                }
        ]
}

定位代碼

/* renamed from: com.xuanke.kaochong.lesson.purchased.b.a */
public final class PurchasedRepository {


    @NotNull
    /* renamed from: b */
    public final LiveData<DataWrap<List<QMUISection<PlayBackEntity, PurchasedEntity>>>> mo48832b(@NotNull Map<String, String> map) {
        C10434e0.m48756f(map, "params");
        C3047z<BaseApi<ArrayList<PlayBackEntity>>> e = KcNet.m16394d().mo43024e(map);
        KCSuperRetrofit.C6862a aVar = KCSuperRetrofit.f25847b;
        C10434e0.m48731a((Object) e, "observable");
        aVar.mo42930a(e, new C8239f(this));        // 回放列表
        // C8239f 回調
        return this.f29712e;
    }


    /* renamed from: com.xuanke.kaochong.lesson.purchased.b.a$f */
    /* compiled from: PurchasedRepository.kt */
    public static final class C8239f implements C6893p<ArrayList<PlayBackEntity>> {

        /* renamed from: a */
        final /* synthetic */ PurchasedRepository f29718a;

        C8239f(PurchasedRepository aVar) {
            this.f29718a = aVar;
        }

        /* renamed from: a */
        public void onSuccess(@Nullable ArrayList<PlayBackEntity> arrayList) {
            DataWrap bVar;
            if (arrayList != null) {
                MutableLiveData d = this.f29718a.f29712e;
                if (!arrayList.isEmpty()) {
                    bVar = DataWrap.f15077d.mo28227c(this.f29718a.m39447a(arrayList));
                } else {
                    bVar = DataWrap.f15077d.mo28226b(this.f29718a.m39447a(arrayList));
                }
                d.mo6430b(bVar);
                return;
            }
            m39474a();
        }

        public void onFail(int i, @Nullable String str) {
            m39474a();
        }

        /* renamed from: a */
        private final void m39474a() {
            this.f29718a.f29712e.mo6430b(DataWrap.C3777a.m20279a(DataWrap.f15077d, (Object) null, (Throwable) null, 3, (Object) null));
        }
    }


    @NotNull
    /* renamed from: a */
    public final LiveData<DataWrap<LessonInfoEntity>> mo48827a(@NotNull String str) {
        C10434e0.m48756f(str, "courseId");

        C3047z<BaseApi<LessonInfoEntity>> z = KcNet.m16394d().mo43083z(str);

        KCSuperRetrofit.C6862a aVar = KCSuperRetrofit.f25847b;

        C10434e0.m48731a((Object) z, "observable");
        aVar.mo42930a(z, new C8235b(this));        // 課程詳情
        //C8235b 回調
        return this.f29708a;
    }

    /* renamed from: com.xuanke.kaochong.lesson.purchased.b.a$b */
    /* compiled from: PurchasedRepository.kt */
    public static final class C8235b implements C6893p<LessonInfoEntity> {

        /* renamed from: a */
        final /* synthetic */ PurchasedRepository f29714a;

        C8235b(PurchasedRepository aVar) {
            this.f29714a = aVar;
        }

        /* renamed from: a */
        public void onSuccess(@Nullable LessonInfoEntity lessonInfoEntity) {
            if (lessonInfoEntity != null) {
                this.f29714a.f29708a.mo6430b(DataWrap.f15077d.mo28227c(lessonInfoEntity));
            } else {
                m39467a();
            }
        }

        public void onFail(int i, @Nullable String str) {
            m39467a();
        }

        /* renamed from: a */
        private final void m39467a() {
            this.f29714a.f29708a.mo6430b(DataWrap.C3777a.m20279a(DataWrap.f15077d, (Object) null, (Throwable) null, 3, (Object) null));
        }
    }
}

0x04. 開始聽課

Room ID 請求, 關鍵參數是上一步獲取的 "lessonId": 248844

 

直播類型檢查:

https://mobile.kaochong.com/api/mycourse/checkLiveType
    ?lessonId=248844
    &androidId=xxx
    &apiVer=3
    &appId=1001
    &ca=%E6%9C%AA%E7%9F%A5%E8%BF%90%E8%90%A5%E5%95%86
    &channel=baidu
    &cl=baidu
    &duid=xxx
    &dv=ONEPLUS%20A5010
    &imei=
    &nt=wifi
    &ov=9
    &rosType=android
    &sh=2046
    &sw=1080
    &token=xxx
    &ver=3.7.1

{
        "errorCode": 0, 
        "errorMsg": "ok", 
        "stime": 1592401927509, 
        "results": {
                "liveType": 1,         // 類型
                "roomId": "NB158107182433609316935330322386",         // 關鍵
                "klive": {
                        "ver": 1, 
                        "ts": 1592401927, 
                        "sign": "96d1c088c0a0cc3204b8e18f5df6c6a7677c266c3b862595640efceef5ccd207"
                }, 
                "videoRecordInfo": null, 
                "needShowShareButton": 0, 
                "backgroundPlay": true, 
                "allowDownLoad": true
        }
}

課程詳情

https://teaching.kaochong.com/teaching-live/app/lesson/detail
    ?lessonId=248844
    &androidId=xxx
    &apiVer=2
    &appId=1001
    &ca=%E6%9C%AA%E7%9F%A5%E8%BF%90%E8%90%A5%E5%95%86
    &channel=baidu
    &cl=baidu
    &duid=xxx
    &dv=ONEPLUS%20A5010
    &imei=
    &nt=wifi
    &ov=9
    &rosType=android
    &sh=2046
    &sw=1080
    &token=xxx
    &ver=3.7.1

{
        "errorCode": 0, 
        "errorMsg": "ok", 
        "stime": 1592402148710, 
        "results": {
                "courseId": 14400, 
                "title": "21考研数学新手3周刷题营01期", 
                "questions": 0, 
                "coursePlus": 0, 
                "lessonVO": {
                        "courseId": 14400, 
                        "id": 248844, 
                        "begin": 1582455600000, 
                        "finish": 1582459200000, 
                        "title": "2月23日直播答疑&总结", 
                        "lessonTypeId": 1, 
                        "subClassId": 0, 
                        "subClassName": ""
                }, 
                "lessonRecordPop": 0, 
                "hasNps": 0
        }
}

0x05. 至此, 除了關鍵課程id, 其餘請求參數都是一樣的

搜尋相關信息可定位生成參數:

/* renamed from: com.xuanke.kaochong.common.constant.b */
/* compiled from: Constants */
public class C6821b {

    /* renamed from: t */
    public static final String f25286t = "rosType";

    /* renamed from: u */
    public static final String f25287u = "nt";

    /* renamed from: p */
    public static final String f25282p = "appId";


    /* renamed from: s */
    public static final String f25285s = "duid";    // GetConfigModel.m16372b()

}

請求參數:

/* renamed from: com.xuanke.common.g.c */
/* compiled from: Env */
public class C6418c {

    /* renamed from: a */
    public static Map<String, String> m32600a() {        // 請求參數Map生成
        HashMap hashMap;
        synchronized (f24212a) {
            if (f24212a.isEmpty()) {
                m32603c(KcApplicationDelegate.f13327e);
            }
            if (!f24212a.containsKey(C6821b.f25285s)) {
                String b = GetConfigModel.m16372b();
                if (!TextUtils.isEmpty(b)) {
                    f24212a.put(C6821b.f25285s, b);
                }
            }
            hashMap = new HashMap(f24212a);
        }
        String h = Global.m16299h();
        if (!TextUtils.isEmpty(h)) {
            hashMap.put("token", h);
        }
        return hashMap;
    }


    /* renamed from: c */
    private static void m32603c(Context context) {
        f24212a.put("ver", C6713c.f24980f.replace("release", ""));
        f24212a.put("dv", Build.MODEL);
        f24212a.put("ov", Build.VERSION.RELEASE);
        f24212a.put("imei", m32601b(context));
        f24212a.put("androidId", m32599a(context));
        f24212a.put(C6821b.f25286t, "android");
        f24212a.put(C6821b.f25287u, C6421f.m32633a(context));
        f24212a.put(C6821b.f25282p, C6713c.f24983i);
        m32602b();
        m32605e(context);
        m32604d(context);
    }
}

通過hook得到請求參數:

        XposedHelpers.findAndHookMethod(mEnvClass, "a", object : XC_MethodHook() {
            @Throws(Throwable::class)
            override fun afterHookedMethod(methodHookParam: MethodHookParam?) {
                val mapObj = methodHookParam!!.result
                //XposedBridge.log("Map_普通: $mapObj")
                if (mapObj != null) {
                    val map = mapObj as Map<String, String>
                    if (map.size > 0) {
                        map.forEach {
                            XposedBridge.log("MaP: ${it.key} => ${it.value}")
                            reqMap[it.key] = it.value
                        }
                    }
                }
            }
        })

0x06. 播放鏈接請求

關鍵參數是上一步獲取的 "roomId": "NB158107182433609316935330322386"

https://live.kaochong.com/api/room/playback
    ?role=2
    &device=3
    &roomId=NB158107182433609316935330322386
    &apiVer=2

{
        "requestId": 1251971396, 
        "stime": 1592402393028, 
        "results": {
                "metaPrefix": [
                        "https://klcs11.kaochong.com/media/NB158107182433609316935330322386_pb", 
                        "https://klcs01.kaochong.com/media/NB158107182433609316935330322386_pb"
                ], 
                "metaMd5": "c2c00254753db6c748bd6d3d904ecfe2", 
                "dataSize": 145565390, 
                "m3u8": "hls/NB158107182433609316935330322386_playback_1582461830972970908.m3u8", 
                "metaFile": "NB158107182433609316935330322386_c2c00254753db6c748bd6d3d904ecfe2.kpm"
        }
}

得到鏈接: "m3u8": "hls/NB158107182433609316935330322386_playback_1582461830972970908.m3u8"

0x7. 總結:

1. 獲取個人訂單列表, 得到: orderId
2. 通過orderId, 得到訂單詳情, 課程ID: goodsIds
3. 通過課程ID, 得到課程詳情, 課程列表ID: lessonId
4. 通過lessonId, 得到RoomID
5. 通過RoomId, 得到播放鏈接

實現批量下載, 關鍵在於lessonId列表獲取->RoomID->鏈接

0x08. Hook lessonId列表:

        // 課程信息
        XposedHelpers.findAndHookMethod(
            mLessonInfoClass,
            "onSuccess",
            Object::class.java,
            object : XC_MethodHook() {
                @Throws(Throwable::class)
                override fun afterHookedMethod(methodHookParam: MethodHookParam?) {
                    val mLessonInfoEntity = methodHookParam!!.args[0]
                    if (mLessonInfoEntity != null) {
                        // goodsId courseId
                        courseId = XposedHelpers.callMethod(mLessonInfoEntity, "component5").toString()
                        courseName = XposedHelpers.callMethod(mLessonInfoEntity, "getTitle").toString()
                    }
                }
            })

        // 課程列表
        XposedHelpers.findAndHookMethod(
            mPlayBackClass,
            "onSuccess",
            Object::class.java,
            object : XC_MethodHook() {
                @Throws(Throwable::class)
                override fun afterHookedMethod(methodHookParam: MethodHookParam?) {
                    val pbeObj = methodHookParam!!.args[0]
                    if (pbeObj != null) {
                        val pbeList = pbeObj as ArrayList<*>
                        if (pbeList.size > 0) {
                            courseInfo.courseName = courseName
                            courseInfo.lessons.clear()
                            pbeList.forEach { mPlayBackEntity ->
                                val lessonsObj = XposedHelpers.callMethod(mPlayBackEntity, "component3")
                                if (lessonsObj != null) {
                                    val lessonsList = lessonsObj as List<*>
                                    if (lessonsList.isNotEmpty()) {

                                        XposedBridge.log("|課程列表:| Index -> 列表ID -> 教師 -> 文件名")

                                        lessonsList.forEach { mPurchasedEntity ->

                                            val index = XposedHelpers.callMethod(mPurchasedEntity, "component9")
                                            val lessonId = XposedHelpers.callMethod(mPurchasedEntity, "getLessonId").toString()
                                            val teacherName = XposedHelpers.callMethod(mPurchasedEntity, "getTeacherName")
                                            val lessonName = XposedHelpers.callMethod(mPurchasedEntity, "getTitle").toString().replace("&", "and")
                                            XposedBridge.log("|$courseName|$index|$lessonName|$teacherName|$lessonId")

                                            // 信息保存
                                            val lesson: CourseInfo.Lesson = CourseInfo.Lesson()
                                            lesson.lessonName = lessonName
                                            lesson.lessonId = lessonId
                                            lesson.index = index.toString()
                                            courseInfo.lessons.add(lesson)

                                        }
                                    }
                                }
                            }

                        }
                    }
                }
            })

打印結果:

2020-06-18 22:21:50.064 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|1|2月23日直播答疑and总结|李良|248844
2020-06-18 22:21:50.065 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|2|3月1日直播答疑and总结|陈晓燕|248845
2020-06-18 22:21:50.066 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|3|3月8日直播答疑and总结|曾芸芸|248846
2020-06-18 22:21:50.066 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|4|2月17日每日一题|李良|250217
2020-06-18 22:21:50.066 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|5|2月18日每日一题|李良|250218
2020-06-18 22:21:50.067 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|6|2月19日每日一题|李良|250219
2020-06-18 22:21:50.068 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|7|2月20日每日一题|李良|250220
2020-06-18 22:21:50.068 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|8|2月21日每日一题|李良|250221
2020-06-18 22:21:50.068 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|9|2月22日每日一题|李良|250222
2020-06-18 22:21:50.069 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|10|2月23日每日一题|李良|250223
2020-06-18 22:21:50.069 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|11|2月24日每日一题|陈晓燕|250456
2020-06-18 22:21:50.070 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|12|2月25日每日一题|陈晓燕|250457
2020-06-18 22:21:50.070 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|13|2月26日每日一题|陈晓燕|250458
2020-06-18 22:21:50.071 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|14|2月28日每日一题|陈晓燕|253332
2020-06-18 22:21:50.071 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|15|2月27日每日一题|陈晓燕|250459
2020-06-18 22:21:50.072 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|16|2月29日每日一题|陈晓燕|250461
2020-06-18 22:21:50.072 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|17|3月1日每日一题|陈晓燕|250462
2020-06-18 22:21:50.073 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|18|3月2日每日一题|曾芸芸|253630
2020-06-18 22:21:50.073 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|19|3月3日每日一题|曾芸芸|253631
2020-06-18 22:21:50.074 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|20|3月4日每日一题|曾芸芸|253632
2020-06-18 22:21:50.075 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|21|3月5日每日一题|曾芸芸|253633
2020-06-18 22:21:50.075 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|22|3月6日每日一题|曾芸芸|253634
2020-06-18 22:21:50.075 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|23|3月7日每日一题|曾芸芸|253635
2020-06-18 22:21:50.076 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|24|3月8日每日一题|曾芸芸|253636

0x09. 測試RoomID獲取:

package kc.kwaiching.hook

import okhttp3.OkHttpClient
import okhttp3.Request
import kc.kwaiching.kaochong.CourseInfo
import kc.kwaiching.utils.StringUtils
import java.net.URLEncoder


fun main() {

    val courseInfo = CourseInfo()

    val combi = """2020-06-18 22:21:50.064 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|1|2月23日直播答疑and总结|李良|248844
2020-06-18 22:21:50.065 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|2|3月1日直播答疑and总结|陈晓燕|248845
2020-06-18 22:21:50.066 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|3|3月8日直播答疑and总结|曾芸芸|248846
2020-06-18 22:21:50.066 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|4|2月17日每日一题|李良|250217
2020-06-18 22:21:50.066 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|5|2月18日每日一题|李良|250218
2020-06-18 22:21:50.067 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|6|2月19日每日一题|李良|250219
2020-06-18 22:21:50.068 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|7|2月20日每日一题|李良|250220
2020-06-18 22:21:50.068 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|8|2月21日每日一题|李良|250221
2020-06-18 22:21:50.068 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|9|2月22日每日一题|李良|250222
2020-06-18 22:21:50.069 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|10|2月23日每日一题|李良|250223
2020-06-18 22:21:50.069 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|11|2月24日每日一题|陈晓燕|250456
2020-06-18 22:21:50.070 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|12|2月25日每日一题|陈晓燕|250457
2020-06-18 22:21:50.070 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|13|2月26日每日一题|陈晓燕|250458
2020-06-18 22:21:50.071 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|14|2月28日每日一题|陈晓燕|253332
2020-06-18 22:21:50.071 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|15|2月27日每日一题|陈晓燕|250459
2020-06-18 22:21:50.072 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|16|2月29日每日一题|陈晓燕|250461
2020-06-18 22:21:50.072 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|17|3月1日每日一题|陈晓燕|250462
2020-06-18 22:21:50.073 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|18|3月2日每日一题|曾芸芸|253630
2020-06-18 22:21:50.073 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|19|3月3日每日一题|曾芸芸|253631
2020-06-18 22:21:50.074 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|20|3月4日每日一题|曾芸芸|253632
2020-06-18 22:21:50.075 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|21|3月5日每日一题|曾芸芸|253633
2020-06-18 22:21:50.075 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|22|3月6日每日一题|曾芸芸|253634
2020-06-18 22:21:50.075 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|23|3月7日每日一题|曾芸芸|253635
2020-06-18 22:21:50.076 4606-4606/com.xuanke.kaochong I/EdXposed-Bridge: |21考研数学新手3周刷题营01期|24|3月8日每日一题|曾芸芸|253636"""

    val arr = combi.split("\n")
    arr.forEach {
        //|$courseName|$index|$lessonName|$teacherName|$lessonId"
        val split2 = it.split("|")

        val lesson: CourseInfo.Lesson = CourseInfo.Lesson()
        courseInfo.courseName = split2[1]
        lesson.index = split2[2]
        lesson.lessonName = split2[3]
        lesson.teacherName = split2[4]
        lesson.lessonId = split2[5]

        // 網絡請求
        var url = "https://mobile.kaochong.com/api/mycourse/checkLiveType" + "?lessonId=${lesson.lessonId}"
        val map: MutableMap<String, String?> = HashMap()
        map["androidId"] = "xxx"
        map["apiVer"] = "2"
        map["appId"] = "1001"
        map["ca"] = URLEncoder.encode("未知运营商")
        map["channel"] = "baidu"
        map["cl"] = "baidu"
        map["duid"] = "xxx"
        map["dv"] = URLEncoder.encode("GM1910")    //一加7Pro
        map["imei"] = ""
        map["nt"] = "wifi"
        map["ov"] = "10"
        map["rosType"] = "android"
        map["sh"] = "2948"
        map["sw"] = "1440"
        map["token"] = "xxx"
        map["ver"] = "3.7.1"

        map.forEach {
            url = url + "&" + it.key + "=" + it.value
        }

        //println("網址: $url")

        val mHttpClient = OkHttpClient()
        val request: Request = Request.Builder().url(url).build()
        val json = mHttpClient.newCall(request).execute().body()!!.string()
        //println(json)
        val roomId = StringUtils.getTextCenter(json, "roomId\":\"", "\"")

        println("|${courseInfo.courseName}|${lesson.index}|${lesson.lessonName}|${lesson.teacherName}|$roomId")
    }
}

打印結果:

|21考研数学新手3周刷题营01期|1|2月23日直播答疑and总结|李良|NB158107182433609316935330322386
|21考研数学新手3周刷题营01期|2|3月1日直播答疑and总结|陈晓燕|NB158107184894020532326730322387
|21考研数学新手3周刷题营01期|3|3月8日直播答疑and总结|曾芸芸|NB158107188249817326059820322388
|21考研数学新手3周刷题营01期|4|2月17日每日一题|李良|NB158053799881212540635490322201
|21考研数学新手3周刷题营01期|5|2月18日每日一题|李良|NB158053802682704037675120217379
|21考研数学新手3周刷题营01期|6|2月19日每日一题|李良|NB158053805515521446560550217380
|21考研数学新手3周刷题营01期|7|2月20日每日一题|李良|NB158053808341204730615580217381
|21考研数学新手3周刷题营01期|8|2月21日每日一题|李良|NB158053811201105424828820322202
|21考研数学新手3周刷题营01期|9|2月22日每日一题|李良|NB158053814150507642610880322203
|21考研数学新手3周刷题营01期|10|2月23日每日一题|李良|NB158053846881210853689790217382
|21考研数学新手3周刷题营01期|11|2月24日每日一题|陈晓燕|NB158080153991312977299810217424
|21考研数学新手3周刷题营01期|12|2月25日每日一题|陈晓燕|NB158080157320807755680420322240
|21考研数学新手3周刷题营01期|13|2月26日每日一题|陈晓燕|NB158080160873609865633870217425
|21考研数学新手3周刷题营01期|14|2月28日每日一题|陈晓燕|NB158286260235009503001650591747
|21考研数学新手3周刷题营01期|15|2月27日每日一题|陈晓燕|NB158080167019005788157050322241
|21考研数学新手3周刷题营01期|16|2月29日每日一题|陈晓燕|NB158080172415100646307320322242
|21考研数学新手3周刷题营01期|17|3月1日每日一题|陈晓燕|NB158080175071507149293500322243
|21考研数学新手3周刷题营01期|18|3月2日每日一题|曾芸芸|NB158190993722408852135280354749
|21考研数学新手3周刷题营01期|19|3月3日每日一题|曾芸芸|NB158190996781911481390390354750
|21考研数学新手3周刷题营01期|20|3月4日每日一题|曾芸芸|NB158191000225604672797370022739
|21考研数学新手3周刷题营01期|21|3月5日每日一题|曾芸芸|NB158191005860701731736820354751
|21考研数学新手3周刷题营01期|22|3月6日每日一题|曾芸芸|NB158191009035808291512270022740
|21考研数学新手3周刷题营01期|23|3月7日每日一题|曾芸芸|NB158191012337102577107230354752
|21考研数学新手3周刷题营01期|24|3月8日每日一题|曾芸芸|NB158191015381108732245240354753

0x0A. 測試視頻鏈接獲取:

package kc.kwaiching.hook

import okhttp3.OkHttpClient
import okhttp3.Request
import kc.kwaiching.kaochong.CourseInfo
import kc.kwaiching.utils.StringUtils


fun main() {

    val courseInfo = CourseInfo()

    val combi = """|21考研数学新手3周刷题营01期|1|2月23日直播答疑and总结|李良|NB158107182433609316935330322386
|21考研数学新手3周刷题营01期|2|3月1日直播答疑and总结|陈晓燕|NB158107184894020532326730322387
|21考研数学新手3周刷题营01期|3|3月8日直播答疑and总结|曾芸芸|NB158107188249817326059820322388
|21考研数学新手3周刷题营01期|4|2月17日每日一题|李良|NB158053799881212540635490322201
|21考研数学新手3周刷题营01期|5|2月18日每日一题|李良|NB158053802682704037675120217379
|21考研数学新手3周刷题营01期|6|2月19日每日一题|李良|NB158053805515521446560550217380
|21考研数学新手3周刷题营01期|7|2月20日每日一题|李良|NB158053808341204730615580217381
|21考研数学新手3周刷题营01期|8|2月21日每日一题|李良|NB158053811201105424828820322202
|21考研数学新手3周刷题营01期|9|2月22日每日一题|李良|NB158053814150507642610880322203
|21考研数学新手3周刷题营01期|10|2月23日每日一题|李良|NB158053846881210853689790217382
|21考研数学新手3周刷题营01期|11|2月24日每日一题|陈晓燕|NB158080153991312977299810217424
|21考研数学新手3周刷题营01期|12|2月25日每日一题|陈晓燕|NB158080157320807755680420322240
|21考研数学新手3周刷题营01期|13|2月26日每日一题|陈晓燕|NB158080160873609865633870217425
|21考研数学新手3周刷题营01期|14|2月28日每日一题|陈晓燕|NB158286260235009503001650591747
|21考研数学新手3周刷题营01期|15|2月27日每日一题|陈晓燕|NB158080167019005788157050322241
|21考研数学新手3周刷题营01期|16|2月29日每日一题|陈晓燕|NB158080172415100646307320322242
|21考研数学新手3周刷题营01期|17|3月1日每日一题|陈晓燕|NB158080175071507149293500322243
|21考研数学新手3周刷题营01期|18|3月2日每日一题|曾芸芸|NB158190993722408852135280354749
|21考研数学新手3周刷题营01期|19|3月3日每日一题|曾芸芸|NB158190996781911481390390354750
|21考研数学新手3周刷题营01期|20|3月4日每日一题|曾芸芸|NB158191000225604672797370022739
|21考研数学新手3周刷题营01期|21|3月5日每日一题|曾芸芸|NB158191005860701731736820354751
|21考研数学新手3周刷题营01期|22|3月6日每日一题|曾芸芸|NB158191009035808291512270022740
|21考研数学新手3周刷题营01期|23|3月7日每日一题|曾芸芸|NB158191012337102577107230354752
|21考研数学新手3周刷题营01期|24|3月8日每日一题|曾芸芸|NB158191015381108732245240354753"""

    val arr = combi.split("\n")
    arr.forEach {
        //|$courseName|$index|$lessonName|$teacherName|$lessonId"
        val split2 = it.split("|")

        val lesson: CourseInfo.Lesson = CourseInfo.Lesson()
        courseInfo.courseName = split2[1]
        lesson.index = split2[2]
        lesson.lessonName = split2[3]
        lesson.teacherName = split2[4]
        lesson.roomId = split2[5]

        // 網絡請求
        val url = "https://live.kaochong.com/api/room/playback" + "?role=2" + "&device=3" + "&roomId=${lesson.roomId}" + "&apiVer=2"

        //println("網址: $url")

        val mHttpClient = OkHttpClient()
        val request: Request = Request.Builder().url(url).build()
        val json = mHttpClient.newCall(request).execute().body()!!.string()
        //println(json)

        val domain = arrayOf(
            "http://static-bos.live.kaochong.com/",
            "http://static-ali.live.kaochong.com/",
            "http://static-oss.live.kaochong.com/"
        )

        val m3u8 = StringUtils.getTextCenter(json, "m3u8\":\"", "\"").replace("\\", "")

        var info: String = ""
        domain.forEach {
            info = "$info$it$m3u8#"
        }

        println("|${courseInfo.courseName}|${lesson.index}|${lesson.lessonName}|${lesson.teacherName}|$info")
    }
}

打印結果:

|21考研数学新手3周刷题营01期|1|2月23日直播答疑and总结|李良|http://static-bos.live.kaochong.com/hls/NB158107182433609316935330322386_playback_1582461830972970908.m3u8#http://static-ali.live.kaochong.com/hls/NB158107182433609316935330322386_playback_1582461830972970908.m3u8#http://static-oss.live.kaochong.com/hls/NB158107182433609316935330322386_playback_1582461830972970908.m3u8#
|21考研数学新手3周刷题营01期|2|3月1日直播答疑and总结|陈晓燕|http://static-bos.live.kaochong.com/hls/NB158107184894020532326730322387_playback_1583064369951851514.m3u8#http://static-ali.live.kaochong.com/hls/NB158107184894020532326730322387_playback_1583064369951851514.m3u8#http://static-oss.live.kaochong.com/hls/NB158107184894020532326730322387_playback_1583064369951851514.m3u8#
|21考研数学新手3周刷题营01期|3|3月8日直播答疑and总结|曾芸芸|http://static-bos.live.kaochong.com/hls/NB158107188249817326059820322388_playback_1583668858421427962.m3u8#http://static-ali.live.kaochong.com/hls/NB158107188249817326059820322388_playback_1583668858421427962.m3u8#http://static-oss.live.kaochong.com/hls/NB158107188249817326059820322388_playback_1583668858421427962.m3u8#
|21考研数学新手3周刷题营01期|4|2月17日每日一题|李良|http://static-bos.live.kaochong.com/hls/NB158053799881212540635490322201_playback_1581062826565138459.m3u8#http://static-ali.live.kaochong.com/hls/NB158053799881212540635490322201_playback_1581062826565138459.m3u8#http://static-oss.live.kaochong.com/hls/NB158053799881212540635490322201_playback_1581062826565138459.m3u8#
|21考研数学新手3周刷题营01期|5|2月18日每日一题|李良|http://static-bos.live.kaochong.com/hls/NB158053802682704037675120217379_playback_1581062929826664025.m3u8#http://static-ali.live.kaochong.com/hls/NB158053802682704037675120217379_playback_1581062929826664025.m3u8#http://static-oss.live.kaochong.com/hls/NB158053802682704037675120217379_playback_1581062929826664025.m3u8#
|21考研数学新手3周刷题营01期|6|2月19日每日一题|李良|http://static-bos.live.kaochong.com/hls/NB158053805515521446560550217380_playback_1580983356343305817.m3u8#http://static-ali.live.kaochong.com/hls/NB158053805515521446560550217380_playback_1580983356343305817.m3u8#http://static-oss.live.kaochong.com/hls/NB158053805515521446560550217380_playback_1580983356343305817.m3u8#
|21考研数学新手3周刷题营01期|7|2月20日每日一题|李良|http://static-bos.live.kaochong.com/hls/NB158053808341204730615580217381_playback_1581062839582578107.m3u8#http://static-ali.live.kaochong.com/hls/NB158053808341204730615580217381_playback_1581062839582578107.m3u8#http://static-oss.live.kaochong.com/hls/NB158053808341204730615580217381_playback_1581062839582578107.m3u8#
|21考研数学新手3周刷题营01期|8|2月21日每日一题|李良|http://static-bos.live.kaochong.com/hls/NB158053811201105424828820322202_playback_1581062921372927773.m3u8#http://static-ali.live.kaochong.com/hls/NB158053811201105424828820322202_playback_1581062921372927773.m3u8#http://static-oss.live.kaochong.com/hls/NB158053811201105424828820322202_playback_1581062921372927773.m3u8#
|21考研数学新手3周刷题营01期|9|2月22日每日一题|李良|http://static-bos.live.kaochong.com/hls/NB158053814150507642610880322203_playback_1581063005053803307.m3u8#http://static-ali.live.kaochong.com/hls/NB158053814150507642610880322203_playback_1581063005053803307.m3u8#http://static-oss.live.kaochong.com/hls/NB158053814150507642610880322203_playback_1581063005053803307.m3u8#
|21考研数学新手3周刷题营01期|10|2月23日每日一题|李良|http://static-bos.live.kaochong.com/hls/NB158053846881210853689790217382_playback_1581064800807806849.m3u8#http://static-ali.live.kaochong.com/hls/NB158053846881210853689790217382_playback_1581064800807806849.m3u8#http://static-oss.live.kaochong.com/hls/NB158053846881210853689790217382_playback_1581064800807806849.m3u8#
|21考研数学新手3周刷题营01期|11|2月24日每日一题|陈晓燕|http://static-bos.live.kaochong.com/hls/NB158080153991312977299810217424_playback_1581242790942508924.m3u8#http://static-ali.live.kaochong.com/hls/NB158080153991312977299810217424_playback_1581242790942508924.m3u8#http://static-oss.live.kaochong.com/hls/NB158080153991312977299810217424_playback_1581242790942508924.m3u8#
|21考研数学新手3周刷题营01期|12|2月25日每日一题|陈晓燕|http://static-bos.live.kaochong.com/hls/NB158080157320807755680420322240_playback_1581242956560332677.m3u8#http://static-ali.live.kaochong.com/hls/NB158080157320807755680420322240_playback_1581242956560332677.m3u8#http://static-oss.live.kaochong.com/hls/NB158080157320807755680420322240_playback_1581242956560332677.m3u8#
|21考研数学新手3周刷题营01期|13|2月26日每日一题|陈晓燕|http://static-bos.live.kaochong.com/hls/NB158080160873609865633870217425_playback_1581321964505029638.m3u8#http://static-ali.live.kaochong.com/hls/NB158080160873609865633870217425_playback_1581321964505029638.m3u8#http://static-oss.live.kaochong.com/hls/NB158080160873609865633870217425_playback_1581321964505029638.m3u8#
|21考研数学新手3周刷题营01期|14|2月28日每日一题|陈晓燕|http://static-bos.live.kaochong.com/hls/NB158286260235009503001650591747_playback_1582864512994364953.m3u8#http://static-ali.live.kaochong.com/hls/NB158286260235009503001650591747_playback_1582864512994364953.m3u8#http://static-oss.live.kaochong.com/hls/NB158286260235009503001650591747_playback_1582864512994364953.m3u8#
|21考研数学新手3周刷题营01期|15|2月27日每日一题|陈晓燕|http://static-bos.live.kaochong.com/hls/NB158080167019005788157050322241_playback_1581318225879293176.m3u8#http://static-ali.live.kaochong.com/hls/NB158080167019005788157050322241_playback_1581318225879293176.m3u8#http://static-oss.live.kaochong.com/hls/NB158080167019005788157050322241_playback_1581318225879293176.m3u8#
|21考研数学新手3周刷题营01期|16|2月29日每日一题|陈晓燕|http://static-bos.live.kaochong.com/hls/NB158080172415100646307320322242_playback_1581252062434045689.m3u8#http://static-ali.live.kaochong.com/hls/NB158080172415100646307320322242_playback_1581252062434045689.m3u8#http://static-oss.live.kaochong.com/hls/NB158080172415100646307320322242_playback_1581252062434045689.m3u8#
|21考研数学新手3周刷题营01期|17|3月1日每日一题|陈晓燕|http://static-bos.live.kaochong.com/hls/NB158080175071507149293500322243_playback_1581318494088412251.m3u8#http://static-ali.live.kaochong.com/hls/NB158080175071507149293500322243_playback_1581318494088412251.m3u8#http://static-oss.live.kaochong.com/hls/NB158080175071507149293500322243_playback_1581318494088412251.m3u8#
|21考研数学新手3周刷题营01期|18|3月2日每日一题|曾芸芸|http://static-bos.live.kaochong.com/hls/NB158190993722408852135280354749_playback_1582276182743591393.m3u8#http://static-ali.live.kaochong.com/hls/NB158190993722408852135280354749_playback_1582276182743591393.m3u8#http://static-oss.live.kaochong.com/hls/NB158190993722408852135280354749_playback_1582276182743591393.m3u8#
|21考研数学新手3周刷题营01期|19|3月3日每日一题|曾芸芸|http://static-bos.live.kaochong.com/hls/NB158190996781911481390390354750_playback_1582276363336458675.m3u8#http://static-ali.live.kaochong.com/hls/NB158190996781911481390390354750_playback_1582276363336458675.m3u8#http://static-oss.live.kaochong.com/hls/NB158190996781911481390390354750_playback_1582276363336458675.m3u8#
|21考研数学新手3周刷题营01期|20|3月4日每日一题|曾芸芸|http://static-bos.live.kaochong.com/hls/NB158191000225604672797370022739_playback_1582276484245750038.m3u8#http://static-ali.live.kaochong.com/hls/NB158191000225604672797370022739_playback_1582276484245750038.m3u8#http://static-oss.live.kaochong.com/hls/NB158191000225604672797370022739_playback_1582276484245750038.m3u8#
|21考研数学新手3周刷题营01期|21|3月5日每日一题|曾芸芸|http://static-bos.live.kaochong.com/hls/NB158191005860701731736820354751_playback_1582276567810168469.m3u8#http://static-ali.live.kaochong.com/hls/NB158191005860701731736820354751_playback_1582276567810168469.m3u8#http://static-oss.live.kaochong.com/hls/NB158191005860701731736820354751_playback_1582276567810168469.m3u8#
|21考研数学新手3周刷题营01期|22|3月6日每日一题|曾芸芸|http://static-bos.live.kaochong.com/hls/NB158191009035808291512270022740_playback_1582276761558436107.m3u8#http://static-ali.live.kaochong.com/hls/NB158191009035808291512270022740_playback_1582276761558436107.m3u8#http://static-oss.live.kaochong.com/hls/NB158191009035808291512270022740_playback_1582276761558436107.m3u8#
|21考研数学新手3周刷题营01期|23|3月7日每日一题|曾芸芸|http://static-bos.live.kaochong.com/hls/NB158191012337102577107230354752_playback_1582276870762068803.m3u8#http://static-ali.live.kaochong.com/hls/NB158191012337102577107230354752_playback_1582276870762068803.m3u8#http://static-oss.live.kaochong.com/hls/NB158191012337102577107230354752_playback_1582276870762068803.m3u8#
|21考研数学新手3周刷题营01期|24|3月8日每日一题|曾芸芸|http://static-bos.live.kaochong.com/hls/NB158191015381108732245240354753_playback_1582277023483125350.m3u8#http://static-ali.live.kaochong.com/hls/NB158191015381108732245240354753_playback_1582277023483125350.m3u8#http://static-oss.live.kaochong.com/hls/NB158191015381108732245240354753_playback_1582277023483125350.m3u8#

0xB. 最終獲取到的鏈接: http://static-bos.live.kaochong.com/hls/NB158107184894020532326730322387_playback_1583064369951851514.m3u8

 

可以直接在播放器播放

0xC. 安卓批量下載測試:

        rg_bottom.setOnCheckedChangeListener { group, checkedId ->
            categoryInfo.categoryList.clear()
            when (checkedId) {
                R.id.test -> {
                    val combi ="""|21考研数学新手3周刷题营01期|1|2月23日直播答疑and总结|李良|http://static-bos.live.kaochong.com/hls/NB158107182433609316935330322386_playback_1582461830972970908.m3u8#http://static-ali.live.kaochong.com/hls/NB158107182433609316935330322386_playback_1582461830972970908.m3u8#http://static-oss.live.kaochong.com/hls/NB158107182433609316935330322386_playback_1582461830972970908.m3u8#
|21考研数学新手3周刷题营01期|2|3月1日直播答疑and总结|陈晓燕|http://static-bos.live.kaochong.com/hls/NB158107184894020532326730322387_playback_1583064369951851514.m3u8#http://static-ali.live.kaochong.com/hls/NB158107184894020532326730322387_playback_1583064369951851514.m3u8#http://static-oss.live.kaochong.com/hls/NB158107184894020532326730322387_playback_1583064369951851514.m3u8#
|21考研数学新手3周刷题营01期|3|3月8日直播答疑and总结|曾芸芸|http://static-bos.live.kaochong.com/hls/NB158107188249817326059820322388_playback_1583668858421427962.m3u8#http://static-ali.live.kaochong.com/hls/NB158107188249817326059820322388_playback_1583668858421427962.m3u8#http://static-oss.live.kaochong.com/hls/NB158107188249817326059820322388_playback_1583668858421427962.m3u8#
|21考研数学新手3周刷题营01期|4|2月17日每日一题|李良|http://static-bos.live.kaochong.com/hls/NB158053799881212540635490322201_playback_1581062826565138459.m3u8#http://static-ali.live.kaochong.com/hls/NB158053799881212540635490322201_playback_1581062826565138459.m3u8#http://static-oss.live.kaochong.com/hls/NB158053799881212540635490322201_playback_1581062826565138459.m3u8#
|21考研数学新手3周刷题营01期|5|2月18日每日一题|李良|http://static-bos.live.kaochong.com/hls/NB158053802682704037675120217379_playback_1581062929826664025.m3u8#http://static-ali.live.kaochong.com/hls/NB158053802682704037675120217379_playback_1581062929826664025.m3u8#http://static-oss.live.kaochong.com/hls/NB158053802682704037675120217379_playback_1581062929826664025.m3u8#
|21考研数学新手3周刷题营01期|6|2月19日每日一题|李良|http://static-bos.live.kaochong.com/hls/NB158053805515521446560550217380_playback_1580983356343305817.m3u8#http://static-ali.live.kaochong.com/hls/NB158053805515521446560550217380_playback_1580983356343305817.m3u8#http://static-oss.live.kaochong.com/hls/NB158053805515521446560550217380_playback_1580983356343305817.m3u8#
|21考研数学新手3周刷题营01期|7|2月20日每日一题|李良|http://static-bos.live.kaochong.com/hls/NB158053808341204730615580217381_playback_1581062839582578107.m3u8#http://static-ali.live.kaochong.com/hls/NB158053808341204730615580217381_playback_1581062839582578107.m3u8#http://static-oss.live.kaochong.com/hls/NB158053808341204730615580217381_playback_1581062839582578107.m3u8#
|21考研数学新手3周刷题营01期|8|2月21日每日一题|李良|http://static-bos.live.kaochong.com/hls/NB158053811201105424828820322202_playback_1581062921372927773.m3u8#http://static-ali.live.kaochong.com/hls/NB158053811201105424828820322202_playback_1581062921372927773.m3u8#http://static-oss.live.kaochong.com/hls/NB158053811201105424828820322202_playback_1581062921372927773.m3u8#
|21考研数学新手3周刷题营01期|9|2月22日每日一题|李良|http://static-bos.live.kaochong.com/hls/NB158053814150507642610880322203_playback_1581063005053803307.m3u8#http://static-ali.live.kaochong.com/hls/NB158053814150507642610880322203_playback_1581063005053803307.m3u8#http://static-oss.live.kaochong.com/hls/NB158053814150507642610880322203_playback_1581063005053803307.m3u8#
|21考研数学新手3周刷题营01期|10|2月23日每日一题|李良|http://static-bos.live.kaochong.com/hls/NB158053846881210853689790217382_playback_1581064800807806849.m3u8#http://static-ali.live.kaochong.com/hls/NB158053846881210853689790217382_playback_1581064800807806849.m3u8#http://static-oss.live.kaochong.com/hls/NB158053846881210853689790217382_playback_1581064800807806849.m3u8#
|21考研数学新手3周刷题营01期|11|2月24日每日一题|陈晓燕|http://static-bos.live.kaochong.com/hls/NB158080153991312977299810217424_playback_1581242790942508924.m3u8#http://static-ali.live.kaochong.com/hls/NB158080153991312977299810217424_playback_1581242790942508924.m3u8#http://static-oss.live.kaochong.com/hls/NB158080153991312977299810217424_playback_1581242790942508924.m3u8#
|21考研数学新手3周刷题营01期|12|2月25日每日一题|陈晓燕|http://static-bos.live.kaochong.com/hls/NB158080157320807755680420322240_playback_1581242956560332677.m3u8#http://static-ali.live.kaochong.com/hls/NB158080157320807755680420322240_playback_1581242956560332677.m3u8#http://static-oss.live.kaochong.com/hls/NB158080157320807755680420322240_playback_1581242956560332677.m3u8#
|21考研数学新手3周刷题营01期|13|2月26日每日一题|陈晓燕|http://static-bos.live.kaochong.com/hls/NB158080160873609865633870217425_playback_1581321964505029638.m3u8#http://static-ali.live.kaochong.com/hls/NB158080160873609865633870217425_playback_1581321964505029638.m3u8#http://static-oss.live.kaochong.com/hls/NB158080160873609865633870217425_playback_1581321964505029638.m3u8#
|21考研数学新手3周刷题营01期|14|2月28日每日一题|陈晓燕|http://static-bos.live.kaochong.com/hls/NB158286260235009503001650591747_playback_1582864512994364953.m3u8#http://static-ali.live.kaochong.com/hls/NB158286260235009503001650591747_playback_1582864512994364953.m3u8#http://static-oss.live.kaochong.com/hls/NB158286260235009503001650591747_playback_1582864512994364953.m3u8#
|21考研数学新手3周刷题营01期|15|2月27日每日一题|陈晓燕|http://static-bos.live.kaochong.com/hls/NB158080167019005788157050322241_playback_1581318225879293176.m3u8#http://static-ali.live.kaochong.com/hls/NB158080167019005788157050322241_playback_1581318225879293176.m3u8#http://static-oss.live.kaochong.com/hls/NB158080167019005788157050322241_playback_1581318225879293176.m3u8#
|21考研数学新手3周刷题营01期|16|2月29日每日一题|陈晓燕|http://static-bos.live.kaochong.com/hls/NB158080172415100646307320322242_playback_1581252062434045689.m3u8#http://static-ali.live.kaochong.com/hls/NB158080172415100646307320322242_playback_1581252062434045689.m3u8#http://static-oss.live.kaochong.com/hls/NB158080172415100646307320322242_playback_1581252062434045689.m3u8#
|21考研数学新手3周刷题营01期|17|3月1日每日一题|陈晓燕|http://static-bos.live.kaochong.com/hls/NB158080175071507149293500322243_playback_1581318494088412251.m3u8#http://static-ali.live.kaochong.com/hls/NB158080175071507149293500322243_playback_1581318494088412251.m3u8#http://static-oss.live.kaochong.com/hls/NB158080175071507149293500322243_playback_1581318494088412251.m3u8#
|21考研数学新手3周刷题营01期|18|3月2日每日一题|曾芸芸|http://static-bos.live.kaochong.com/hls/NB158190993722408852135280354749_playback_1582276182743591393.m3u8#http://static-ali.live.kaochong.com/hls/NB158190993722408852135280354749_playback_1582276182743591393.m3u8#http://static-oss.live.kaochong.com/hls/NB158190993722408852135280354749_playback_1582276182743591393.m3u8#
|21考研数学新手3周刷题营01期|19|3月3日每日一题|曾芸芸|http://static-bos.live.kaochong.com/hls/NB158190996781911481390390354750_playback_1582276363336458675.m3u8#http://static-ali.live.kaochong.com/hls/NB158190996781911481390390354750_playback_1582276363336458675.m3u8#http://static-oss.live.kaochong.com/hls/NB158190996781911481390390354750_playback_1582276363336458675.m3u8#
|21考研数学新手3周刷题营01期|20|3月4日每日一题|曾芸芸|http://static-bos.live.kaochong.com/hls/NB158191000225604672797370022739_playback_1582276484245750038.m3u8#http://static-ali.live.kaochong.com/hls/NB158191000225604672797370022739_playback_1582276484245750038.m3u8#http://static-oss.live.kaochong.com/hls/NB158191000225604672797370022739_playback_1582276484245750038.m3u8#
|21考研数学新手3周刷题营01期|21|3月5日每日一题|曾芸芸|http://static-bos.live.kaochong.com/hls/NB158191005860701731736820354751_playback_1582276567810168469.m3u8#http://static-ali.live.kaochong.com/hls/NB158191005860701731736820354751_playback_1582276567810168469.m3u8#http://static-oss.live.kaochong.com/hls/NB158191005860701731736820354751_playback_1582276567810168469.m3u8#
|21考研数学新手3周刷题营01期|22|3月6日每日一题|曾芸芸|http://static-bos.live.kaochong.com/hls/NB158191009035808291512270022740_playback_1582276761558436107.m3u8#http://static-ali.live.kaochong.com/hls/NB158191009035808291512270022740_playback_1582276761558436107.m3u8#http://static-oss.live.kaochong.com/hls/NB158191009035808291512270022740_playback_1582276761558436107.m3u8#
|21考研数学新手3周刷题营01期|23|3月7日每日一题|曾芸芸|http://static-bos.live.kaochong.com/hls/NB158191012337102577107230354752_playback_1582276870762068803.m3u8#http://static-ali.live.kaochong.com/hls/NB158191012337102577107230354752_playback_1582276870762068803.m3u8#http://static-oss.live.kaochong.com/hls/NB158191012337102577107230354752_playback_1582276870762068803.m3u8#
|21考研数学新手3周刷题营01期|24|3月8日每日一题|曾芸芸|http://static-bos.live.kaochong.com/hls/NB158191015381108732245240354753_playback_1582277023483125350.m3u8#http://static-ali.live.kaochong.com/hls/NB158191015381108732245240354753_playback_1582277023483125350.m3u8#http://static-oss.live.kaochong.com/hls/NB158191015381108732245240354753_playback_1582277023483125350.m3u8#"""

                    val courseInfo = CourseInfo()

                    categoryInfo.categoryList.clear()
                    val arr = combi.split("\n")
                    arr.forEach {
                        //|$courseName|$index|$lessonName|$teacherName|$lessonId"
                        val split2 = it.split("|")
                        val lesson: CourseInfo.Lesson = CourseInfo.Lesson()
                        courseInfo.courseName = split2[1]
                        lesson.index = split2[2]
                        lesson.lessonName = split2[3]
                        lesson.teacherName = split2[4]
                        lesson.roomId = split2[5]

                        val fileName =
                            lesson.index + "_" + lesson.lessonName + "_" + lesson.teacherName

                        val categoryListInfo = CategoryListInfo()
                        categoryListInfo.categoryName = fileName
                        categoryListInfo.categoryUrl = lesson.roomId
                        categoryListInfo.categoryVideoCount = "3"
                        categoryInfo.categoryList.add(categoryListInfo)

                    }



                    option.clear()
                    categoryInfo.categoryList.forEach {
                        if (it.categoryVideoCount != "") {
                            option.add(it.categoryName + "[" + it.categoryVideoCount + "]")
                        } else {
                            option.add(it.categoryName)
                        }


                        val list: MutableList<String> = ArrayList()
                        val splitUrl = it.categoryUrl.split("#")
                        splitUrl.forEach { url ->
                            if (url != null) {
                                if (url != "") {
                                    list.add(url)
                                }
                            }
                        }


                        ///////// 調用第三方下載器下載
                        // Intent
                        val intent = Intent()
                        intent.component = ComponentName(
                            "ru.yourok.m3u8loader",
                            "ru.yourok.m3u8loader.activitys.AddListActivity"
                        )
                        intent.data = Uri.parse(list[0])

                        // Bundle
                        val bundle = Bundle()
                        bundle.putString("name", it.categoryName)
                        bundle.putString("download", "true")
                        intent.putExtras(bundle) //将bundle传入intent中。
                        launcherUiActivity.startActivityForResult(intent, 0)
                        ////////
                    }
                }
                else -> {

                }
            }
        }

0xD. 效果

Downloader

 

Player

 

Xposed模塊交流群: 621751638 244370614


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2020-6-24 12:53 被KwaiChing编辑 ,原因:
收藏
免费 2
支持
分享
最新回复 (2)
雪    币: 19950
活跃值: (4942)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
大佬厉害
2020-7-4 18:30
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
在吗?不能私信,能加我WX么?flyinskypy,发个东东你瞧瞧
2021-11-24 15:58
0
游客
登录 | 注册 方可回帖
返回
//