- Added support for chosing random invidious instances.
- Added support for chosing random invidious instances.

When `youtube-dl` is not installed, or it fails to retrieve the needed information, we fallback to invidious.

Instead of using a predefined list of invidious instances, we now get the list of instances from https://instances.invidio.us/instances.json.

This ensures that we always have a list of working instances. Additionally, in order to distribute the load evenly, we pick a random instance everytime.

The JSON file is cached locally and updated hourly.

trizen/youtube-viewer,trizen/youtube-viewer