pukkandan be6202f12b
Subtitle extraction from streaming media manifests #247
Authored by fstirlitz
Modified from: https://github.com/ytdl-org/youtube-dl/pull/6144

Closes: #73
Fixes:
https://github.com/ytdl-org/youtube-dl/issues/6106
https://github.com/ytdl-org/youtube-dl/issues/14977
https://github.com/ytdl-org/youtube-dl/issues/21438
https://github.com/ytdl-org/youtube-dl/issues/23609
https://github.com/ytdl-org/youtube-dl/issues/28132

Might also fix (untested):
https://github.com/ytdl-org/youtube-dl/issues/15424
https://github.com/ytdl-org/youtube-dl/issues/18267
https://github.com/ytdl-org/youtube-dl/issues/23899
https://github.com/ytdl-org/youtube-dl/issues/24375
https://github.com/ytdl-org/youtube-dl/issues/24595
https://github.com/ytdl-org/youtube-dl/issues/27899

Related:
https://github.com/ytdl-org/youtube-dl/issues/22379
https://github.com/ytdl-org/youtube-dl/pull/24517
https://github.com/ytdl-org/youtube-dl/pull/24886
https://github.com/ytdl-org/youtube-dl/pull/27215

Notes:
* The functions `extractor.common._extract_..._formats` are still kept for compatibility
* Only some extractors have currently been moved to using `_extract_..._formats_and_subtitles`
* Direct subtitle manifests (without a master) are not supported and are wrongly identified as containing video formats
* AES support is untested
* The fragmented TTML subtitles extracted from DASH/ISM are valid, but are unsupported by `ffmpeg` and most video players
    * Their XML fragments can be dumped using `ffmpeg -i in.mp4 -f data -map 0 -c copy out.ttml`.
        Once the unnecessary headers are stripped out of this, it becomes a valid self-contained ttml file
    * The ttml subs downloaded from DASH manifests can also be directly opened with <https://github.com/SubtitleEdit>
* Fragmented WebVTT files extracted from DASH/ISM are also unsupported by most tools
    * Unlike the ttml files, the XML fragments of these cannot be dumped using `ffmpeg`
    * The webtt subs extracted from DASH can be parsed by <https://github.com/gpac/gpac>
    * But validity of the those extracted from ISM are untested
2021-04-28 19:02:43 +05:30
..
2021-02-25 02:29:47 +05:30
2021-03-15 04:52:06 +05:30
2021-04-17 08:40:30 +05:30
2021-04-04 03:49:04 +05:30
2021-03-02 13:56:07 +05:30
2021-03-15 04:52:06 +05:30
2021-04-22 16:54:07 +05:30
2021-04-22 04:19:33 +05:30
2021-04-17 04:16:41 +05:30
2021-03-15 04:52:06 +05:30
2021-04-17 08:40:31 +05:30
2021-04-10 22:19:54 +05:30
2021-04-17 08:40:30 +05:30
2021-04-16 05:31:47 +05:30
2021-04-17 08:40:30 +05:30
2021-03-02 13:56:07 +05:30
2021-03-15 04:52:06 +05:30
2021-04-22 16:54:07 +05:30
2021-02-27 15:35:41 +05:30
2021-04-01 13:59:22 +05:30
2021-04-17 08:40:30 +05:30
2021-03-20 09:34:52 +05:30
2021-04-10 22:19:54 +05:30
2021-04-17 08:40:31 +05:30
2021-04-17 08:40:30 +05:30
2021-03-24 04:06:26 +05:30
2021-04-10 22:19:54 +05:30
2021-04-22 16:52:22 +05:30
2021-03-22 02:58:41 +05:30
2021-04-10 22:19:54 +05:30
2021-03-02 17:02:45 +05:30
2021-03-03 16:04:01 +05:30
2021-04-17 08:40:30 +05:30
2021-04-17 08:40:30 +05:30
2021-04-04 03:49:04 +05:30
2021-03-15 04:52:06 +05:30
2021-03-02 13:56:07 +05:30
2021-04-01 13:59:22 +05:30
2021-03-15 04:52:06 +05:30
2021-04-17 08:40:31 +05:30
2021-03-14 16:02:16 +05:30
2021-04-10 22:19:54 +05:30
2021-03-03 16:04:01 +05:30
2021-03-02 13:56:07 +05:30
2021-03-15 04:52:06 +05:30
2021-04-17 08:40:30 +05:30
2021-02-25 02:29:47 +05:30
2021-04-01 13:59:22 +05:30
2021-03-15 04:52:06 +05:30
2021-03-15 04:52:06 +05:30
2021-04-17 08:40:30 +05:30
2021-03-02 13:56:07 +05:30
2021-04-17 08:40:30 +05:30
2021-02-25 16:07:38 +05:30
2021-02-25 02:29:47 +05:30
2021-03-25 04:09:21 +05:30
2021-04-17 08:40:30 +05:30
2021-04-17 08:40:30 +05:30
2021-03-15 04:52:06 +05:30
2021-04-17 08:40:30 +05:30
2021-04-18 17:57:46 +05:30
2021-03-02 13:56:07 +05:30
2021-03-25 04:09:21 +05:30
2021-04-16 05:31:47 +05:30
2021-04-01 13:59:22 +05:30
2021-03-15 04:52:06 +05:30
2021-04-17 08:40:30 +05:30
2021-03-22 02:58:41 +05:30
2021-03-11 13:28:51 +05:30
2021-04-17 08:40:30 +05:30
2021-04-10 22:19:54 +05:30
2021-02-25 02:29:47 +05:30
2021-04-22 16:54:07 +05:30
2021-03-02 13:56:07 +05:30
2021-03-25 04:09:21 +05:30