[^/]+)'
+ _TEST = {
+ 'url': 'http://www.webofstories.com/playAll/donald.knuth',
+ 'info_dict': {
+ 'id': 'donald.knuth',
+ 'title': 'Donald Knuth (Scientist)',
+ },
+ 'playlist_mincount': 97,
+ }
+
+ def _real_extract(self, url):
+ playlist_id = self._match_id(url)
+
+ webpage = self._download_webpage(url, playlist_id)
+
+ entries = [
+ self.url_result(
+ 'http://www.webofstories.com/play/%s' % video_id,
+ 'WebOfStories', video_id=video_id)
+ for video_id in orderedSet(re.findall(r'\bid=["\']td_(\d+)', webpage))
+ ]
+
+ title = self._search_regex(
+ r'\s*([^<]+)',
+ webpage, 'speaker', default=None)
+ if title:
+ field = self._search_regex(
+ r'([^<]+)',
+ webpage, 'field', default=None)
+ if field:
+ title += ' (%s)' % field
+
+ if not title:
+ title = self._search_regex(
+ r'
Play\s+all\s+stories\s*-\s*([^<]+)\s*-\s*Web\s+of\s+Stories',
+ webpage, 'title')
+
+ return self.playlist_result(entries, playlist_id, title)