1 from .common
import InfoExtractor
2 from .vimeo
import VimeoIE
10 class GermanupaIE(InfoExtractor
):
11 IE_DESC
= 'germanupa.de'
12 _VALID_URL
= r
'https?://germanupa\.de/mediathek/(?P<id>[\w-]+)'
14 'url': 'https://germanupa.de/mediathek/4-figma-beratung-deine-sprechstunde-fuer-figma-fragen',
17 'title': 'Tutorial: #4 Figma Beratung - Deine Sprechstunde für Figma-Fragen',
19 'uploader': 'German UPA',
20 'uploader_id': 'germanupa',
21 'thumbnail': 'https://i.vimeocdn.com/video/1792564420-7415283ccef8bf8702dab8c6b7515555ceeb7a1c11371ffcc133b8e887dbf70e-d_1280',
22 'uploader_url': 'https://vimeo.com/germanupa',
25 'expected_warnings': ['Failed to parse XML: not well-formed'],
26 'params': {'skip_download': 'm3u8'},
28 'note': 'audio, uses GenericIE',
29 'url': 'https://germanupa.de/mediathek/live-vom-ux-festival-neuigkeiten-von-figma-jobmarkt-agenturszene-interview-zu-sustainable',
32 'title': 'Live vom UX Festival: Neuigkeiten von Figma, Jobmarkt, Agenturszene & Interview zu Sustainable UX',
34 'timestamp': 1720545088,
35 'upload_date': '20240709',
38 'description': 'md5:db2aed5ff131e177a7b33901e9a8db05',
39 'uploader': 'German UPA',
41 'genres': ['Science'],
42 'license': 'all-rights-reserved',
43 'uploader_url': 'https://soundcloud.com/user-80097677',
44 'uploader_id': '471579486',
47 'thumbnail': 'https://i1.sndcdn.com/artworks-oCti2e9GhaZFWBqY-48ybGw-original.jpg',
50 'note': 'Nur für Mitglieder/Just for members',
51 'url': 'https://germanupa.de/mediathek/ux-festival-2024-usability-tests-und-ai',
54 'title': 'UX Festival 2024 "Usability Tests und AI" von Lennart Weber',
56 'release_date': '20240719',
57 'uploader_url': 'https://vimeo.com/germanupa',
58 'timestamp': 1721373980,
61 'thumbnail': 'https://i.vimeocdn.com/video/1904187064-2a672630c30f9ad787bd390bff3f51d7506a3e8416763ba6dbf465732b165c5c-d_1280',
63 'release_timestamp': 1721373980,
64 'uploader': 'German UPA',
65 'uploader_id': 'germanupa',
66 'upload_date': '20240719',
69 'expected_warnings': ['Failed to parse XML: not well-formed'],
70 'skip': 'login required',
73 def _real_extract(self
, url
):
74 video_id
= self
._match
_id
(url
)
75 webpage
= self
._download
_webpage
(url
, video_id
)
77 param_url
= traverse_obj(
79 r
'<iframe[^>]+data-src\s*?=\s*?([\'"])(?P<url>https://germanupa\.de/media/oembed\?url=(?:(?!\1).)+)\1',
80 webpage, 'embedded video', default=None, group='url'),
81 ({parse_qs}, 'url', 0, {url_or_none}))
84 if self._search_regex(
85 r'<div[^>]+class\s*?=\s*?([\'"])(?
:(?
!\
1).)*login
-wrapper(?
:(?
!\
1).)*\
1',
86 webpage, 'login wrapper
', default=None):
87 self.raise_login_required('This video
is only available
for members
')
88 return self.url_result(url, 'Generic
') # Fall back to generic to extract audio
90 real_url = param_url.replace('https
://vimeo
.com
/', 'https
://player
.vimeo
.com
/video
/')
91 return self.url_result(VimeoIE._smuggle_referrer(real_url, url), VimeoIE, video_id)