Remita Amine
b12cf31bb1
[cbc] add new extractor for olympics.cbc.ca( closes #15535 )
2018-02-19 09:02:23 +01:00
Sergey M․
65220c3bd6
Add support for IronPython
2018-01-28 05:48:18 +07:00
Mike Fährmann
c384d537f8
[util] Improve scientific notation handling in js_to_json ( closes #14789 )
2018-01-20 22:54:21 +07:00
Philipp Hagemeister
d7cd9a9e84
[utils] Fix youtube-dl under PyPy3 on Windows
2018-01-01 22:48:27 +07:00
Sergey M․
b555ae9bf1
[utils] Add another date format pattern ( #14999 )
2017-12-16 21:56:16 +07:00
Remita Amine
d4f05d4731
[utils] add sami mimetype to mimetype2ext
2017-12-03 00:04:43 +01:00
Remita Amine
ffe6979ef9
[utils] add hvc1 codec code to parse_codecs
2017-11-27 16:55:27 +01:00
Sergey M․
056653bbb1
[utils] Add support for zero years and months in parse_duration
2017-10-29 07:04:48 +07:00
Sergey M․
6be08ce602
[utils] Use in OnDemandPagedList by default
...
Not using cache results in redundant network I/O due to downloading the same pages while using --playlist-items n-m
2017-10-06 23:13:53 +07:00
Sergey M․
4c54b89e03
Hide experimental phantomjs wrapper
2017-09-24 00:08:27 +07:00
Yen Chi Hsuan
4ed2d7b7d1
Fix flake8 issues after #14225
2017-09-17 13:53:04 +08:00
Yen Chi Hsuan
3869028ffb
[utils] Use bytes-like objects in dfxp2srt
...
This fixes handling of non-UTF8 TTML subtitles
Closes #14191
2017-09-16 12:18:38 +08:00
Yen Chi Hsuan
a88d461dff
Merge pull request #14225 from Tithen-Firion/openload-phantomjs-method
...
Openload phantomjs method
2017-09-16 02:28:28 +08:00
Sergey M․
c7e327c4d4
[utils] Introduce bool_or_none
2017-09-10 19:08:39 +07:00
Yen Chi Hsuan
95f3f7c20a
[utils] Fix unescapeHTML for misformed string like "&a"" ( #13935 )
2017-08-19 21:40:53 +08:00
Sergey M․
5b232f46dc
[utils] Skip missing params in cli_bool_option ( closes #13865 )
2017-08-09 22:28:19 +07:00
Tithen-Firion
feee8d32e4
[phantomjs] add exe version to debug info
2017-08-03 14:17:25 +02:00
Yen Chi Hsuan
609ff8ca19
[utils] Support attributes with no values in get_elements_by_attribute()
2017-07-05 23:27:12 +08:00
Sergey M․
aefce8e6dc
[utils] Use compat_shlex_quote in shell_quote
2017-06-17 23:48:58 +07:00
Sergey M․
b4a3d461e4
[utils] Handle HTMLParseError in extract_attributes ( closes #13349 )
2017-06-12 01:52:24 +07:00
Sergey M․
2ae2ffda5e
[utils] Improve unified_timestamp
2017-06-11 21:27:22 +07:00
Yen Chi Hsuan
b407d8533d
[utils] Drop an compatibility wrapper for Python < 2.6
...
addinfourl.getcode is added since Python 2.6a1. As youtube-dl now
requires 2.6+, this is no longer necessary.
See 9b0d46db11
2017-05-27 23:05:02 +08:00
Yen Chi Hsuan
5552c9eb0f
[utils] Recognize more patterns in strip_jsonp()
...
Used in Youku Show pages
2017-05-26 21:58:18 +08:00
Sergey M․
60f5c9fb19
[utils] Recognize more audio codecs ( #13081 )
2017-05-14 12:33:33 +07:00
Yen Chi Hsuan
10c87c151b
[utils] Rename try_multipart_encode to _multipart_encode_impl
...
To state that this is an internal function and people should be careful
when using it outside youtube-dl.
2017-05-06 19:06:18 +08:00
Yen Chi Hsuan
b2ad479d17
[utils] Fix multipart_encode for Python < 3.5
2017-05-05 20:51:59 +08:00
Tithen-Firion
c89267d31a
Merge branch 'master' into openload-phantomjs-method
2017-05-04 11:00:06 +02:00
Yen Chi Hsuan
0c26548601
[cda] Implement birthday verification ( closes #12789 )
2017-05-04 16:26:17 +08:00
Sergey M․
deef31955b
[utils] Improve unified_timestamp
...
Seen at http://zaq1.pl/video/xev0e
2017-04-30 21:45:53 +07:00
Remita Amine
98ce1a3fd3
[utils] add video/mp2t to mimetype2ext
2017-04-30 09:03:10 +01:00
Tithen-Firion
98f9d87381
[phantomjs] Add required version checking
2017-04-29 12:41:42 +02:00
Tithen-Firion
edd9221cd2
[utils] Fix inconsistent output of clean_html
...
`\s` in Python 2.x doesn't match unicode whitespace characters by
default
2017-04-28 17:34:27 +02:00
Tithen-Firion
40e41780f1
[phantomjs] add cookie support
2017-04-25 15:12:54 +02:00
Tithen-Firion
da57ebaf84
[openload] separate PhantomJS code from extractor
2017-04-25 01:06:14 +02:00
Remita Amine
5b995f713b
[utils] add support for ttml styles
2017-04-19 14:38:40 +01:00
Sergey M․
a32a9a7ef5
[extractor/common] Add support multiple getters in try_get
2017-04-18 22:39:58 +07:00
Sergey M․
51098426b8
[utils] Introduce expand_path
2017-03-26 02:30:10 +07:00
Sergey M․
4b5de77bdb
[utils] Process bytestrings in urljoin ( closes #12369 )
2017-03-06 03:57:46 +07:00
Sergey M․
158af5242e
[utils] Carry long doc string
2017-03-01 23:04:02 +07:00
Yen Chi Hsuan
0a5445ddbe
[utils] Add bytes_to_long() and long_to_bytes()
...
Used in daisuki.net (#4738 )
Both are adapted from public domain PyCrypto:
https://github.com/dlitz/pycrypto/blob/master/lib/Crypto/Util/number.py
2017-02-28 22:10:31 +08:00
Yen Chi Hsuan
f48409c7ac
[utils] Add pkcs1pad
...
Used in daisuki.net (#4738 )
2017-02-28 22:10:31 +08:00
Sergey M․
4248dad92b
Improve geo bypass mechanism
...
* Rename options to preffixly match with --geo-verification-proxy
* Introduce _GEO_COUNTRIES for extractors
* Implement faking IP right away for sites with known geo restriction
2017-02-19 05:10:08 +08:00
Sergey M․
18a0defab0
[utils] Make random_ipv4 return unicode string
2017-02-19 05:10:08 +08:00
Sergey M․
773f291dcb
Add experimental geo restriction bypass mechanism
...
Based on faking X-Forwarded-For HTTP header
2017-02-19 05:10:08 +08:00
Pierre Mdawar
bf5b9d859a
[utils] Introduce YoutubeDLError base class for all youtube-dl exceptions
2017-02-19 05:10:08 +08:00
Sergey M․
db13c16ef8
[utils] Add support for quoted string literals in --match-filter ( closes #8050 , closes #12142 , closes #12144 )
2017-02-15 23:12:10 +07:00
Ricardo Constantino
2f49bcd690
utils.py: Workaround TypeError with Python 2.7.13 in Windows
...
Fixes #11540
Tested with Windows Python 2.7.12 and 2.7.13.
2017-02-11 14:51:28 +00:00
Thomas Christlieb
2af12ad9d2
Introduce get_elements_by_class and get_elements_by_attribute utility functions
2017-02-11 17:16:54 +08:00
Sergey M․
4195096ea8
[utils] Improve comments processing in js_to_json ( closes #11947 )
2017-02-03 03:04:33 +07:00
Michal Čihař
b3ee552e4b
[utils] Handle single-line comments in js_to_json
2017-02-03 03:04:33 +07:00
Sergey M․
15846398ca
[utils] Improve parse_duration
2017-01-26 23:23:08 +07:00
Yen Chi Hsuan
0c1c6f4b9f
[utils] Add another date format seen in NextTV
2017-01-23 23:37:32 +08:00
Sergey M․
cb655f34fb
[utils] Add more date formats
2017-01-12 22:39:45 +07:00
Yen Chi Hsuan
ec85ded83c
Fix "invalid escape sequences" error on Python 3.6
2017-01-06 00:58:56 +08:00
Sergey M․
b0c65c677f
[utils] Improve urljoin
2016-12-17 18:49:55 +07:00
Sergey M․
e34c33614d
[utils] Add convenience urljoin
2016-12-13 02:23:49 +07:00
Sergey M․
fb37eb25d9
[utils] Add common user agents map
2016-12-12 00:49:07 +07:00
Sergey M․
02dc0a36b7
[utils] Introduce base_url
2016-11-02 02:30:18 +07:00
Sergey M․
e5a088dc4b
[utils] Fix --match-filter for int-like strings ( closes #11082 )
2016-10-31 23:32:08 +07:00
Yen Chi Hsuan
b64d04c119
[utils] Clarify for redirecting STDIN in get_exe_version()
2016-10-22 13:04:05 +08:00
John Hawkinson
00ca755231
[get_exe_version] Do version probes with <&-
...
When doing version probes for ffmpeg, do the
equivalent of calling it as:
ffmpeg -version <&-
Where <&- is shell syntax for closing stdin before calling the
program. This is roughly equivalent to </dev/null without actually
opening /dev/null.
This prevents ffmpeg -version from hanging when run in the background.
Fixes #955 .
The reason is that ffmpeg tries to manipulate stdin to set up terminal
characteristic, and that causes the kernel to suspend the parent
process (youtube-dl).
Note that closing stdin is achieved by calling subprocess.Popen() with
stdin set to subprocess.PIPE and without passing any input to
Popen.communicate(). This is somewhat subtle.
2016-10-22 00:34:08 -04:00
Sergey M․
06b3fe2926
[utils] Expose PACKED_CODES_RE
2016-10-19 23:28:49 +07:00
Déstin Reed
dcdb292fdd
Unify coding cookie
2016-10-03 23:44:29 +07:00
Yen Chi Hsuan
bd26441205
[utils] Fix xattr error handling
2016-10-02 03:03:41 +08:00
Yen Chi Hsuan
53a7e3d287
[utils] Support xattr as well as pyxattr
...
Closes #9054
There are two xattr packages in Python, pyxattr [1] and xattr [2]. They
have different APIs.
In old days pyxattr supports Linux only and xattr supports Linux, Mac,
FreeBSD and Solaris, and pyxattr supports Linux only. Recently pyxattr
adds support for Mac OS X. [3]
An old version of [2] is shipped with Mac OS X. However, some Linux
distributions have pyxattr only, for example PLD-Linux [4] and old Arch
Linux. [5] As a result, supporting both is the way to go.
[1] https://github.com/iustin/pyxattr
[2] https://github.com/xattr/xattr
[3] https://github.com/iustin/pyxattr/pull/9
[4] https://github.com/rg3/youtube-dl/issues/5498
[5] https://git.archlinux.org/svntogit/community.git/commit/?id=427c4c76401e386d865ccddea4fbfdc74df80492
https://git.archlinux.org/svntogit/community.git/commit/?id=59b40da7b69622a6761d364a8b07909e9cccaa56
python-xattr is added on 2016/06/29 while pyxattr is there for more
than 6 years
2016-10-01 20:13:04 +08:00
Sergey M․
c6eed6b8c0
[utils] Lower priority for rare date formats and add tests
2016-09-29 23:52:29 +07:00
Kacper Michajłow
3aa3953d28
[vk] Fix date and view count extraction.
2016-09-29 23:52:29 +07:00
Yen Chi Hsuan
efa97bdcf1
Move write_xattr to utils.py
...
There are some other places that use xattr functions. It's better to
move it to a common place so that others can use it.
2016-09-30 00:28:32 +08:00
Sergey M․
3e4185c396
[utils] Use native french month names
2016-09-14 23:59:38 +07:00
Sergey M․
f6717dec8a
[utils] Improve month_by_name and add tests
2016-09-14 23:59:38 +07:00
renalid
a942d6cb48
[utils,franceinter] Add french months' names and fix extraction
...
Update of the "FranceInter" radio extractor : webpages HTML structure
had changed, the extractor didn't work. So I updated this extractor to
get the mp3 URL and all details.
2016-09-14 23:59:38 +07:00
Sergey M․
c2b2c7e138
[utils] Add quicktime to mimetype2ext
2016-09-02 23:50:42 +07:00
Sergey M․
6562d34a8c
[utils] Improve mimetype2ext
2016-09-02 22:57:48 +07:00
Remita Amine
073ac1225f
[utils] add ac-3 to the list of audio codecs in parse_codecs
2016-08-25 08:49:44 +01:00
Yen Chi Hsuan
70852b47ca
[utils] Recognize units with full names in parse_filename
...
Reference: https://en.wikipedia.org/wiki/Template:Quantities_of_bytes
2016-08-20 00:17:26 +08:00
Yen Chi Hsuan
e4659b4547
[utils] Correct octal/hexadecimal number detection in js_to_json
2016-08-19 20:37:17 +08:00
Sergey M․
13585d7682
[utils] Recognize lowercase units in parse_filesize
2016-08-18 23:32:00 +07:00
Remita Amine
98e698f1ff
[external/curl] respect more downloader options and display progress
2016-08-12 12:30:02 +01:00
Yen Chi Hsuan
81c13222c6
[utils] Recognize more formats in unified_timestamp
...
Used in CtsNews
2016-08-10 11:37:23 +08:00
Sergey M․
a8795327ca
[utils] Add support TV Parental Guidelines ratings in parse_age_limit
2016-08-07 20:45:18 +07:00
Yen Chi Hsuan
d3f8e038fe
[utils] Add decode_png for openload ( #9706 )
2016-08-07 02:42:58 +08:00
Yen Chi Hsuan
7dc2a74e0a
[utils] Fix unified_timestamp for formats parsed by parsedate_tz()
2016-08-05 11:41:55 +08:00
Sergey M․
f164b97123
[utils] Add another f4m mimetype to mimetype2ext
2016-07-23 16:48:59 +07:00
Remita Amine
e910fe2fe4
[brightcove] skip ism manifests
2016-07-14 14:13:57 +01:00
Yen Chi Hsuan
0b68de3cc1
Merge pull request #8876 from remitamine/html5_media
...
[extractor/common] add helper method to extract html5 media entries
2016-07-10 23:40:45 +08:00
Yen Chi Hsuan
84c237fb8a
[utils] Add get_element_by_class
...
For #9950
2016-07-06 20:02:52 +08:00
Remita Amine
b4173f1551
[utils] add mimetypes to determine manifest ext(m3u8, f4m, mpd)
2016-07-06 09:06:28 +01:00
Remita Amine
81953d1ae5
[kaltura] add support videos stored on custom kaltura servers( closes #5557 )
2016-07-04 17:59:58 +01:00
Sergey M․
95cf60e826
[utils] Add PUTRequest
2016-07-03 02:21:32 +07:00
Aleksandar Topuzovic
6b03e1e25d
[HRTi] Implement extractor for Croatian Radiotelevision
2016-07-03 02:20:41 +07:00
remitamine
4f3c5e0627
[utils] add helper function for parsing codecs
2016-06-26 14:03:58 +01:00
Yen Chi Hsuan
1143535d76
[utils] Add urshift()
...
Used in IqiyiIE and LeIE
2016-06-26 15:16:49 +08:00
Sergey M․
b72b44318c
[utils] Add strip_or_none
2016-06-25 23:19:18 +07:00
Sergey M․
46f59e89ea
[utils] Add unified_timestamp
2016-06-25 23:19:18 +07:00
remitamine
e154c65128
[downloader/hls] Add support for AES-128 encrypted segments in hlsnative downloader
2016-06-19 01:01:40 +01:00
Yen Chi Hsuan
47212f7bcb
[utils] Don't transform numbers not starting with a zero
...
Fix test_Viidea and maybe others
2016-06-16 11:00:54 +08:00
Sergey M․
329ca3bef6
[utils] Add try_get
...
To reduce boilerplate when accessing JSON
2016-06-12 06:05:34 +07:00
Paul Henning
15d106787e
[utils] Change Firefox 44 to 47
...
See commit title.
2016-06-11 05:36:31 -04:00
Yen Chi Hsuan
55b2f099c0
[utils] Decode HTML5 entities
...
Used in test_Vporn_1. Also related to #9270
2016-06-10 15:11:55 +08:00
Yen Chi Hsuan
6c33d24b46
[utils] Add audio/mpeg to mimetype2ext()
...
Used in WDR live radios (#6147 )
2016-06-09 12:58:24 +08:00
bzc6p
c88270271e
Added sanitization support for Hungarian letters Ő and Ű
2016-06-02 11:51:48 +02:00
Yen Chi Hsuan
9a4aec8b7e
[utils] Use bytes-like objects as header values on Python 2
2016-06-02 15:00:49 +08:00
Yen Chi Hsuan
0ea590076f
[utils] Always decode Location header
...
escape_url is broken for bytes-like objects
2016-06-02 15:00:49 +08:00
Yen Chi Hsuan
293c255688
[utils] Remove debugging codes
2016-05-26 22:54:16 +08:00
Yen Chi Hsuan
5950cb1d6d
[utils] Support a new form of date
...
Found in dw.com (#9475 )
2016-05-26 22:44:00 +08:00
Sergey M․
c6b9cf05e1
[utils] Do not fail on unknown date formats in unified_strdate
2016-05-22 08:28:41 +06:00
Sergey M․
46bc9b7d7c
[utils] Allow None in remove_{start,end}
2016-05-19 04:31:30 +06:00
Yen Chi Hsuan
cdd94c2eae
[utils] Check for None values in SOCKS proxy
...
Originally reported at
https://github.com/rg3/youtube-dl/pull/9287#issuecomment-219617864
2016-05-17 14:38:15 +08:00
Yen Chi Hsuan
79298173c5
[utils] Fix getheader in urlhandle_detect_ext
...
Fixes #7049 , related to #9440
2016-05-15 15:34:50 +08:00
Sergey M․
cda6d47aad
[utils] Simplify integer conversion in js_to_json
2016-05-14 23:41:57 +06:00
Sergey M․
89ac4a19e6
[utils] Process non-base 10 integers in js_to_json
2016-05-14 20:39:58 +06:00
felix
bd1e484448
[utils] js_to_json: various improvements
...
now JS object literals like { /* " */ 0: ",]\xaa<\/p>", } will be correctly converted to JSON.
2016-05-14 20:12:39 +06:00
Yen Chi Hsuan
7581bfc958
[utils] Unquote crendentials passed to SOCKS proxies
...
Fixes #9450
2016-05-13 00:27:25 +08:00
Yen Chi Hsuan
778a1ccca7
[utils] Add Œ and œ found in French to ACCENT_CHARS
...
Fixes #9463
2016-05-12 19:48:48 +08:00
Yen Chi Hsuan
702ccf2dc0
[compat] Rename shlex_quote and remove unused subprocess_check_output
2016-05-10 16:00:21 +08:00
Yen Chi Hsuan
edaa23f822
[compat] Rename struct_(un)pack to compat_struct_(un)pack
2016-05-10 14:51:38 +08:00
Yen Chi Hsuan
d5ae6bb501
[utils] Add rationale for register_socks_protocols
2016-05-10 14:51:38 +08:00
Yen Chi Hsuan
51fb4995a5
[utils] Register SOCKS protocols in urllib and support SOCKS4A
2016-05-10 14:51:38 +08:00
Yen Chi Hsuan
71aff18809
[socks] Support SOCKS proxies
2016-05-10 14:51:38 +08:00
Yen Chi Hsuan
dab0daeeb0
[utils,compat] Move struct_pack and struct_unpack to compat.py
2016-05-10 14:51:38 +08:00
Sergey M․
abc97b5eda
[utils] Allow empty attribute values in get_element_by_attribute ( Closes #9415 )
2016-05-06 22:07:30 +06:00
Adam Thalhammer
c587cbb793
improved performance by extracting accented chars to top level
2016-05-03 10:40:30 +10:00
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 #9347
2016-05-02 13:21:39 +10:00
Sergey M․
eb9ee19422
[utils] Allow None mimetypes in mimetype2ext
2016-04-25 00:03:12 +06:00
Sergey M
b6c0d4f431
Merge pull request #9110 from remitamine/parse_duration
...
[utils] imporove parse_duration to handle more formats
2016-04-21 22:53:16 +07:00
remitamine
acaff49575
[utils] imporove parse_duration to handle more formats
2016-04-21 16:34:54 +01:00
Yen Chi Hsuan
cacd996662
[utils] Don't touch URLs if not necessary
...
Fix test_Generic_15 (Google redirect)
2016-04-09 19:27:54 +08:00
Jaime Marquínez Ferrándiz
5bf28d7864
[utils] dfxp2srt: add additional namespace
...
Used by the ZDF subtitles (#9081 ).
2016-04-04 20:46:35 +02:00
Sergey M․
15d260ebaa
[utils] Use update_Request in http_request
2016-03-31 22:55:49 +06:00
Sergey M․
ed0291d153
[utils] Add update_Request
2016-03-31 22:55:01 +06:00
Sergey M․
17bcc626bf
[utils] Extract sanitize_url routine
2016-03-26 19:33:57 +06:00
Sergey M․
15707c7e02
[compat] Add compat_urllib_parse_urlencode and eliminate encode_dict
...
encode_dict functionality has been improved and moved directly into compat_urllib_parse_urlencode
All occurrences of compat_urllib_parse.urlencode throughout the codebase have been replaced by compat_urllib_parse_urlencode
Closes #8974
2016-03-26 01:46:57 +06:00
Yen Chi Hsuan
622d19160b
[utils] Clarify Python versions affected by buggy struct module
2016-03-24 18:06:15 +08:00
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 #8890
2016-03-23 22:24:52 +08:00
Jaime Marquínez Ferrándiz
782b1b5bd1
[utils] lookup_unit_table: Match word boundary instead of end of string
2016-03-19 11:44:49 +01:00
Jaime Marquínez Ferrándiz
09fc33198a
utils: lookup_unit_table: Use a stricter regex
...
In parse_count multiple units start with the same letter, so it would match different units depending on the order they were sorted when iterating over them.
2016-03-18 19:23:06 +01:00
Sergey M․
810c10baa1
[utils] Use compat_xpath
2016-03-18 02:52:23 +06:00
Sergey M․
c5229f3926
[utils] PEP 8
2016-03-16 21:50:04 +06:00
remitamine
83548824c2
Merge pull request #8092 from bpfoley/twitter-thumbnail
...
[utils] Add extract_attributes for extracting html tag attributes
2016-03-16 13:16:27 +01:00
Sergey M․
2f7ae819ac
[utils] PEP 8
2016-03-13 17:23:08 +06:00
Sergey M․
fb47597b09
[bbc] Generalize unit table lookup and add parse_count
2016-03-13 16:27:20 +06:00
Yen Chi Hsuan
25cb05bda9
[utils] Remove codec2ext
...
This function is orignally used for determining file extensions of DASH
formats. Now in DASH, ext is determined by mime_type. See #8766 for more
information.
2016-03-11 23:51:42 +08:00
Yen Chi Hsuan
6d210f2090
[utils] Add more codecs to codec2ext
...
BBC uses avc3. Here's an example (thanks to @remitamine for this example)
http://rdmedia.bbc.co.uk/dash/ondemand/bbb/2/client_manifest-common_init.mpd
See also https://trac.ffmpeg.org/ticket/5217
2016-03-06 17:57:48 +08:00
Yen Chi Hsuan
19a17d4623
[utils] Add codec2ext
2016-03-05 18:18:28 +08:00
Jaime Marquínez Ferrándiz
3233a68fbb
[utils] update_url_query: Encode the strings in the query dict
...
The test case with {'test': '第二行тест'} was failing on python 2 (the non-ascii characters were replaced with '?').
2016-03-04 22:18:40 +01:00
remitamine
1255733945
Merge pull request #8739 from remitamine/update_url_params
...
[utils] add update_url_query function to create or update query string params
2016-03-03 19:24:04 +01:00
remitamine
38f9ef31dc
[utils] add update_url_query function
2016-03-03 18:34:52 +01:00
Yen Chi Hsuan
0cae023b24
Merge branch 'jython-support'
...
Closes #8302
2016-03-03 18:49:32 +08:00
Yen Chi Hsuan
8ee239e921
[utils] Jython support - handle filenames correctly
...
Now test:youtube downloads
2016-03-03 18:47:54 +08:00
Brian Foley
8bb56eeeea
[utils] Add extract_attributes for extracting html tag attributes
...
This is much more robust than just using regexps, and handles all
the common scenarios, such as empty/no values, repeated attributes,
entity decoding, mixed case names, and the different possible value
quoting schemes.
2016-03-03 10:11:37 +00:00