diff options
| -rw-r--r-- | test/test_youtube_lists.py | 4 | ||||
| -rw-r--r-- | youtube_dl/extractor/__init__.py | 1 | ||||
| -rw-r--r-- | youtube_dl/extractor/teachingchannel.py | 33 | ||||
| -rw-r--r-- | youtube_dl/extractor/youtube.py | 1 | 
4 files changed, 37 insertions, 2 deletions
diff --git a/test/test_youtube_lists.py b/test/test_youtube_lists.py index 7d3b9c705..3aadedd64 100644 --- a/test/test_youtube_lists.py +++ b/test/test_youtube_lists.py @@ -112,11 +112,11 @@ class TestYoutubeLists(unittest.TestCase):      def test_youtube_mix(self):          dl = FakeYDL()          ie = YoutubePlaylistIE(dl) -        result = ie.extract('http://www.youtube.com/watch?v=lLJf9qJHR3E&list=RDrjFaenf1T-Y') +        result = ie.extract('https://www.youtube.com/watch?v=W01L70IGBgE&index=2&list=RDOQpdSVF_k_w')          entries = result['entries']          self.assertTrue(len(entries) >= 20)          original_video = entries[0] -        self.assertEqual(original_video['id'], 'rjFaenf1T-Y') +        self.assertEqual(original_video['id'], 'OQpdSVF_k_w')      def test_youtube_toptracks(self):          print('Skipping: The playlist page gives error 500') diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index 4a640ab9c..32ef08c52 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -267,6 +267,7 @@ from .swrmediathek import SWRMediathekIE  from .syfy import SyfyIE  from .sztvhu import SztvHuIE  from .tagesschau import TagesschauIE +from .teachingchannel import TeachingChannelIE  from .teamcoco import TeamcocoIE  from .techtalks import TechTalksIE  from .ted import TEDIE diff --git a/youtube_dl/extractor/teachingchannel.py b/youtube_dl/extractor/teachingchannel.py new file mode 100644 index 000000000..117afa9bf --- /dev/null +++ b/youtube_dl/extractor/teachingchannel.py @@ -0,0 +1,33 @@ +from __future__ import unicode_literals + +import re + +from .common import InfoExtractor +from .ooyala import OoyalaIE + + +class TeachingChannelIE(InfoExtractor): +    _VALID_URL = r'https?://www\.teachingchannel\.org/videos/(?P<title>.+)' + +    _TEST = { +        'url': 'https://www.teachingchannel.org/videos/teacher-teaming-evolution', +        'info_dict': { +            'id': 'F3bnlzbToeI6pLEfRyrlfooIILUjz4nM', +            'ext': 'mp4', +            'title': 'A History of Teaming', +            'description': 'md5:2a9033db8da81f2edffa4c99888140b3', +        }, +        'params': { +            # m3u8 download +            'skip_download': True, +        }, +    } + +    def _real_extract(self, url): +        mobj = re.match(self._VALID_URL, url) +        title = mobj.group('title') +        webpage = self._download_webpage(url, title) +        ooyala_code = self._search_regex( +            r'data-embed-code=\'(.+?)\'', webpage, 'ooyala code') + +        return OoyalaIE._build_url_result(ooyala_code) diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index 2c51a0b47..7c50881c4 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -223,6 +223,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor, SubtitlesInfoExtractor):          '246': {'ext': 'webm', 'height': 480, 'format_note': 'DASH video', 'acodec': 'none', 'preference': -40},          '247': {'ext': 'webm', 'height': 720, 'format_note': 'DASH video', 'acodec': 'none', 'preference': -40},          '248': {'ext': 'webm', 'height': 1080, 'format_note': 'DASH video', 'acodec': 'none', 'preference': -40}, +        '271': {'ext': 'webm', 'height': 1440, 'format_note': 'DASH video', 'acodec': 'none', 'preference': -40},          # Dash webm audio          '171': {'ext': 'webm', 'vcodec': 'none', 'format_note': 'DASH audio', 'abr': 48, 'preference': -50},  | 
