mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-11-21 20:46:36 -05:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
33ec2ae8d9
5 changed files with 25 additions and 3 deletions
|
@ -165,6 +165,8 @@ class YoutubeDL(object):
|
||||||
|
|
||||||
def __init__(self, params=None):
|
def __init__(self, params=None):
|
||||||
"""Create a FileDownloader object with the given options."""
|
"""Create a FileDownloader object with the given options."""
|
||||||
|
if params is None:
|
||||||
|
params = {}
|
||||||
self._ies = []
|
self._ies = []
|
||||||
self._ies_instances = {}
|
self._ies_instances = {}
|
||||||
self._pps = []
|
self._pps = []
|
||||||
|
@ -173,7 +175,7 @@ def __init__(self, params=None):
|
||||||
self._num_downloads = 0
|
self._num_downloads = 0
|
||||||
self._screen_file = [sys.stdout, sys.stderr][params.get('logtostderr', False)]
|
self._screen_file = [sys.stdout, sys.stderr][params.get('logtostderr', False)]
|
||||||
self._err_file = sys.stderr
|
self._err_file = sys.stderr
|
||||||
self.params = {} if params is None else params
|
self.params = params
|
||||||
|
|
||||||
if params.get('bidi_workaround', False):
|
if params.get('bidi_workaround', False):
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -133,7 +133,7 @@ def real_download(self, filename, info_dict):
|
||||||
return False
|
return False
|
||||||
try:
|
try:
|
||||||
stream.write(data_block)
|
stream.write(data_block)
|
||||||
except (IOError, OSError):
|
except (IOError, OSError) as err:
|
||||||
self.to_stderr(u"\n")
|
self.to_stderr(u"\n")
|
||||||
self.report_error(u'unable to write data: %s' % str(err))
|
self.report_error(u'unable to write data: %s' % str(err))
|
||||||
return False
|
return False
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
from .cinemassacre import CinemassacreIE
|
from .cinemassacre import CinemassacreIE
|
||||||
from .clipfish import ClipfishIE
|
from .clipfish import ClipfishIE
|
||||||
from .clipsyndicate import ClipsyndicateIE
|
from .clipsyndicate import ClipsyndicateIE
|
||||||
|
from .cmt import CMTIE
|
||||||
from .cnn import CNNIE
|
from .cnn import CNNIE
|
||||||
from .collegehumor import CollegeHumorIE
|
from .collegehumor import CollegeHumorIE
|
||||||
from .comedycentral import ComedyCentralIE, ComedyCentralShowsIE
|
from .comedycentral import ComedyCentralIE, ComedyCentralShowsIE
|
||||||
|
|
19
youtube_dl/extractor/cmt.py
Normal file
19
youtube_dl/extractor/cmt.py
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
from .mtv import MTVIE
|
||||||
|
|
||||||
|
class CMTIE(MTVIE):
|
||||||
|
IE_NAME = u'cmt.com'
|
||||||
|
_VALID_URL = r'https?://www\.cmt\.com/videos/.+?/(?P<videoid>[^/]+)\.jhtml'
|
||||||
|
_FEED_URL = 'http://www.cmt.com/sitewide/apps/player/embed/rss/'
|
||||||
|
|
||||||
|
_TESTS = [
|
||||||
|
{
|
||||||
|
u'url': u'http://www.cmt.com/videos/garth-brooks/989124/the-call-featuring-trisha-yearwood.jhtml#artist=30061',
|
||||||
|
u'md5': u'e6b7ef3c4c45bbfae88061799bbba6c2',
|
||||||
|
u'info_dict': {
|
||||||
|
u'id': u'989124',
|
||||||
|
u'ext': u'mp4',
|
||||||
|
u'title': u'Garth Brooks - "The Call (featuring Trisha Yearwood)"',
|
||||||
|
u'description': u'Blame It All On My Roots',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]
|
|
@ -129,7 +129,7 @@ def _get_thumbnail_url(self, uri, itemdoc):
|
||||||
def _real_extract(self, url):
|
def _real_extract(self, url):
|
||||||
mobj = re.match(self._VALID_URL, url)
|
mobj = re.match(self._VALID_URL, url)
|
||||||
video_id = mobj.group('videoid')
|
video_id = mobj.group('videoid')
|
||||||
uri = mobj.group('mgid')
|
uri = mobj.groupdict().get('mgid')
|
||||||
if uri is None:
|
if uri is None:
|
||||||
webpage = self._download_webpage(url, video_id)
|
webpage = self._download_webpage(url, video_id)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue