@@ -22,16 +22,19 @@ def _call_api(self, path, video_id, resource, fatal=True):
22
22
class EggheadCourseIE (EggheadBaseIE ):
23
23
IE_DESC = 'egghead.io course'
24
24
IE_NAME = 'egghead:course'
25
- _VALID_URL = r'https://egghead\.io/courses /(?P<id>[^/?#&]+)'
26
- _TEST = {
25
+ _VALID_URL = r'https://(?:app\.)? egghead\.io/(?:course|playlist)s /(?P<id>[^/?#&]+)'
26
+ _TESTS = [ {
27
27
'url' : 'https://egghead.io/courses/professor-frisby-introduces-composable-functional-javascript' ,
28
28
'playlist_count' : 29 ,
29
29
'info_dict' : {
30
- 'id' : '72 ' ,
30
+ 'id' : '432655 ' ,
31
31
'title' : 'Professor Frisby Introduces Composable Functional JavaScript' ,
32
32
'description' : 're:(?s)^This course teaches the ubiquitous.*You\' ll start composing functionality before you know it.$' ,
33
33
},
34
- }
34
+ }, {
35
+ 'url' : 'https://app.egghead.io/playlists/professor-frisby-introduces-composable-functional-javascript' ,
36
+ 'only_matching' : True ,
37
+ }]
35
38
36
39
def _real_extract (self , url ):
37
40
playlist_id = self ._match_id (url )
@@ -65,7 +68,7 @@ def _real_extract(self, url):
65
68
class EggheadLessonIE (EggheadBaseIE ):
66
69
IE_DESC = 'egghead.io lesson'
67
70
IE_NAME = 'egghead:lesson'
68
- _VALID_URL = r'https://egghead\.io/(?:api/v1/)?lessons/(?P<id>[^/?#&]+)'
71
+ _VALID_URL = r'https://(?:app\.)? egghead\.io/(?:api/v1/)?lessons/(?P<id>[^/?#&]+)'
69
72
_TESTS = [{
70
73
'url' : 'https://egghead.io/lessons/javascript-linear-data-flow-with-container-style-types-box' ,
71
74
'info_dict' : {
@@ -88,6 +91,9 @@ class EggheadLessonIE(EggheadBaseIE):
88
91
}, {
89
92
'url' : 'https://egghead.io/api/v1/lessons/react-add-redux-to-a-react-application' ,
90
93
'only_matching' : True ,
94
+ }, {
95
+ 'url' : 'https://app.egghead.io/lessons/javascript-linear-data-flow-with-container-style-types-box' ,
96
+ 'only_matching' : True ,
91
97
}]
92
98
93
99
def _real_extract (self , url ):
0 commit comments