diff --git a/yt_dlp/extractor/bbcmaestro.py b/yt_dlp/extractor/bbcmaestro.py
index df3f74bf1..704de0c1a 100644
--- a/yt_dlp/extractor/bbcmaestro.py
+++ b/yt_dlp/extractor/bbcmaestro.py
@@ -1,9 +1,7 @@
-# coding: utf-8
-from __future__ import unicode_literals
import re
-from ..utils import orderedSet, smuggle_url, unsmuggle_url
from .common import InfoExtractor
+from ..utils import orderedSet, smuggle_url, unsmuggle_url
class BBCMaestroComIE(InfoExtractor):
@@ -15,11 +13,11 @@ class BBCMaestroComIE(InfoExtractor):
'info_dict': {
'id': 'julia-donaldson/writing-children-s-picture-books/trailer',
'ext': 'mp4',
- 'title': 'Course trailer'
+ 'title': 'Course trailer',
},
'params': {
- 'skip_download': True
- }
+ 'skip_download': True,
+ },
}]
def _do_extract_video(self, url, webpage, video_id):
@@ -30,13 +28,13 @@ def _do_extract_video(self, url, webpage, video_id):
r'
]*lesson[^>]*title[^>]*>\s*(.+?)\s*
',
webpage,
name='title',
- flags=re.RegexFlag.S
+ flags=re.RegexFlag.S,
)
m3u8_url = self._html_search_regex(
r']+src="?\'?(\S+\.m3u8)',
webpage,
- 'video URL'
+ 'video URL',
)
formats = []
if m3u8_url:
@@ -45,23 +43,21 @@ def _do_extract_video(self, url, webpage, video_id):
video_id=video_id,
ext='mp4',
m3u8_id='hls',
- fatal=False
+ fatal=False,
)
- video_dict = {
+ return {
'id': video_id,
'title': title,
- 'formats': formats
+ 'formats': formats,
}
- return video_dict
-
def _do_extract_playlist(self, url, webpage):
# Twitter Title usually: - |
twitter_title = self._html_search_meta(
['twitter:title'],
webpage,
- fatal=True
+ fatal=True,
)
playlist_title = (
twitter_title
@@ -70,32 +66,32 @@ def _do_extract_playlist(self, url, webpage):
)
url_without_query_parameters = url.split('?', maxsplit=1)[0]
- self.write_debug('url_without_query_parameters: %r' % url_without_query_parameters)
+ self.write_debug(f'url_without_query_parameters: {url_without_query_parameters}')
playlist_id = self._search_regex(
pattern=r'.*/courses/([^/]+/[^/]+).*',
string=url_without_query_parameters,
name='Playlist ID (from URL)',
- fatal=True
+ fatal=True,
)
- self.write_debug('playlist_id: %r' % playlist_id)
+ self.write_debug(f'playlist_id: {playlist_id}')
entries = [
self.url_result(
smuggle_url(
f'https://www.bbcmaestro.com/courses/{playlist_id}/lessons/{item_video_id}',
- {'forcevideo': True}
+ {'forcevideo': True},
),
- ie=BBCMaestroComIE.ie_key()
+ ie=BBCMaestroComIE.ie_key(),
)
for item_video_id in orderedSet(re.findall(
r'href=[^>]*/courses/' + re.escape(playlist_id) + r'/lessons/([^?]+)',
- webpage
+ webpage,
))
]
# self.write_debug('entries: %r' % entries)
return self.playlist_result(
entries=entries,
playlist_id=playlist_id,
- playlist_title=playlist_title
+ playlist_title=playlist_title,
)
def _check_login_provided(self):
@@ -104,9 +100,9 @@ def _check_login_provided(self):
def _real_extract(self, url):
url, smuggled_data = unsmuggle_url(url, {})
- self.write_debug('Extracting from: %r' % url)
+ self.write_debug(f'Extracting from: {url}')
video_id = self._match_id(url)
- self.write_debug('Video ID: %r' % video_id)
+ self.write_debug(f'Video ID: {video_id}')
webpage = self._download_webpage(url, video_id)
is_private_course_content = ('/lessons/' in url)
@@ -115,7 +111,7 @@ def _real_extract(self, url):
# Note: We can only download the course trailer without login
self._check_login_provided()
- is_playlist = (
+ is_playlist = (
is_private_course_content
and not smuggled_data.get('forcevideo')
and not self.get_param('noplaylist')