projects
/
youtube-dl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[vk.com] Added newline at the end of the file.
[youtube-dl]
/
youtube_dl
/
YoutubeDL.py
diff --git
a/youtube_dl/YoutubeDL.py
b/youtube_dl/YoutubeDL.py
index ecf426e3711c93bce3da24f4aa5b3dd93bcfaafe..5c875b4972f61e2ce925c40d13a94fa53fb059d3 100755
(executable)
--- a/
youtube_dl/YoutubeDL.py
+++ b/
youtube_dl/YoutubeDL.py
@@
-22,13
+22,15
@@
import traceback
if os.name == 'nt':
import ctypes
if os.name == 'nt':
import ctypes
-from .
utils
import (
+from .
compat
import (
compat_cookiejar,
compat_expanduser,
compat_http_client,
compat_str,
compat_urllib_error,
compat_urllib_request,
compat_cookiejar,
compat_expanduser,
compat_http_client,
compat_str,
compat_urllib_error,
compat_urllib_request,
+)
+from .utils import (
escape_url,
ContentTooShortError,
date_from_str,
escape_url,
ContentTooShortError,
date_from_str,
@@
-62,6
+64,7
@@
from .utils import (
from .cache import Cache
from .extractor import get_info_extractor, gen_extractors
from .downloader import get_suitable_downloader
from .cache import Cache
from .extractor import get_info_extractor, gen_extractors
from .downloader import get_suitable_downloader
+from .downloader.rtmp import rtmpdump_version
from .postprocessor import FFmpegMergerPP, FFmpegPostProcessor
from .version import __version__
from .postprocessor import FFmpegMergerPP, FFmpegPostProcessor
from .version import __version__
@@
-189,7
+192,7
@@
class YoutubeDL(object):
_num_downloads = None
_screen_file = None
_num_downloads = None
_screen_file = None
- def __init__(self, params=None):
+ def __init__(self, params=None
, auto_init=True
):
"""Create a FileDownloader object with the given options."""
if params is None:
params = {}
"""Create a FileDownloader object with the given options."""
if params is None:
params = {}
@@
-246,6
+249,10
@@
class YoutubeDL(object):
self._setup_opener()
self._setup_opener()
+ if auto_init:
+ self.print_debug_header()
+ self.add_default_info_extractors()
+
def add_info_extractor(self, ie):
"""Add an InfoExtractor object to the end of the list."""
self._ies.append(ie)
def add_info_extractor(self, ie):
"""Add an InfoExtractor object to the end of the list."""
self._ies.append(ie)
@@
-651,6
+658,8
@@
class YoutubeDL(object):
extra = {
'n_entries': n_entries,
'playlist': playlist,
extra = {
'n_entries': n_entries,
'playlist': playlist,
+ 'playlist_id': ie_result.get('id'),
+ 'playlist_title': ie_result.get('title'),
'playlist_index': i + playliststart,
'extractor': ie_result['extractor'],
'webpage_url': ie_result['webpage_url'],
'playlist_index': i + playliststart,
'extractor': ie_result['extractor'],
'webpage_url': ie_result['webpage_url'],
@@
-829,6
+838,13
@@
class YoutubeDL(object):
formats_info = (self.select_format(format_1, formats),
self.select_format(format_2, formats))
if all(formats_info):
formats_info = (self.select_format(format_1, formats),
self.select_format(format_2, formats))
if all(formats_info):
+ # The first format must contain the video and the
+ # second the audio
+ if formats_info[0].get('vcodec') == 'none':
+ self.report_error('The first format must '
+ 'contain the video, try using '
+ '"-f %s+%s"' % (format_2, format_1))
+ return
selected_format = {
'requested_formats': formats_info,
'format': rf,
selected_format = {
'requested_formats': formats_info,
'format': rf,
@@
-1026,7
+1042,7
@@
class YoutubeDL(object):
downloaded = []
success = True
merger = FFmpegMergerPP(self, not self.params.get('keepvideo'))
downloaded = []
success = True
merger = FFmpegMergerPP(self, not self.params.get('keepvideo'))
- if not merger._
get_executable()
:
+ if not merger._
executable
:
postprocessors = []
self.report_warning('You have requested multiple '
'formats but ffmpeg or avconv are not installed.'
postprocessors = []
self.report_warning('You have requested multiple '
'formats but ffmpeg or avconv are not installed.'
@@
-1207,6
+1223,8
@@
class YoutubeDL(object):
res += 'video@'
if fdict.get('vbr') is not None:
res += '%4dk' % fdict['vbr']
res += 'video@'
if fdict.get('vbr') is not None:
res += '%4dk' % fdict['vbr']
+ if fdict.get('fps') is not None:
+ res += ', %sfps' % fdict['fps']
if fdict.get('acodec') is not None:
if res:
res += ', '
if fdict.get('acodec') is not None:
if res:
res += ', '
@@
-1288,11
+1306,13
@@
class YoutubeDL(object):
self.report_warning(
'Your Python is broken! Update to a newer and supported version')
self.report_warning(
'Your Python is broken! Update to a newer and supported version')
+ stdout_encoding = getattr(
+ sys.stdout, 'encoding', 'missing (%s)' % type(sys.stdout).__name__)
encoding_str = (
'[debug] Encodings: locale %s, fs %s, out %s, pref %s\n' % (
locale.getpreferredencoding(),
sys.getfilesystemencoding(),
encoding_str = (
'[debug] Encodings: locale %s, fs %s, out %s, pref %s\n' % (
locale.getpreferredencoding(),
sys.getfilesystemencoding(),
- s
ys.stdout.
encoding,
+ s
tdout_
encoding,
self.get_encoding()))
write_string(encoding_str, encoding=None)
self.get_encoding()))
write_string(encoding_str, encoding=None)
@@
-1315,6
+1335,7
@@
class YoutubeDL(object):
platform.python_version(), platform_name()))
exe_versions = FFmpegPostProcessor.get_versions()
platform.python_version(), platform_name()))
exe_versions = FFmpegPostProcessor.get_versions()
+ exe_versions['rtmpdump'] = rtmpdump_version()
exe_str = ', '.join(
'%s %s' % (exe, v)
for exe, v in sorted(exe_versions.items())
exe_str = ', '.join(
'%s %s' % (exe, v)
for exe, v in sorted(exe_versions.items())