about summary refs log tree commit diff
path: root/youtube_dl/extractor/udemy.py
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2015-12-31 03:11:21 +0600
committerSergey M․ <dstftw@gmail.com>2015-12-31 03:11:21 +0600
commit4d402db52140458b1b4707c30fb01bb92861a8cc (patch)
tree669212d3365c772db59a501ddc37bdeca2c73c45 /youtube_dl/extractor/udemy.py
parent7109903e6140e01b5d5980fc80c6ef1b6c86797a (diff)
downloadyoutube-dl-4d402db52140458b1b4707c30fb01bb92861a8cc.tar.gz
youtube-dl-4d402db52140458b1b4707c30fb01bb92861a8cc.tar.xz
youtube-dl-4d402db52140458b1b4707c30fb01bb92861a8cc.zip
[udemy] Extract chapter info
Diffstat (limited to 'youtube_dl/extractor/udemy.py')
-rw-r--r--youtube_dl/extractor/udemy.py25
1 files changed, 20 insertions, 5 deletions
diff --git a/youtube_dl/extractor/udemy.py b/youtube_dl/extractor/udemy.py
index ce7e211fc..41097829d 100644
--- a/youtube_dl/extractor/udemy.py
+++ b/youtube_dl/extractor/udemy.py
@@ -244,10 +244,25 @@ class UdemyCourseIE(UdemyIE):
             'https://www.udemy.com/api-1.1/courses/%s/curriculum' % course_id,
             course_id, 'Downloading course curriculum')
 
-        entries = [
-            self.url_result(
-                'https://www.udemy.com/%s/#/lecture/%s' % (course_path, asset['id']), 'Udemy')
-            for asset in response if asset.get('assetType') or asset.get('asset_type') == 'Video'
-        ]
+        entries = []
+        chapter, chapter_id = None, None
+        for asset in response:
+            asset_type = asset.get('assetType') or asset.get('asset_type')
+            if asset_type == 'Video':
+                asset_id = asset.get('id')
+                if asset_id:
+                    entry = {
+                        '_type': 'url_transparent',
+                        'url': 'https://www.udemy.com/%s/#/lecture/%s' % (course_path, asset['id']),
+                        'ie_key': UdemyIE.ie_key(),
+                    }
+                    if chapter_id:
+                        entry['chapter_id'] = chapter_id
+                    if chapter:
+                        entry['chapter'] = chapter
+                    entries.append(entry)
+            elif asset.get('type') == 'chapter':
+                chapter_id = asset.get('index') or asset.get('object_index')
+                chapter = asset.get('title')
 
         return self.playlist_result(entries, course_id, course_title)