Commit Graph

1114 Commits (c70c418d33cb6b840f27f03ec020577bc86203c0)

Author SHA1 Message Date
Sergey M․ 84213ea8d4
[youtube] Extract chapters from JSON (closes )
Sergey M․ c380cc28c4
[utils] Improve cookie files support
+ Add support for UTF-8 in cookie files
* Skip malformed cookie file entries instead of crashing (invalid entry len, invalid expires at)
Sergey M․ e40c758c2a
[youtube] Improve player id extraction and add tests
Sergey M․ 042b664933
Revert "[utils] Add support for cookies with spaces used instead of tabs"
According to [1] TABs must be used as separators between fields.
Files produces by some tools with spaces as separators are considered
malformed.

1. https://curl.haxx.se/docs/http-cookies.html

This reverts commit cff99c91d1.
Sergey M․ cff99c91d1
[utils] Add support for cookies with spaces used instead of tabs
Sergey M․ ea17979d83
[test_subtitles] Remove obsolete test
Sergey M․ 4e9e1e240d
[test_YoutubeDL] Add tests for (closes )
Sergey M․ e0abaab293
[test_YoutubeDL] Fix get_ids
Sergey M․ 42db58ec73
[utils] Improve str_to_int
Remita Amine 348c6bf1c1 [utils] handle int values passed to str_to_int
Sergey M․ 1ced222120
[utils] Add generic caesar cipher and rot47
InfernalUnderling 9d30c2132a [utils] Handle rd-suffixed day parts in unified_strdate ()
Remita Amine 237513e801 [yahoo] restore support for cbs suffixed URLs
Sergey M․ 824fa51165
[utils] Improve subtitles_filename (closes )
Sergey M․ 28cc2241e4
[utils] Restrict parse_codecs and add theora as known vcodec ()
Sergey M․ 53cd37bac5
[utils] Improve strip_or_none
Sergey M․ 3089bc748c
Fix W504 and disable W503 (closes )
Jakub Wilk fd35d8cdfd [utils] Transliterate "þ" as "th" ()
Despite visual similarity "þ" is unrelated to "p".
It is normally transliterated as "th":

    $ echo þ-Þ | iconv -t ASCII//TRANSLIT
    th-TH
Sergey M․ 5e1271c56d
[utils] Improve int_or_none and float_or_none ()
Sergey M․ d493f15c11
[extractor/common] Improve HTML5 entries extraction and add some realworld tests
Sergey M․ 0dc41787af
[utils] Introduce parse_bitrate
Sergey M․ 2e27421c70
[test_InfoExtractor] Add test for
Sergey M․ 067aa17edf
Start moving to ytdl-org
Sergey M․ fca9baf0da
[test] Fix test_compat_etree_Element
Sergey M․ 399f76870d
[compat] Introduce compat_etree_Element
remitamine e7e62441cd [utils] strip #HttpOnly_ prefix from cookies files ()
Ales Jirasek 22f5f5c6fc
[malltv] Add extractor (closes )
Sergey M․ e118a8794f
[YoutubeDL] Fix typo in string negation implementation and add more tests (closes )
Sergey M․ fad4ceb534
[utils] Fix urljoin for paths with non-http(s) schemes
Remita Amine fc746c3fdd [test/test_InfoExtractor] add test for
Sergey M․ 2cc779f497
[YoutubeDL] Add negation support for string comparisons in format selection expressions (closes , closes )
Sergey M․ a16c7c033a
[test/helper] Add support for maxcount and count collection len test checkers
Sergey M․ 6e29458f24
[test/testdata/cookies/session_cookies.txt] Fix empty expires test data
Sergey M․ 9e02c2c704
[YoutubeDLCookieJar] Add test for keeping session cookies
Sergey M․ 6864855eb1
[tests] Fix invalid escape sequences
Xiao Di Guan 95e42d7336 [extractor/common] Ensure response handle is not prematurely closed before it can be read if it matches expected_status (resolves , closes , resolves )
Sergey M․ 25d110be30
[utils] Properly recognize AV1 codec (closes )
Sergey M․ af03000ad5
[utils] Introduce url_or_none
Sergey M․ e9c671d5e8
[utils] Allow JSONP with empty func name (closes )
Enes 85750f8972 [openload] Improve ext extraction
Remita Amine 3bb3ff38a1 [test_utils] add tests for b836118724
Sergey M․ 6cc622327f
[utils] Introduce merge_dicts
Sergey M․ 1cc47c6674
[utils] Fix match_str for boolean meta fields
Dan Salmon 518d5ba519 Fix some tests
Sergey M․ 47a5cb7734
Generalize XML manifest processing code and improve XSPF parsing (closes )
Ricardo Constantino 96b8b9abae
[extractor/generic] Support relative URIs in _parse_xspf
<location> can have relative URIs, not just absolute.
Philipp Hagemeister f226880c6d [tennistv] Add support for tennistv.com
Sergey M․ b871d7e954
[utils] Add parse_resolution
Sergey M․ befa4708fd
[utils] Fixup some common URL's typos in sanitize_url (closes )
Sergey M․ 6fcc053947
[test_downloader_http] Use try_rm
Sergey M․ f19eae429a
[test_http] Use 127.0.0.1 instead of localhost
Sergey M․ ba515388b8
Introduce --http-chunk-size
squibbysquibby 655c410063 [test_download] Fix download tests for lazy extractors (closes , closes )
Sergey M․ c707b1d828
[test_utils] Add tests for malformed JSON handling in js_to_json
Mike Fährmann c384d537f8 [util] Improve scientific notation handling in js_to_json (closes )
Sergey M․ 9d6ac71c27
[extractor/common] Fix extraction of DASH formats with the same representation id (closes )
Sergey M․ b555ae9bf1
[utils] Add another date format pattern ()
Sergey M․ 78593e294c
Add references for
Petr Novak 41bf647e89
[extractor/common] Add support for DASH manifests with SegmentLists with bare SegmentURLs
Yen Chi Hsuan f58a506044 [test_InfoExtractor] Fix flake8
Sergey M․ d08dcd2dbd
[test_YoutubeDL] Fix typo (closes )
Sergey M․ 181e381fda
[test_InfoExtractor] Add test for
Sergey M․ 056653bbb1
[utils] Add support for zero years and months in parse_duration
Sergey M․ af0f74288d
[YoutubeDL] Improve _default_format_spec (closes )
Sergey M․ cd6fc19ed7
[YoutubeDL] Ignore duplicates in --playlist-items
E.g. '--playlist-items 2-4,3-4,3' should result in '[2,3,4]', not '[2,3,4,3,4,3]'
Sergey M․ 86a15ed64b
[test_YoutubeDL] Add test for
Yen Chi Hsuan 3869028ffb [utils] Use bytes-like objects in dfxp2srt
This fixes handling of non-UTF8 TTML subtitles

Closes 
Yen Chi Hsuan 95f3f7c20a
[utils] Fix unescapeHTML for misformed string like "&a&quot;" ()
Sergey M․ 4850478543
[extractor/common] Add support for float durations in _parse_mpd_formats (closes )
Sergey M․ 5b232f46dc
[utils] Skip missing params in cli_bool_option (closes )
Sergey M․ 8cda78ef72
[test_YoutubeDL] Add a test for
Yen Chi Hsuan 73095e013f
[options] Typo
Yen Chi Hsuan 905d18a7aa
[options] Correctly hide login info from debug outputs ()
Iterate over opts instead of PRIVATE_OPTS for both performance and
correctness
Sergey M․ 0017d9ad6d
[YoutubeDL] Improve default format specification (closes )
Sergey M․ 0396806f67
[YoutubeDL] Do not override id, extractor and extractor_key in url_transparent
All these meta fields must be borrowed from final extractor that actually performs extraction.
This commit fixes extractor id in download archives for url_transparent downloads. Previously, 'transparent' extractor was erroneously
used for extractor archive id, e.g. 'eggheadlesson 4n8ugwwj5t' instead of 'wistia 4n8ugwwj5t'.
Sergey M․ 15da37c7dc
[YoutubeDL] Don't expand env variables in meta fields (closes )
Sergey M․ dee2ff1d81
[test_utils] Fix tests under Windows
Yen Chi Hsuan 609ff8ca19 [utils] Support attributes with no values in get_elements_by_attribute()
Sergey M․ b4a3d461e4
[utils] Handle HTMLParseError in extract_attributes (closes )
Sergey M․ 2ae2ffda5e
[utils] Improve unified_timestamp
Sergey M․ 39d4c1be4d
[youtube] Improve chapters extraction (closes )
Yen Chi Hsuan 5552c9eb0f
[utils] Recognize more patterns in strip_jsonp()
Used in Youku Show pages
Sergey M․ e4a75d7932
[test_youtube_chapters] PEP 8
Sergey M․ a57a8e9918
[test_youtube_chapters] Add coding cookie
Sergey M․ 9cafc3fd8b
[youtube] Extract chapters
Yen Chi Hsuan 0c26548601
[cda] Implement birthday verification (closes )
Sergey M․ deef31955b
[utils] Improve unified_timestamp
Seen at http://zaq1.pl/video/xev0e
Tithen-Firion 9222d94510 [test_utils] Add one more clean_html test
Sergey M․ 30bb6ce1a4
[test_InfoExtractor] Fix test_parse_m3u8_formats
Tithen-Firion 374560f018 [test_download] Fix order when testing file's md5
Sergey M․ ff99fe529e
Don't list master m3u8 playlists in format list (closes )
Sergey M․ 538eee7b6a
Add missing test m3u8 file
Sergey M․ ddd258f922
[test_InfoExtractor] Add m3u8 parsing test for NAME attribute in EXT-X-STREAM-INF tag
Sergey M․ cb2520802d
[extractor/common] Improve m3u8 extraction (closes )
* Extract m3u8 parsing to separate method
* Improve rendition groups extraction
* Build stream name according stream GROUP-ID
* Ignore reference to AUDIO group without URI when stream has no CODECS
+ Add test coverage for parsing m3u8 from , ,  and twitch vod
Remita Amine 5b995f713b [utils] add support for ttml styles
Sergey M․ 51350db5a3
[test_YoutubeDL] Add test for
Sergey M․ 364a69e8c6
[test_download] Fix testing playlists with single video and add comments
Sergey M․ 60e5016199
[test_download] Remove unused import
Sergey M․ c4d6fc6d65
[test_subtitles] Fix raiplay test
Sergey M․ 80b2fdf9ac
[test_download] Match info dicts against tests before matching info file
John Hawkinson 3bef10a50c [test_download] typo in comment
John Hawkinson a84da06f49 [test_download] Improve diagnostic on wrong 'id'
Sergey M․ 942b44a052
[test_compat] Do not use dash in env variables' names
Sergey M․ a426ef6d78
[test_utils] Do not use dash in env variables' names
Sergey M․ 41c5e60dd5
[test_utils] Fix expand_path tests
Sergey M․ 51098426b8
[utils] Introduce expand_path
John Hawkinson c6c22e984d [test_download] Print additional IEs in summary output
Sergey M․ 7f3590c43b
[test_InfoExtractor] Add some realworld tests for _extract_jwplayer_data
Sergey M․ 4b5de77bdb
[utils] Process bytestrings in urljoin (closes )
Yen Chi Hsuan f48409c7ac [utils] Add pkcs1pad
Used in daisuki.net ()
Yen Chi Hsuan c9619f0a17 [aes] Add aes_cbc_encrypt
Used in daisuki.net ()
Sergey M․ d0d9ade486 [YoutubeDL] Add support for string formatting operations in output template
Yen Chi Hsuan 8936f68a0b
[travis] Run tests in parallel
[test_download] Print test names in case of network errors

[test_download] Add comments for nose parameters

[test_download] Modify outtmpl to prevent info JSON filename conflicts

Thanks @jaimeMF for the idea.

[travis] Only download tests should be run in parallel
Sergey M․ 398dea3210
[test_YoutubeDL] Fix invalid escape sequences
Sergey M․ db13c16ef8
[utils] Add support for quoted string literals in --match-filter (closes , closes , closes )
Thomas Christlieb 2af12ad9d2 Introduce get_elements_by_class and get_elements_by_attribute utility functions
Sergey M․ 4195096ea8
[utils] Improve comments processing in js_to_json (closes )
Michal Čihař b3ee552e4b
[utils] Handle single-line comments in js_to_json
Sergey M․ 15846398ca
[utils] Improve parse_duration
Sergey M․ cb655f34fb
[utils] Add more date formats
Remita Amine 7fe1592073 [common] fix dash codec information for mixed videos and fragment url construction()
Sergey M․ b0c65c677f
[utils] Improve urljoin
Sergey M․ e34c33614d
[utils] Add convenience urljoin
Yen Chi Hsuan 582be35847
Update coding style after pycodestyle 2.1.0
In pycodestyle 2.1.0, E305 was introduced, which requires two blank
lines after top level declarations, too.

See https://github.com/PyCQA/pycodestyle/issues/400

See also ; thanks @stepshal for first mentioning this issue and
initial patches
Kacper Michajłow 189935f159 [jsinterp] Fix function calls without arguments.
Sergey M․ 02dc0a36b7
[utils] Introduce base_url
Sergey M․ e5a088dc4b
[utils] Fix --match-filter for int-like strings (closes )
Yen Chi Hsuan 6f20b65e72
[test/test_http] Update tests
After switching to HTML5 extraction helpers in generic.py, the result
info_dict is always a playlist.
Sergey M․ c6eed6b8c0
[utils] Lower priority for rare date formats and add tests
Sergey M․ 3e4185c396
[utils] Use native french month names
Sergey M․ f6717dec8a
[utils] Improve month_by_name and add tests
Sergey M․ 6562d34a8c
[utils] Improve mimetype2ext
Yen Chi Hsuan 70852b47ca
[utils] Recognize units with full names in parse_filename
Reference: https://en.wikipedia.org/wiki/Template:Quantities_of_bytes
Yen Chi Hsuan e4659b4547
[utils] Correct octal/hexadecimal number detection in js_to_json
Sergey M․ 13585d7682
[utils] Recognize lowercase units in parse_filesize
Yen Chi Hsuan 52aa7e7476
[test_verbose_output] Fix tests under Python 3
Remita Amine 5f2c2b7936 [test_utils] add test for option with not str value
Sergey M․ a8795327ca
[utils] Add support TV Parental Guidelines ratings in parse_age_limit
Yen Chi Hsuan 7dc2a74e0a
[utils] Fix unified_timestamp for formats parsed by parsedate_tz()
Sergey M․ b070564efb
[extractor/common] Support multiple properties in _og_search_property
Philipp Hagemeister ce28252c48 [options] Add test that checks that --password=secret is hidden in verbose output
Yen Chi Hsuan 14a28e705b
[test/test_all_urls] Remove *.cc.com tests
Sergey M․ 317f7ab634
[YoutubeDL] Fix format selection with filters (Closes )
Yen Chi Hsuan 0b68de3cc1 Merge pull request from remitamine/html5_media
[extractor/common] add helper method to extract html5 media entries
Yen Chi Hsuan dfe5fa49ae
[compat] Fix compat_shlex_split for non-ASCII input
Closes 
Yen Chi Hsuan 84c237fb8a
[utils] Add get_element_by_class
For 
Remita Amine dfaa86b75e [test_utils] add test for smuggling a smuggled url
Yen Chi Hsuan 40f3666f6b
[test/test_http] Update tests for 38cce791c7
Jaime Marquínez Ferrándiz a9eede3913
[test/compat] compat_shlex_split: test with newlines
Sergey M․ fd7a7498a4
[test_all_urls] PEP 8 and change wording
Matthieu Muffato e3a6747d8f
New test-case: extractor names are supposed to be unique
@dstftw explained in
https://github.com/rg3/youtube-dl/pull/9918#issuecomment-228625878 that
extractor names are supposed to be unique. @dstftw has fixed the two
offending extractors, and here I add a test to ensure this does not
happen in the future.
remitamine 4f3c5e0627 [utils] add helper function for parsing codecs
Sergey M․ 88d9f6c0c4
[utils] Add support for name list in _html_search_meta
Yen Chi Hsuan 1143535d76
[utils] Add urshift()
Used in IqiyiIE and LeIE
Sergey M․ 46f59e89ea
[utils] Add unified_timestamp
Yen Chi Hsuan 47212f7bcb
[utils] Don't transform numbers not starting with a zero
Fix test_Viidea and maybe others
Yen Chi Hsuan 55b2f099c0
[utils] Decode HTML5 entities
Used in test_Vporn_1. Also related to 
bzc6p b96f007eeb Added sanitization support for Hungarian letters Ő and Ű
Yen Chi Hsuan 54fb199681 [test/test_http] Fix getsockname() on Jython
Yen Chi Hsuan 8c32e5dc32 [test/test_utils] Add test for
Yen Chi Hsuan eb7941e3e6
[compat] Fix for XML with <!DOCTYPE> in Python 2.7 and 3.2
Such XML documents cause DeprecationWarning if python is run
with `-W error`
Sergey M․ 46bc9b7d7c
[utils] Allow None in remove_{start,end}
Sergey M․ 364cf465dd
[test_utils] PEP 8
Sergey M․ 89ac4a19e6
[utils] Process non-base 10 integers in js_to_json
felix bd1e484448
[utils] js_to_json: various improvements
now JS object literals like { /* " */ 0: ",]\xaa<\/p>", } will be correctly converted to JSON.
Yen Chi Hsuan 98d560f205
[test/test_socks] Skip SOCKS tests
They occasional trigger errors or blocks
(https://travis-ci.org/rg3/youtube-dl/jobs/130184883)
Yen Chi Hsuan 778a1ccca7
[utils] Add Œ and œ found in French to ACCENT_CHARS
Fixes 
Yen Chi Hsuan c2876afafe
[test/test_socks] Use a different port range
Seems on Travis CI, ports in the original range are often used.
Yen Chi Hsuan e21f17fc86
[test/test_socks] Test with local SOCKS servers
Yen Chi Hsuan edaa23f822
[compat] Rename struct_(un)pack to compat_struct_(un)pack
Yen Chi Hsuan 72f3289ac4
[test/test_socks] Add tests for SOCKS proxies
Yen Chi Hsuan dab0daeeb0
[utils,compat] Move struct_pack and struct_unpack to compat.py
Sergey M․ fad7bbec3a
[test_compat] Remove unused import
Sergey M․ 20cfdcc910
[test_compat] Avoid None values for compat_setenv
Sergey M․ 1292638754
[test_compat] Use compat_setenv
Sergey M․ fe40f9eef2
[compat] Add compat_setenv
Adam Thalhammer 31c4448f6e Instead of replacing accented characters with an underscore when sanitizing file names in restricted mode, replace them with their non-accented equivalents fixes
Adam Thalhammer 79a2e94e79 Instead of replacing accented characters with an underscore when sanitizing file names in restricted mode, replace them with their non-accented equivalents fixes
Sergey M b6c0d4f431 Merge pull request from remitamine/parse_duration
[utils] imporove parse_duration to handle more formats
remitamine acaff49575 [utils] imporove parse_duration to handle more formats
Jaime Marquínez Ferrándiz 1b6182d8f7 [youtube:playlist] Fetch all the videos in a mix (fixes )
Since there doesn't seem to be any indication, it stops when there aren't new videos in the webpage.
Jaime Marquínez Ferrándiz 6a801f4470 [test/InfoExtractors] add test for _download_json
Jaime Marquínez Ferrándiz eb9c3edd5e [test/utils] Add test for date_from_str
Yen Chi Hsuan 6c4c7539f2 [test/helper] Check got values to be strings for md5: fields
Seen in PBSIE tests
Yen Chi Hsuan 92d5477d84 [compat] Handle tuples properly in urlencode()
Fixes 
Sergey M․ e289d6d62c [test_compat] Add tests for compat_urllib_parse_urlencode
Yen Chi Hsuan 81f36eba88 [test/test_utils] Update for escape_url change (again)
Yen Chi Hsuan 2d60465e44 [test/test_utils] Update for escape_url change
Yen Chi Hsuan efbed08dc2 [utils] Encode hostnames before passing to urllib
With IDN (Internationalized Domain Name) and a proxy, non-ascii URLs
are passed down to urllib/urllib2, causing UnicodeEncodeError

Fixes 
Jaime Marquínez Ferrándiz 782b1b5bd1 [utils] lookup_unit_table: Match word boundary instead of end of string
Sergey M․ 4c3b16d5d1 [test_YoutubeDL] Add test for format_id format selection
Sergey M․ c5229f3926 [utils] PEP 8
remitamine 83548824c2 Merge pull request from bpfoley/twitter-thumbnail
[utils] Add extract_attributes for extracting html tag attributes
Sergey M․ fb47597b09 [bbc] Generalize unit table lookup and add parse_count
Sergey M․ e0dccdd398 [test_YoutubeDL] PEP 8
Sergey M․ 5d583bdf6c [YoutubeDL] Improve _format_note
remitamine 1255733945 Merge pull request from remitamine/update_url_params
[utils] add update_url_query function to create or update query string params
remitamine 3201a67f61 [test/test_utils] add more tests for update_url_query
remitamine fb640d0a3d [test/test_utils] add tests for update_url_query
Yen Chi Hsuan 429491f531 [test/http] Fix failure in Jython
make offlinetest passed on the latest Jython hg version with patched
lib-python/2.7/urllib2.py pulled from CPython 2.7.11