|
@@ -4,7 +4,10 @@ from __future__ import unicode_literals
|
|
|
import re
|
|
|
|
|
|
from .turner import TurnerBaseIE
|
|
|
-from ..utils import ExtractorError
|
|
|
+from ..utils import (
|
|
|
+ ExtractorError,
|
|
|
+ int_or_none,
|
|
|
+)
|
|
|
|
|
|
|
|
|
class AdultSwimIE(TurnerBaseIE):
|
|
@@ -144,7 +147,10 @@ class AdultSwimIE(TurnerBaseIE):
|
|
|
if bootstrapped_data.get('slugged_video', {}).get('slug') == episode_path:
|
|
|
video_info = bootstrapped_data['slugged_video']
|
|
|
if not video_info:
|
|
|
- video_info = bootstrapped_data.get('heroMetadata', {}).get('trailer').get('video')
|
|
|
+ video_info = bootstrapped_data.get(
|
|
|
+ 'heroMetadata', {}).get('trailer', {}).get('video')
|
|
|
+ if not video_info:
|
|
|
+ video_info = bootstrapped_data.get('onlineOriginals', [None])[0]
|
|
|
if not video_info:
|
|
|
raise ExtractorError('Unable to find video info')
|
|
|
|
|
@@ -167,8 +173,9 @@ class AdultSwimIE(TurnerBaseIE):
|
|
|
|
|
|
episode_id = video_info['id']
|
|
|
episode_title = video_info['title']
|
|
|
- episode_description = video_info['description']
|
|
|
- episode_duration = video_info.get('duration')
|
|
|
+ episode_description = video_info.get('description')
|
|
|
+ episode_duration = int_or_none(video_info.get('duration'))
|
|
|
+ view_count = int_or_none(video_info.get('views'))
|
|
|
|
|
|
entries = []
|
|
|
for part_num, segment_id in enumerate(segment_ids):
|
|
@@ -197,5 +204,6 @@ class AdultSwimIE(TurnerBaseIE):
|
|
|
'entries': entries,
|
|
|
'title': '%s - %s' % (show_title, episode_title),
|
|
|
'description': episode_description,
|
|
|
- 'duration': episode_duration
|
|
|
+ 'duration': episode_duration,
|
|
|
+ 'view_count': view_count,
|
|
|
}
|