projects
/
youtube-dl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[extractor/common] Add _form_hidden_inputs
[youtube-dl]
/
youtube_dl
/
extractor
/
safari.py
diff --git
a/youtube_dl/extractor/safari.py
b/youtube_dl/extractor/safari.py
index 10251f29e033ef241618ed7985e214dc0e76cd51..f3c80708c86ab2fc29fbd029b245bbe894af2dfb 100644
(file)
--- a/
youtube_dl/extractor/safari.py
+++ b/
youtube_dl/extractor/safari.py
@@
-83,7
+83,7
@@
class SafariIE(SafariBaseIE):
library/view/[^/]+|
api/v1/book
)/
library/view/[^/]+|
api/v1/book
)/
- (?P<course_id>
\d
+)/
+ (?P<course_id>
[^/]
+)/
(?:chapter(?:-content)?/)?
(?P<part>part\d+)\.html
'''
(?:chapter(?:-content)?/)?
(?P<part>part\d+)\.html
'''
@@
-100,6
+100,10
@@
class SafariIE(SafariBaseIE):
}, {
'url': 'https://www.safaribooksonline.com/api/v1/book/9780133392838/chapter/part00.html',
'only_matching': True,
}, {
'url': 'https://www.safaribooksonline.com/api/v1/book/9780133392838/chapter/part00.html',
'only_matching': True,
+ }, {
+ # non-digits in course id
+ 'url': 'https://www.safaribooksonline.com/library/view/create-a-nodejs/100000006A0210/part00.html',
+ 'only_matching': True,
}]
def _real_extract(self, url):
}]
def _real_extract(self, url):
@@
-122,7
+126,7
@@
class SafariCourseIE(SafariBaseIE):
IE_NAME = 'safari:course'
IE_DESC = 'safaribooksonline.com online courses'
IE_NAME = 'safari:course'
IE_DESC = 'safaribooksonline.com online courses'
- _VALID_URL = r'https?://(?:www\.)?safaribooksonline\.com/(?:library/view/[^/]+|api/v1/book)/(?P<id>
\d
+)/?(?:[#?]|$)'
+ _VALID_URL = r'https?://(?:www\.)?safaribooksonline\.com/(?:library/view/[^/]+|api/v1/book)/(?P<id>
[^/]
+)/?(?:[#?]|$)'
_TESTS = [{
'url': 'https://www.safaribooksonline.com/library/view/hadoop-fundamentals-livelessons/9780133392838/',
_TESTS = [{
'url': 'https://www.safaribooksonline.com/library/view/hadoop-fundamentals-livelessons/9780133392838/',