download course code sample

import os
import requests
import time
import random

headers = {
    'user-agent': "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36",
    "authorization": """Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1Y2lkIjo5Mzk3MCwiYnJhbmQiOiJza2IiLCJhcHBsaWNhdGlvbiI6IndlYiIsInRlc3RlciI6MCwiaXNfdG91cmlzdCI6MCwiaWF0IjoxNjQ3MDU4OTE2LCJpc3MiOiJ1Y2VudGVyIn0._VF0j1zeGdlgQvQrC4P-lU-AXLdh1my06LJtV2yJ-Vk"""
}


def download_course_v1(course_name, chapter, link):
    res = requests.get(link, headers=headers)
    playlist = res.content.decode()
    base_url = link.split('playlist')[0]
    with open(f'./{course_name}/{chapter}.mp4', 'wb') as f:
        for line in playlist.splitlines():
            if ".ts?" in line:
                ts_url = base_url + line
                res = requests.get(ts_url, headers=headers)
                f.write(res.content)
                print(ts_url)
                time.sleep(random.randint(0, 10) * 0.1)


def download_course(course_name, chapter, link):
    print(link)
    if '.m3u8' in link:
        download_course_v1(course_name, chapter, link)
    else:
        os.system(f'mkdir -p {course_name}')
        res = requests.get(link, headers=headers)
        with open(f'./{course_name}/{chapter}.mp4', 'wb') as f:
            f.write(res.content)


course_info = [
    {
        "course_name": '第1课—将工农武装割据思想具体化',
        "chapter": '第3课—效应大汇总',
        "link": "https://1253756937.vod.shikaobang.cn/a40c0452vodcq1253756937/cb7bb2cb3701925924323863847/playlist.m3u8?t=622c7b39&us=622c26d974d6d&sign=4a292d18b0d3bd5a0e6e25052a0a15d3"
    },
    {
        "course_name": '第1课—将工农武装割据思想具体化',
        "chapter": '第4课——细数公民的基本权利',
        "link": "https://1253756937.vod.shikaobang.cn/a40c0452vodcq1253756937/3678481d3701925924304441419/pEF8INRAN1EA.mp4?t=622c7ccd&us=622c286d56a1c&sign=74c62030486b4949035cfeb1ce832df9"
    },
    {
        "course_name": '第1课—将工农武装割据思想具体化',
        "chapter": '第5课 一节课搞定刑罚',
        "link": "https://1253756937.vod.shikaobang.cn/a40c0452vodcq1253756937/60c6bc603701925924485711025/qGOiaviIRu4A.mp4?t=622c7d23&us=622c28c3b92ad&sign=9159438074355a0cc479a05753aa6e88"
    },
    {
        "course_name": '第1课—将工农武装割据思想具体化',
        "chapter": '第6课 —刑诉基本制度',
        "link": "https://1253756937.vod.shikaobang.cn/a40c0452vodcq1253756937/e93599533701925924303401090/K5PSGHB7CCcA.mp4?t=622c7d47&us=622c28e7c7319&sign=9e08082e8f487632c7c7ec093a8d1fff"
    },
]

if __name__ == '__main__':
    for course in course_info:
        download_course(**course)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值