~cadence/NewLeaf

/channels/latest: author ID fallback in video entry
Exclude m3u8 playlist formats
Support new channel layout
Channel path fixes I'm pretty sure I already did?

- use "channels" as default path, not "user"
- cache based on the combination of the path and the id
- fix channel latest
#29 Extract named channels using dynamic endpoint with second__path param instead of /user/
#42 Return UNKNOWN error for not explicitly handled errors for channel extraction instead of stacktrace
Explain bind_host in sample configuration
Remove `with requests` when it is unnecessary
Do not actually write out pages.
Report errors when an account has been terminated
Stream responses on /vi and /ggpht endpoints

The chunk_size=None parameter to iter_content lets us consume data as
soon as it arrives
https://docs.python-requests.org/en/master/api/#requests.Response.iter_content
Fix regular captions

This removes all of the code that was previously used to get them from
/timedtext, and instead, always uses whatever is extracted from the
video page.

This does unfortunately now require a whole video fetch just for the
captions. But assuming captions are only requested by a frontend, this
won't be a problem due to the memory cache. The captions link will be
in memory because the just-requested video is in memory too.
Do not extract storyboards into v/a formats
Extract fact check notices to second__clarification
Fix recommended extraction when fact check notice
Fix recommended videos extraction on IDs starting with - and _

Let's just leverage yt_dlp instead of rolling our own algorithms and fix
this kind of issue (not finding yt_dlp dump file for a given video) once
and for all

Example videos:
* https://www.youtube.com/watch?v=-q78QXpSL2M
* https://www.youtube.com/watch?v=_4SKG5uUEqs
Update link to NewLeaf installation
Fix file detection and recommendations
Next