3 from .common
import InfoExtractor
4 from ..utils
import extract_attributes
7 class BFIPlayerIE(InfoExtractor
):
10 _VALID_URL
= r
'https?://player\.bfi\.org\.uk/[^/]+/film/watch-(?P<id>[\w-]+)-online'
12 'url': 'https://player.bfi.org.uk/free/film/watch-computer-doctor-1974-online',
13 'md5': 'e8783ebd8e061ec4bc6e9501ed547de8',
15 'id': 'htNnhlZjE60C9VySkQEIBtU-cNV1Xx63',
17 'title': 'Computer Doctor',
18 'description': 'md5:fb6c240d40c4dbe40428bdd62f78203b',
20 'skip': 'BFI Player films cannot be played outside of the UK',
23 def _real_extract(self
, url
):
24 video_id
= self
._match
_id
(url
)
25 webpage
= self
._download
_webpage
(url
, video_id
)
27 for player_el
in re
.findall(r
'(?s)<[^>]+class="player"[^>]*>', webpage
):
28 player_attr
= extract_attributes(player_el
)
29 ooyala_id
= player_attr
.get('data-video-id')
32 entries
.append(self
.url_result(
33 'ooyala:' + ooyala_id
, 'Ooyala',
34 ooyala_id
, player_attr
.get('data-label')))
35 return self
.playlist_result(entries
)