mirror of
https://github.com/simon987/Misc-Download-Scripts.git
synced 2025-04-02 12:12:59 +00:00
68 lines
1.5 KiB
Python
68 lines
1.5 KiB
Python
import requests
|
|
import bs4
|
|
import json
|
|
|
|
|
|
def request_timeout(url):
|
|
while True:
|
|
try:
|
|
return requests.get(url, timeout=30)
|
|
except:
|
|
print("!", end="", flush=True)
|
|
continue
|
|
|
|
|
|
def get_videos(course):
|
|
|
|
videos = []
|
|
r = request_timeout(course[2])
|
|
soup = bs4.BeautifulSoup(r.text, "html.parser")
|
|
|
|
for link in soup.find_all("a"):
|
|
|
|
if link.get("class") is not None and str(link.get("class")) == "['item-name', 'video-name', 'ga']":
|
|
video_id = link.get("data-ga-value")
|
|
video_name = link.text.replace("\n", "").strip()
|
|
|
|
videos.append((video_name, video_id))
|
|
|
|
return videos
|
|
|
|
|
|
def get_links(course, video):
|
|
|
|
links = []
|
|
r = request_timeout("https://viditut.com/ajax/course/" + course[1] + "/" + video[1] + "/play")
|
|
json_obj = json.loads(r.text)
|
|
|
|
if len(json.loads(r.text)) > 0:
|
|
json_obj = json_obj[0]
|
|
else:
|
|
return links
|
|
|
|
for quality in json_obj["qualities"]:
|
|
links.append((quality, json_obj["urls"][quality]))
|
|
|
|
return links
|
|
|
|
|
|
file = open("courses.txt", "r")
|
|
|
|
fileout = open("links1.txt", "w")
|
|
|
|
for line in file.read().splitlines():
|
|
|
|
category, course_name, course_id, course_url = line.split("\0")
|
|
|
|
course = (course_name, course_id, course_url)
|
|
|
|
print(course_name)
|
|
|
|
for video in get_videos(course):
|
|
for link in get_links(course, video):
|
|
fileout.write(category + "/" + course_name + "/" + video[0] + "\0" + link[0] + "\0" + link[1] + "\n")
|
|
fileout.flush()
|
|
|
|
|
|
fileout.close()
|
|
file.close() |