Commit Graph

577 Commits (db145ee54a57f5ccc89639de8c589eb111a91b19)

Author SHA1 Message Date
Yen Chi Hsuan 59f898b7a7 [utils] Merge base_n functions
Yen Chi Hsuan 481888294d [utils] Add base36 for use in Vidzi
Yen Chi Hsuan 81bdc8fdf6 [utils] Move base62 to utils
Sergey M․ f160785c5c [utils] Remove AM/PM from unified_strdate patterns
Yen Chi Hsuan b95dc034ca [utils] Implement cache for OnDemandPagedList
remitamine cafcf657a4 add more subtitles mime types to mimetype2ext and fix the platform subtitle extraction
Yen Chi Hsuan c1c05c67ea [utils] Jython support - disable setproctitle() until ctypes is complete
Yen Chi Hsuan 399a76e67b [utils] Jython support: tolerate missing fcntl module
Jaime Marquínez Ferrándiz 765ac263db [utils] mimetype2ext: return 'm4a' for 'audio/mp4' (fixes )
The youtube extractor was using 'mp4' for them, therefore filters like 'bestaudio[ext=m4a]' stopped working (94278f7202 broke it).
Yen Chi Hsuan 5bc880b988 [utils] Add OHDave's RSA encryption function
Sergey M․ 611c1dd96e [refactor] Single quotes consistency
Sergey M․ d800609c62 [refactor] Do not specify redundant None as second argument in dict.get()
Sergey M․ 9c7b38981c [utils] Bump Firefox version in User-Agent
Old version number causes Youtube not to serve some formats in ytplayer.config
Sergey M․ 8411229bd5 [utils] Allow dot in strip_jsonp
Sergey M․ 86296ad2cd [utils] Add ability to control skipping false values in dict_get
Sergey M․ cbecc9b903 [utils] Add dict_get convenience method
Jaime Marquínez Ferrándiz 87de7069b9 [utils] dfxp2srt: make TTMLPElementParser inherit from object
For consistency between python 2 and 3.
remitamine 2b14cb566f [utils] fix dfxp2srt text extraction(fixes )
Yen Chi Hsuan a0d8d704df [utils] Reorder items in mimetype2ext alphabetically
Yen Chi Hsuan f6861ec96f [utils] Add more items to mimetype2ext ()
These are used in Youtube formats
remitamine 6ec6cb4e95 Revert "fix typos"
This reverts commit 36a0e46c39.
remitamine 36a0e46c39 fix typos
Jakub Wilk dfb1b1468c Fix typos
Closes .
Sergey M․ a7aaa39863 [utils] Extract known extensions for reuse
Yen Chi Hsuan c047270c02 [utils] Remove Content-encoding from headers after decompression
With cn_verification_proxy, our http_response() is called twice, one from
PerRequestProxyHandler.proxy_open() and another from normal
YoutubeDL.urlopen(). As a result, for proxies honoring Accept-Encoding, the
following bug occurs:

$ youtube-dl -vs --cn-verification-proxy https://secure.uku.im:993 "test:letv"
[debug] System config: []
[debug] User config: []
[debug] Command-line args: ['-vs', '--cn-verification-proxy', 'https://secure.uku.im:993', 'test:letv']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2015.12.23
[debug] Git HEAD: 97f18fa
[debug] Python version 3.5.1 - Linux-4.3.3-1-ARCH-x86_64-with-arch-Arch-Linux
[debug] exe versions: ffmpeg 2.8.4, ffprobe 2.8.4, rtmpdump 2.4
[debug] Proxy map: {}
[TestURL] Test URL: http://www.letv.com/ptv/vplay/22005890.html
[Letv] 22005890: Downloading webpage
[Letv] 22005890: Downloading playJson data
ERROR: Unable to download JSON metadata: Not a gzipped file (b'{"') (caused by OSError('Not a gzipped file (b\'{"\')',)); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
  File "/home/yen/Executables/Multimedia/youtube-dl/youtube_dl/extractor/common.py", line 330, in _request_webpage
    return self._downloader.urlopen(url_or_request)
  File "/home/yen/Executables/Multimedia/youtube-dl/youtube_dl/YoutubeDL.py", line 1886, in urlopen
    return self._opener.open(req, timeout=self._socket_timeout)
  File "/usr/lib/python3.5/urllib/request.py", line 471, in open
    response = meth(req, response)
  File "/home/yen/Executables/Multimedia/youtube-dl/youtube_dl/utils.py", line 773, in http_response
    raise original_ioerror
  File "/home/yen/Executables/Multimedia/youtube-dl/youtube_dl/utils.py", line 761, in http_response
    uncompressed = io.BytesIO(gz.read())
  File "/usr/lib/python3.5/gzip.py", line 274, in read
    return self._buffer.read(size)
  File "/usr/lib/python3.5/gzip.py", line 461, in read
    if not self._read_gzip_header():
  File "/usr/lib/python3.5/gzip.py", line 409, in _read_gzip_header
    raise OSError('Not a gzipped file (%r)' % magic)
Sergey M․ 9b9c5355e4 Rename error_to_str to error_to_compat_str
Sergey M․ 8e60dc7526 [utils] Add encode_compat_str
Sergey M․ fdae235858 [utils] Add error_to_str
Yen Chi Hsuan db2fe38b55 [utils] Support alternative timestamp format in TTML
Fixes 
Yen Chi Hsuan d631d5f9f2 [utils] Fix TTML conversion
Tolerate invalid timestamps (closes )
Sergey M․ 31b2051e21 [utils] Add remove_quotes
Yen Chi Hsuan 992fc9d6e1 [utils] Refactor handle_youtubedl_headers for future extension
Yen Chi Hsuan 0424ec307b [utils] Correct docstring of YoutubeDLHandler
Yen Chi Hsuan 87f0e62d94 [utils] Separate codes for handling Youtubedl-* headers
Sergey M․ 67dda51722 Rename compat_urllib_request_Request to sanitized_Request and move to utils
Sergey M․ 9cb9a5df77 [utils] Check ext with trailing slash against the list of known extensions
Sergey M․ 3e12bc583a [utils] Improve determine_ext (Closes )
Sergey M․ 7e1f5447e7 [utils] Improve encode_dict
Sergey M․ 7a3f0c00ad [utils] Style
Sergey M․ 7aefc49c40 [utils] Skip invalid/non HTML entities (Closes )
Jaime Marquínez Ferrándiz 6a75040278 [utils] unified_strdate: Return None if the date format can't be recognized (fixes )
This issue was introduced with ae12bc3ebb, it returned 'None'.
Sergey M․ c90d16cf36 [utils:sanitize_path] Disallow trailing whitespace in path segment (Closes )
Sergey M 30eecc6a04 Merge pull request from jaimeMF/xml_attrib_unicode
Use a wrapper around xml.etree.ElementTree.fromstring in python 2.x (…
Sergey M․ ae12bc3ebb [utils] Make unified_strdate always return unicode string
Sergey M․ 578c074575 [utils] Support list of xpath in xpath_element
Sergey M․ 52c3a6e49d [utils] Improve parse_iso8601
Jaime Marquínez Ferrándiz f78546272c [compat] compat_etree_fromstring: also decode the text attribute
Deletes parse_xml from utils, because it also does it.
Jaime Marquínez Ferrándiz 36e6f62cd0 Use a wrapper around xml.etree.ElementTree.fromstring in python 2.x ()
Attributes aren't unicode objects, so they couldn't be directly used in info_dict fields (for example '--write-description' doesn't work with bytes).
Sergey M․ d01949dc89 [utils:js_to_json] Fix bad escape in double quoted strings
Yen Chi Hsuan 1e399778ee [letv] Fix extraction
Using data URIs for passing the decrypted M3U8 manifest, which is
supported by ffmpeg only.
Sergey M․ af98f8ff37 [utils] Return default on fail in int_or_none
Sergey M․ caf80631f0 [utils] Do not fail in float_or_none on non-numeric data
Sergey M․ 1812afb7b3 [utils] Do not fail in int_or_none on non-numeric data (Closes )
Sergey M․ 5a1a2e9454 [utils] Fix kwargs on old python 2 (Closes )
Sergey M․ e28034c5ac [utils] Comment cookie processing until result from travis and some more testing
Sergey M․ 266e466ee4 [utils] Simplify cookie processor
Sergey M․ 1639282434 [utils] Add encode_dict
Sergey M․ ad72917274 [utils] Add issue URL in comment for
Sergey M․ a6420bf50c [utils] Add cookie processor for cookie correction (Closes )
Sergey M․ 66e289bab4 [utils] Generalize cli option converters
Sergey M․ 8e636da499 [utils] Improve xpath_text
Sergey M․ 5d2354f177 [utils] Relax attribute key assert
Sergey M․ a41fb80ce1 [utils] Add xpath_element and xpath_attr
Sergey M․ e5e78797e6 [utils] Strict HTTP responses (Closes )
Sergey M․ 5a4d9ddb21 [utils] Percent-encode redirect URL of Location header (Closes )
Sergey M․ 51f267d9d4 [YoutubeDL:utils] Move percent encode non-ASCII URLs workaround to http_request and simplify (Closes )
Sergey M․ ee114368ad [utils] Make value optional for find_xpath_attr
This allows selecting particular attributes by name but without specifying the value and similar to xpath syntax `[@attrib]`
Raphael Michel 2c7ed24796 Remove redundant (and wrong) class parameters
Yen Chi Hsuan 9c29bc69f7 [utils] Improve parse_duration
Now dots are parsed. For example '87 Min.'
Sergey M․ bf42a9906d [utils] Add default value for xpath_text
Yen Chi Hsuan 4eb10f6621 [utils] Add ISO3166Utils
Yen Chi Hsuan 4e33577173 [utils] Support ttaf1 namespace in TTML
It's found in bbc.co.uk. See 
Yen Chi Hsuan 396726244a [utils/ffmpeg] Move ISO 639 related codes to utils
Yen Chi Hsuan ecee572411 [yahoo] Add support for closed captions (closes )
Yen Chi Hsuan 1b0427e6c4 [utils] Support TTML without default namespace
In a strict sense such TTML is invalid, but Yahoo uses it.
Yen Chi Hsuan c1c924abfe [utils,common] Merge format_srt_time and _subtitles_timecode
format_srt_time uses a comma as the delimiter between seconds and
milliseconds while _subtitles_timecode uses a dot. All .srt examples I
found on the Internet uses a comma, so I use a comma in the merged
version. See http://matroska.org/technical/specs/subtitles/srt.html and
http://devel.aegisub.org/wiki/SubtitleFormats/SRT
Yen Chi Hsuan 7dff03636a [utils] Support 'dur' field in TTML
Yen Chi Hsuan d39e0f05db [utils] Remove sanitize_url_path_consecutive_slashes()
This function is used only in SohuIE, which is updated to use a new
extraction logic.
Jaime Marquínez Ferrándiz 541168039d [utils] get_exe_version: encode executable name (fixes )
It failed in python 2.x when $PATH contains a directory with non-ascii characters.
Yen Chi Hsuan 0fe2ff78e6 [NBC] Enhance embedURL extraction (closes )
Sergey M․ b3ed15b760 [utils] Add replace_extension
Sergey M․ e65e4c8874 [utils] Improve prepend_extension
Now `ext` is appended to filename if real extension != expected extension.
Sergey M․ c86b61428b [utils] Fix another old python 2.6 kwargs issue (Closes )
Sergey M. 40b96352c9 Merge pull request from jaimeMF/remove-format-limit
Remove the --max-quality option
Sergey M․ aa49acd15a [utils] Add `get_subprocess_encoding` and filename/argument decode counterparts
Yen Chi Hsuan bf6427d2fb [ffmpeg] Add dfxp (TTML) subtitles support (, )
Jaime Marquínez Ferrándiz 9f3fa89f7c Remove the --max-quality option
It doesn't work well with 'bestvideo' and 'bestaudio' because they are usually before the max quality.
Format filters should be used instead, they are more flexible and don't require the requested quality to exist for each video.
Jaime Marquínez Ferrándiz 08f2a92c9c InfoExtractor._search_regex: Suggest updating when the regex is not found (suggested in )
Reuse the same message from ExtractorError
Sergey M․ be531ef1ec [utils] Fix splitunc deprecation warning
Yen Chi Hsuan 0a1603634b [utils] Remove url_infer_protocol
Yen Chi Hsuan 418c5cc3fc [udn] Add new extractor
Sergey M․ 15ac8413c7 [utils] Avoid treating `*-%Y` date template as UTC offset
Sergey M․ 79c21abba7 [utils] Add one more template to unified_strdate
Sergey M․ ba9e68f402 [utils] Drop trailing comma before closing brace
Jaime Marquínez Ferrándiz 70a1165b32 Don't use bare 'except:'
They catch any exception, including KeyboardInterrupt, we don't want to catch it.
Naglis Jonaitis 91757b0f37 [utils] Escape all HTML entities written in hexadecimal form
Sergey M․ 92a4793b3c [utils] Place sanitize url function near other sanitizing functions
Sergey M․ dc03a42537 Merge branch 'sohu_fix' of https://github.com/yan12125/youtube-dl into yan12125-sohu_fix
Sergey M․ 2ebfeacabc [utils] Keep dot and dotdot unmodified (Closes )
Sergey M․ f18ef2d144 [utils] Disallow trailing dot in sanitize_path for a path part
Sergey M․ d55de57b67 [utils] Fix sanitize_open
Sergey M․ a2aaf4dbc6 [utils] Add sanitize_path
Yen Chi Hsuan 55969016e9 [utils] Add a function to sanitize consecutive slashes in URLs
Philipp Hagemeister 2461f79d2a [utils] Correct per-request proxy handling
Philipp Hagemeister 91410c9bfa [letv] Add --cn-verification-proxy (Closes )
Philipp Hagemeister a7440261c5 [utils] Streap leading dots
Fixes , closes 
Jaime Marquínez Ferrándiz 003c69a84b Use shutil.get_terminal_size for getting the terminal width if it's available (python >= 3.3)
Philipp Hagemeister 3e675fabe0 [airmozilla] Be more tolerant when nonessential items are missing ()
Philipp Hagemeister 183139340b [utils] Bump our user agent
Philipp Hagemeister 5a42414b9c [utils] Prevent hyphen at beginning of filename (Fixes )
Philipp Hagemeister 8fb3ac3649 PEP8: W503
Philipp Hagemeister c460bdd56b [sandia] Add new extractor ()
Philipp Hagemeister d305dd73a3 [utils] Fix js_to_json
Previously, the runtime could be atrocious for longer inputs.
Yen Chi Hsuan 7105440cec [Yam] Add new extractor
Philipp Hagemeister 08b38d5401 [camdemy] Simplify and make more robust ()
Do not throw errors if view count or upload date extraction fails.
Dispose of re.MULTILINE, which had absolutely no effect without any ^ or $ in sight.
Follow PEP8 naming conventions.
Philipp Hagemeister 347de4931c [YoutubeDL] Add generic video filtering (Fixes )
This functionality is intended to eventually encompass the current format filtering.
Philipp Hagemeister 9bb8e0a3f9 [wsj] Add new extractor (Fixes )
Philipp Hagemeister 8f4b58d70e [ntvde] Add new extractor (Fixes )
Philipp Hagemeister 8f9312c387 Appease pyflakes8-3
Jaime Marquínez Ferrándiz 4f264c02c7 [utils] YoutubeDLHTTPSHandler.https_open: pass all required arguments to do_open
With this change the '--no-check-certificate' works again ().
Philipp Hagemeister cfb56d1af3 Add --list-thumbnails
Jaime Marquínez Ferrándiz 3fcfb8e9fa [utils] YoutubeDLHandler: don't use 'Youtubedl-user-agent' for overriding the default user agent
Setting the 'User-Agent' header is enough
Philipp Hagemeister a055469faf [downloader] Improve downloader selection
Philipp Hagemeister aa42e87340 [utils] Catch strange Windows errors (Closes )
Philipp Hagemeister d79323136f [utils] Simplify HTTPS socket creation
We were duplicating (bad) code and doing crazy things with SSL.
Just use TLSv1 across the board, and do with one implementation of HTTPSConnection.connect.
Fixes .
Philipp Hagemeister ba655a0e4c Merge remote-tracking branch 'derrotebaron/master'
Philipp Hagemeister 61ca9a80b3 [generic] Add support for BOMs (Fixes )
Philipp Hagemeister b55ee18ff3 [hearthisat] Add support for more high-quality download links
Philipp Hagemeister 9d22a7dfb0 [fourtube] Fix extraction
Philipp Hagemeister be5f2c192c [ssl] Correct connect creation
We want to authenticate the server, see https://docs.python.org/dev/library/ssl.html#ssl.Purpose.SERVER_AUTH .
Naglis Jonaitis a69801e2c6 [utils] Add additional format to unified_strdate
Johannes Knoedtel 3d5f7a3947 [utils] Prevent override of custom headers.
The dict of headers of request objects in urllib has its keys always
capitalized.

This causes the lookup to fail and overwrite the header. If for example
a Extractor tries to add a "User-Agent" header the internal
representation in the request object is "User-agent". The header is
therefore clobbered by the "User-Agent" in std_headers, because the
strings are not equal.
Sergey M․ 227d4822ff [utils] Disallow non string types in parse_duration (Closes )
Philipp Hagemeister 2aeb06d6dc [utils] Improve colon handling (Fixes )
Philipp Hagemeister c5a59d9391 [utils] Fix call to _create_http_connection
Avoid confusion over args/kwargs.
Philipp Hagemeister be4a824d74 Add new option --source-address
Closes , fixes , fixes , fixes , closes .
Sergey M․ 776dc3992a [utils] Clarify more day-month-first ambiguous formats
Philipp Hagemeister dd622d7c4e [netzkino] Add new extractor (Fixes )
Philipp Hagemeister 0590062925 Respect age_limit when listing extractors (Fixes )
Jaime Marquínez Ferrándiz 1d2d0e3ff2 utils: Remove blank line at the end of file
Philipp Hagemeister 2ccd1b10e5 [soulanime] Fix under Python 3
Philipp Hagemeister 416c7fcbce Add documentation about supported sites (Fixes )
Philipp Hagemeister 7af808a5ef Improve code style
Philipp Hagemeister cae97f6521 Improve and test ffmpeg version detection
Philipp Hagemeister 2128b696b8 [utils] Do not make an exception for SSLv3
SSLv3 is terminally vulnerable to POODLE; web browsers are currently deprecating/removing it.
Closes , fixes 
Philipp Hagemeister a23669220a [utils] Make ssl work on Python 2.7.8
Jaime Marquínez Ferrándiz 293f0f39ce [utils] make_HTTPS_handler: Remove try/except block that would always raise an exception
This code is only run for Python < 3.4, where context.load_default_certs doesn't exist
Jaime Marquínez Ferrándiz 0db261ba56 [utils] make_HTTPS_handler: Use ssl.create_default_context in Python 2.7.9
The new features in the ssl module have been backported from 3.4, see https://docs.python.org/dev/whatsnew/2.7.html#pep-466-network-security-enhancements-for-python-2-7
Philipp Hagemeister f8780e6d11 Merge remote-tracking branch 'grompe/patch-1'
Philipp Hagemeister e2f89ec7aa Revert "[utils] Work around PyPy stupidity with Windows DLLs (Fixes )"
This reverts commit 16040f46d6.
Philipp Hagemeister 16040f46d6 [utils] Work around PyPy stupidity with Windows DLLs (Fixes )
Philipp Hagemeister 42bdd9d051 [cinchcast] Add new extractor (Fixes )
Philipp Hagemeister f8795e102b [utils] Add "yesterday" as a date keyword
Jaime Marquínez Ferrándiz 83e865a370 Fix PEP8 issue E713
Grom PE 6ac4e8065a Fix utils.py for PyPy on Windows
The line
```python
from __future__ import unicode_literals
```
introduced in commit [ecc0c5ee01](ecc0c5ee01) broke youtube-dl for PyPy on Windows, making it unable to locate WinAPI functions.
Error: "TypeError: function name must be a string or integer"

Adding "b" prefix to strings with WinAPI function names fixes it.
Philipp Hagemeister 5f9b83944d [ffmpeg] Improve version check and call it from hls (Fixes )
Philipp Hagemeister e8df5cee12 [minhateca] Fix duration parsing
Philipp Hagemeister 4349c07dd7 [minhateca] Add extractor (Fixes )
Philipp Hagemeister ab4ee31eb1 [utils] remove useless u prefix
Philipp Hagemeister be64b5b098 [xminus] Simplify and extend ()
Philipp Hagemeister b74e86f48a Fix all PEP8 issues except E501
Jouke Waleson 5f6a1245ff PEP8 applied
Philipp Hagemeister 7d4111ed14 Provide guidance when called with a YouTube ID starting with a dash.
Reported at https://news.ycombinator.com/item?id=8648121
Philipp Hagemeister 732ea2f09b [utils] Improve update on error message somewhat
We still may want to implement a bulletproof check for the current version, and a better place to add this message so that it works for all kind of other errors too.
Ivan Kozik 1394646a0a Fix "ERROR: Cannot write metadata to JSON file" on Windows
Fixes 
Ivan Kozik 61ee5aeb73 Fix UnicodeEncodeError with --write-info-json on Python 2.7 + Windows
Fixes 
Jaime Marquínez Ferrándiz 92120217eb [cache] Fix writing to paths with unicode characters
* Use "compat_getenv"
* "write_json_file" now expects the filename to be a string
Philipp Hagemeister 28e614de5c [utils] Remove stray u'
Philipp Hagemeister 6a68bb574a [eporner] Fix duration (Closes )
Jaime Marquínez Ferrándiz ec5f601670 [utils] Fix "write_json_file" for unicode names in python 2.x (fixes )
Philipp Hagemeister eb4157fd17 [utils] Fix struct.pack call on very old Python versions ()
Philipp Hagemeister 609a61e3e6 [npo] Improve npo.nl (Fixes )
Philipp Hagemeister 4c0924bb24 [utils] Fix intlist_to_bytes in Python 2 ()
Philipp Hagemeister 4164f0117e [utils] Remove unused import
Philipp Hagemeister 3828505646 [utils] Use a regexp instead of HTMLParser for get_element_by_attribute
Philipp Hagemeister 12ea2f30cf [utils] Remove unused get_meta_content function
Jaime Marquínez Ferrándiz 4f195f55f0 Do not override stdlib html parser 'locatestarttagend' regex (fixes )
'<a href="foo" ><img src="bar" / ></a>' wouldn't be parsed right (the problem is '/ >', '/>' worked fine).
We need to change it in python 2.6 (for example the description of youtube videos wouldn't be extracted).
Philipp Hagemeister ecc0c5ee01 [utils] Modernize
Philipp Hagemeister baa708036c [compat] Fix imports
Philipp Hagemeister 8c25f81bee [util] Move compatibility functions out of util
utils is large enough without these compatibility functions.

Everything that is present in newer versions of Python (i.e. with dev Python it's just an import) goes into compat.py .
Everything else (i.e. youtube-dl-specific helpers) goes into utils.py .
Philipp Hagemeister 9580711841 [ffmpeg] Move version detection to utils
Philipp Hagemeister 6ad4013d40 [drtv] Allow fractional timestamps (Fixes )
Philipp Hagemeister 488447455d [ffmpeg] Warn if ffmpeg/avconv version is too old (Fixes )
Sergey M․ f889cea109 Merge branch 'compat-getenv-and-expanduser' of https://github.com/dstftw/youtube-dl into dstftw-compat-getenv-and-expanduser
Conflicts:
	test/test_utils.py
	youtube_dl/__init__.py
Naglis Jonaitis e9be9a6acd [utils] Add additional format to unified_strdate
Philipp Hagemeister d838b1bd4a [utils] Default age_limit to None
If we can't parse it, it means we don't have any information, not that the content is unrestricted.
Sergey M․ 146c80e256 [utils] Add parse_age_limit
Sergey M․ fc66e4a0d5 [utils] Add posix expanduser implementation and clarify the original source
Philipp Hagemeister e7b6d12254 [utils] Improve and test js_to_json
Philipp Hagemeister 410f3e73ab [utils] Fix js_to_json
Sergey M․ 4644ac5527 [core] Decode environment variables with filesystem encoding (Fixes , Fixes , Fixes )
Introduces compat versions of os.getenv and os.path.expanduser
Philipp Hagemeister 99b67fecc5 [arte] Fix upload date extraction
Philipp Hagemeister 989b4b2b86 [utils:YoutubeDLHandler] Work around brain-dead Python 2.6 httplib
In 2.6, the httplib sends fragments! Remove those (fixes generic_26 on 2.6).
Philipp Hagemeister 9c44d2429b [vimeo:likes] Support large like lists (Fixes )
Philipp Hagemeister 0003a5c416 Merge remote-tracking branch 'dstftw/escape-non-ascii-in-urls'
Conflicts:
	test/test_utils.py
Philipp Hagemeister a020a0dc20 [facebook] Fix support for untitled videos (Fixes )
Sergey M․ 984e8e14ea [utils] Remove debug garbage
Sergey M․ d05cfe0600 [YoutubeDL/utils] Clarify rationale for URL escaping in comment, move escape routines to utils and add some tests
Philipp Hagemeister d74bebd502 [utils] Apply 2.6 xpath craziness
This fixes ARD on 2.6
Philipp Hagemeister bf0ff93277 [ard] Make more robust against missing thumbnails
I cannot reproduce this error, it's from travis.