forked from GlowerTvg/platzi-dtool
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdtool.py
More file actions
122 lines (108 loc) · 4.61 KB
/
Copy pathdtool.py
File metadata and controls
122 lines (108 loc) · 4.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#!/usr/bin/python3
import os
from utils.downloader.resources import ResourceDownloader
from utils.extractor.platzi import DataExtractor
from utils.handler.dialogs import Logger
from utils.extractor.platzi import PlatziExtractor
from utils.settings import BrowserSettings
import sys
page = ""
def print_data(data):
if data['is_course']:
print(f"Course name: {data['name']}")
print(f"Course URL: {data['url']}")
for section in data['course_data']:
print(f"Section name: {section['name']}")
for lesson in section['items']:
print(f"Name: {lesson['name']}")
print(f"Type: {lesson['type']}")
else:
route = data['route_data'] # courses
for course in route:
print(f'Name: {course["name"]}')
print(f'URL: {course["url"]}')
for section in course['data']: # course section
print(f'Section: {section["name"]}')
for lesson in section['items']: # section lessons
print(f"Name: {lesson['name']}")
print(f"Type: {lesson['type']}")
def __print_data(data, logger):
for values in data.values():
if values['use_file']:
# search in items
for items in values['items']:
for item in items:
logger.log('\t' + item)
with open('example.txt', 'a') as f:
f.write(item + '\n')
else:
for item in values['download']:
logger.log(f"\tName: {item['name']}")
logger.log(f"\tURL: {item['url']}\n")
if __name__ == "__main__":
settings = BrowserSettings(os.path.abspath(__file__))
logger = Logger(settings)
# browser = browser.BrowserManager(logger=logger, settings=settings, headless=True)
# browser.call_browser()
# login_url = "https://platzi.com/login/"
# session = SiteSession(settings, 'platzi', logger=logger, site_url="https://platzi.com")
# session.start_session(browser=browser)
# url = "https://platzi.com/clases/1050-programacion-basica/5114-el-dom-nuestro-lugar-de-trabajo-en-la-web/"
url = 'https://platzi.com/clases/programacion-basica/'
"""if not browser.get(url):
browser.quit()
exit()"""
with open('page.html', 'r') as f:
page = f.read()
# browser.get(url)
data = DataExtractor(settings, logger, url, page_source=page)
# data._extract_data()
# browser.quit()
extractor = PlatziExtractor(logger=logger, page_source=page)
re_handler = ResourceDownloader(settings, logger, 'test/files', extractor.get_data())
re_handler.process_data(overwrite=False)
#re_handler.webpage_download('page.html', browser, url, download=False)
# browser.quit()
""" with YoutubeDL(ydl_options) as ydl:
url = 'https://mdstrm.com/video/5b2d272b5f744265f2277806.m3u8?access_token=EeqKSJNSemBgozOL0TOWE05MOonv0VFhsH5HbP6w4HNnzi8zjyffkfO5PQXrM3Ltto3QCi1WWQR'
pe = ydl.get_info_extractor('Platzi')
formats = pe._real_extract('https://platzi.com/clases/1249-dasas/2123-sassas')
# print(formats)
ydl.process_video_result(formats)
formats.extend(pe.(
url, 'platzi', 'mp4', entry_protocol='m3u8_native',
m3u8_id='hls', note='Downloading serverC m3u8 information',
fatal=False
))
print(formats)
info_dict = {
'id': 'platzi',
'title': 'test',
'description': '',
'duration': int_or_none(357, invscale=60),
'formats': formats
}
ydl.process_info(info_dict)
formats = pe._extract_m3u8_formats()url, 'platzi', 'mp4',
entry_protocol='m3u8_native', m3u8_id='hls',
note='Downloading serverC m3u8 information',
fatal=False)) """
def print_data(data):
if data['is_course']:
print(f"Course name: {data['name']}")
print(f"Course URL: {data['url']}")
for section in data['course_data']:
print(f"Section name: section['name']")
for lesson in section['items']:
print(f"Name: {lesson['name']}")
print(f"Type: {lesson['type']}")
else:
route = data['route_data'] # courses
for course in route:
print(f'Name: {course["name"]}')
print(f'URL: {course["url"]}')
for section in course['data']: # course section
print(f'Section: {section["name"]}')
for lesson in section['items']: # section lessons
print(f"Name: {lesson['name']}")
print(f"Type: {lesson['type']}")