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)
download course code sample
于 2021-03-08 01:20:34 首次发布