This simplifies code for callers of `_find_jwplayer_data()` which no longer have
to run `_parse_json()` on the return value.
It also makes sure that `_find_jwplayer_data()` returns either a `dict` or
`None` and nothing else.
Has a "data-brightcove-video-id" instead of a "data-video-id," otherwise
pretty much just Brightcove. Except the Globe isn't all Brightcove
videos, so fallback to Generic, too.
Also, abstract playlist_from_matches() from generic.py to common.py, and use
it here.
History of these changes can be found in
51170427d4b1143572a498dedaee61863a5b2c5b.
* 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
* [infoq] Add audio only format if available
Refactor cookie code into a function.
Renamed formats to http_video, http_audio, rtmp_video
Renamed extract functions to video instead of videos as they return
one or no video.
* [infoq] Rename to _extract_cookies as it more than one
* [infoq] Remove redundant determine_ext
* [infoq] Add comment about hardcoded URL
* [infoq] Use _hidden_inputs instead of messy regex
* [infoq] Probe if audio URL is valid
Make it possible to pass headers to _is_valid_url
* [infoq] Add audio only test
Ref: #10625
In a strict sense, <track>s with kind=captions are not subtitles. [1]
openload misuses this attribute, and I guess there will be more
examples, so I add it to common.py.
Also allow extracting information for subtitles-only <video> or <audio>
tags, which is the case of openload.
[1] https://www.w3.org/TR/html5/embedded-content-0.html#attr-track-kind