I filed an issue [1] to the youtube-dl issue tracker concerning the JSON object returned on GET /videos/{id}
and eventually I also solved the mentioned problem with a PR [2] to youtube-dl.
Even though the downloading problem has been solved, I don’t clearly understand the function of the "files"
field on the root level of the JSON object and why it can be omitted/replaced with "files"
fields in "streamingPlaylists"
array.
Can somebody clarify this for me? Thanks!
[1] https://github.com/ytdl-org/youtube-dl/issues/26002
[2] https://github.com/ytdl-org/youtube-dl/pull/26302
Hello,
.files
corresponds to webtorrent compatible files (with faststart etc) whereas streamingPlaylists[].files
are fragmented mp4 files used by HLS playlists.
Our webtorrent streaming library does not support fragmented mp4, that are necessary for HLS playlists. It’s the reason why we need 2 different type of files.
Oh, I see. Thank you! 
If I get it right, the generation of these two kinds of files can be controlled via the webtorrent.enabled
and hls.enabled
fields in the config/production.yaml
on the server side and that’s the reason why the returned JSON may contain either only one of them or both.
Yep exactly
I’ll add a section in the documentation, because we need to correctly explain these settings.