Code monkey not crazy, just proud.
Let me show you what I can see here from a single video. I'll just pick on myself for this task.
greysondn@LAPTOP-27D4Q1U4:/mnt/c/Users/Dorian Greyson$ python3
Python 3.6.9 (default, Oct 8 2020, 12:12:24)
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import youtube_dl
>>> ytdl = youtube_dl.YoutubeDL()
>>> out = ytdl.extract_info("https://www.youtube.com/watch?v=FNGcikv7jx0", download=False)
[youtube] FNGcikv7jx0: Downloading webpage
[youtube] FNGcikv7jx0: Downloading MPD manifest
>>> # ---------------------------------------
... # All data for a given video that I can see
... # --------------------------------------
...
>>> out.keys()
dict_keys(['id', 'title', 'formats', 'thumbnails', 'description', 'upload_date', 'uploader', 'uploader_id', 'uploader_url', 'channel_id', 'channel_url', 'duration', 'view_count', 'average_rating', 'age_limit', 'webpage_url', 'categories', 'tags', 'is_live', 'automatic_captions', 'subtitles', 'like_count', 'dislike_count', 'channel', 'extractor', 'webpage_url_basename', 'extractor_key', 'playlist', 'playlist_index', 'thumbnail', 'display_id', 'requested_subtitles', 'requested_formats', 'format', 'format_id', 'width', 'height', 'resolution', 'fps', 'vcodec', 'vbr', 'stretched_ratio', 'acodec', 'abr', 'ext'])
>>>
>>> # -----------------------------
... # dat about formats that I can see
... # ----------------------------
...
>>> type(out["formats"])
<class>
>>> type(out["formats"][0])
<class>
>>> out["formats"][0].keys()
dict_keys(['format_id', 'manifest_url', 'ext', 'width', 'height', 'tbr', 'asr', 'fps', 'language', 'format_note', 'filesize', 'container', 'vcodec', 'acodec', 'url', 'fragment_base_url', 'fragments', 'protocol', 'format', 'http_headers'])
>>>
>>> # -------------------------------------
... # for example...
... # -------------------------------------
...
>>> out["formats"][0]["format_id"]
'139'
>>> out["formats"][0]["width"]
>>> out["formats"][0]["height"]
>>> out["formats"][0]["fps"]
>>> out["formats"][0]["format_note"]
'DASH audio'
>>> out["formats"][1]["format_note"]
'tiny'
>>> out["formats"][2]["format_note"]
'tiny'
>>> out["formats"][3]["format_note"]
'DASH video'
>>> out["formats"][4]["format_note"]
'DASH video'
>>> out["formats"][5]["format_note"]
'240p'
>>> out["formats"][6]["format_note"]
'DASH video'
>>> out["formats"][7]["format_note"]
'240p'
>>> out["formats"][8]["format_note"]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>> out["formats"][7]["format_note"]
'240p'
>>> out["formats"][7]["width"]
256
>>> out["formats"][7]["height"]
224
>>> out["formats"][7]["fps"]
30
>>> out["formats"][7]["format_id"]
'18'
>>>
Essentially, at this point, it makes more sense to fight with it yourself to get specific data. The best I can offer is a massive headache of a json file dump of all formats and what they say, because the data isn't exactly straightforward.
What is "best" is a bit subjective here, too, once we stray from "absolute best". In other words, what you're asking for ends up being a JSON dump of the data for the entire channel, sooner or later, as opposed to focused data; sifting it becomes not-my-problem.
That can be done. I can do that. All I need is the "yes, quit being a jerk and just dump all the formats with their data into the output json".
Edit:
There is a middle ground of organizing the format ids in a preferred order, then listing the first of those (or if none at all exist). In other words, I'd need some semblance of youtube's format IDs in a preferred order. I know we all want to say "2160p60 or p30" and be done with it, but sometimes - and this is no joke - that stream is literally silent video and there's not much warning without rifling through all the data or knowing their format ID.
It's also of note that a large part of the problem comes from how Youtube tags these things, which is perhaps unfair to be quite so snippy about. (Well, snippy at anyone but YouTube, anyway.)