mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-04 10:57:07 -05:00 
			
		
		
		
	Make sure netrc works for all extractors with login support
Fixes #5112
This commit is contained in:
		
							
								
								
									
										26
									
								
								test/test_netrc.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								test/test_netrc.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
# coding: utf-8
 | 
			
		||||
from __future__ import unicode_literals
 | 
			
		||||
 | 
			
		||||
import os
 | 
			
		||||
import sys
 | 
			
		||||
import unittest
 | 
			
		||||
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
from youtube_dl.extractor import (
 | 
			
		||||
    gen_extractors,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class TestNetRc(unittest.TestCase):
 | 
			
		||||
    def test_netrc_present(self):
 | 
			
		||||
        for ie in gen_extractors():
 | 
			
		||||
            if not hasattr(ie, '_login'):
 | 
			
		||||
                continue
 | 
			
		||||
            self.assertTrue(
 | 
			
		||||
                hasattr(ie, '_NETRC_MACHINE'),
 | 
			
		||||
                'Extractor %s supports login, but is missing a _NETRC_MACHINE property' % ie.IE_NAME)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == '__main__':
 | 
			
		||||
    unittest.main()
 | 
			
		||||
@@ -19,6 +19,7 @@ from ..utils import (
 | 
			
		||||
 | 
			
		||||
class AtresPlayerIE(InfoExtractor):
 | 
			
		||||
    _VALID_URL = r'https?://(?:www\.)?atresplayer\.com/television/[^/]+/[^/]+/[^/]+/(?P<id>.+?)_\d+\.html'
 | 
			
		||||
    _NETRC_MACHINE = 'atresplayer'
 | 
			
		||||
    _TESTS = [
 | 
			
		||||
        {
 | 
			
		||||
            'url': 'http://www.atresplayer.com/television/programas/el-club-de-la-comedia/temporada-4/capitulo-10-especial-solidario-nochebuena_2014122100174.html',
 | 
			
		||||
 
 | 
			
		||||
@@ -29,6 +29,7 @@ from ..aes import (
 | 
			
		||||
 | 
			
		||||
class CrunchyrollIE(InfoExtractor):
 | 
			
		||||
    _VALID_URL = r'https?://(?:(?P<prefix>www|m)\.)?(?P<url>crunchyroll\.(?:com|fr)/(?:[^/]*/[^/?&]*?|media/\?id=)(?P<video_id>[0-9]+))(?:[/?&]|$)'
 | 
			
		||||
    _NETRC_MACHINE = 'crunchyroll'
 | 
			
		||||
    _TESTS = [{
 | 
			
		||||
        'url': 'http://www.crunchyroll.com/wanna-be-the-strongest-in-the-world/episode-1-an-idol-wrestler-is-born-645513',
 | 
			
		||||
        'info_dict': {
 | 
			
		||||
 
 | 
			
		||||
@@ -12,6 +12,7 @@ from ..utils import remove_end
 | 
			
		||||
 | 
			
		||||
class GDCVaultIE(InfoExtractor):
 | 
			
		||||
    _VALID_URL = r'https?://(?:www\.)?gdcvault\.com/play/(?P<id>\d+)/(?P<name>(\w|-)+)'
 | 
			
		||||
    _NETRC_MACHINE = 'gdcvault'
 | 
			
		||||
    _TESTS = [
 | 
			
		||||
        {
 | 
			
		||||
            'url': 'http://www.gdcvault.com/play/1019721/Doki-Doki-Universe-Sweet-Simple',
 | 
			
		||||
 
 | 
			
		||||
@@ -19,6 +19,7 @@ class LyndaBaseIE(InfoExtractor):
 | 
			
		||||
    _LOGIN_URL = 'https://www.lynda.com/login/login.aspx'
 | 
			
		||||
    _SUCCESSFUL_LOGIN_REGEX = r'isLoggedIn: true'
 | 
			
		||||
    _ACCOUNT_CREDENTIALS_HINT = 'Use --username and --password options to provide lynda.com account credentials.'
 | 
			
		||||
    _NETRC_MACHINE = 'lynda'
 | 
			
		||||
 | 
			
		||||
    def _real_initialize(self):
 | 
			
		||||
        self._login()
 | 
			
		||||
 
 | 
			
		||||
@@ -23,6 +23,7 @@ class TwitchBaseIE(InfoExtractor):
 | 
			
		||||
    _API_BASE = 'https://api.twitch.tv'
 | 
			
		||||
    _USHER_BASE = 'http://usher.twitch.tv'
 | 
			
		||||
    _LOGIN_URL = 'https://secure.twitch.tv/user/login'
 | 
			
		||||
    _NETRC_MACHINE = 'twitch'
 | 
			
		||||
 | 
			
		||||
    def _handle_error(self, response):
 | 
			
		||||
        if not isinstance(response, dict):
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user