[nrk:skole] Relax _VALID_URL
authorSergey M․ <dstftw@gmail.com>
Wed, 2 Mar 2016 14:57:04 +0000 (20:57 +0600)
committerSergey M․ <dstftw@gmail.com>
Wed, 2 Mar 2016 14:57:04 +0000 (20:57 +0600)
youtube_dl/extractor/nrk.py

index 4ede1a3625dd323c5a8088f258e3e1d64154031d..3b21fbd4d9e1442e3aa8016d74c1b9a97278d90f 100644 (file)
@@ -4,7 +4,10 @@ from __future__ import unicode_literals
 import re
 
 from .common import InfoExtractor
-from ..compat import compat_urlparse
+from ..compat import (
+    compat_urlparse,
+    compat_urllib_parse_unquote,
+)
 from ..utils import (
     determine_ext,
     ExtractorError,
@@ -128,7 +131,7 @@ class NRKPlaylistIE(InfoExtractor):
 
 class NRKSkoleIE(InfoExtractor):
     IE_DESC = 'NRK Skole'
-    _VALID_URL = r'https?://(?:www\.)?nrk\.no/skole/klippdetalj?.*\btopic=nrk(?::|%3[Aa])klipp(?:/|%2[Ff])(?P<id>\d+)'
+    _VALID_URL = r'https?://(?:www\.)?nrk\.no/skole/klippdetalj?.*\btopic=(?P<id>[^/?#&]+)'
 
     _TESTS = [{
         'url': 'http://nrk.no/skole/klippdetalj?topic=nrk:klipp/616532',
@@ -143,10 +146,13 @@ class NRKSkoleIE(InfoExtractor):
     }, {
         'url': 'http://www.nrk.no/skole/klippdetalj?topic=nrk%3Aklipp%2F616532#embed',
         'only_matching': True,
+    }, {
+        'url': 'http://www.nrk.no/skole/klippdetalj?topic=urn:x-mediadb:21379',
+        'only_matching': True,
     }]
 
     def _real_extract(self, url):
-        video_id = self._match_id(url)
+        video_id = compat_urllib_parse_unquote(self._match_id(url))
 
         webpage = self._download_webpage(url, video_id)