YouTube
YouTube has many instructional videos and tons of information. However most of the YouTube website does not work without non-free javascript.
To get around this there is a popular tool called youtube-dl. It downloads youtube videos. You can install it through your package manager, but if you are using a distro that has older packages, you may want to install it with pip.
Now youtube-dl by itself is great, but it's not really the same video searching experience. Personally I use a program called youtube-viewer. This program allows you to search YouTube videos and even 'subscribe' to a channel. There is a GUI version available as well.

Twitch
Twitch is a bit of a different beast. As far as I know there is no way to view chat without logging into a twitch account. Which of course would require non-free javascript to sign up. But fear not, watching streams themselves and even being notified when they go live is not an issue!
To know when a streamer goes live I have found that using RSS has been the most reliable. That way you can get notified when they go live and then have a vod to watch if you missed it. Just put this as the rss feed:

https://twitchrss.appspot.com/vod/[STREAMER NAME HERE]

Please do not set the refresh interval too low or you might max out the site's bandwidth. Set it to something like 15 minutes.
Watching a stream live, you can use the popular tool streamlink if you would like. However, I personally just use youtube-dl. It's a little bit of a process but once you know what the available resolutions are, you can just skip to the last step.

To get the resolutions:

youtube-dl -F https://twitch.tv/STREAMNAME

To get the stream url with the specified resolution:

youtube-dl -f 720p --get-url https://twitch.tv/STREAMNAME

If you don't care about resolutions, you can just remove "-f RESOLUTION" as youtube-dl will then pick the best available resolution.
However we're not quite done yet! We only got the URL. Now we need to actually play the stream. You can do this with most media players, but I will use mpv as an example.

mpv $(youtube-dl -f 720p --get-url https://twitch.tv/STREAMNAME)

Now the stream should be playing! Typing all that out is tiring so I made a script I called bvod and it will play and unmute just about any Twitch stream you throw at it. By default it is set to try 720p but if that doesn't work you can give it a stream link and a another resolution like this:

bvod https://twitch.tv/STREAMNAME source

Missed a stream and it's still live? No need to wait! Watch the VOD now!
With my script twitchbroad you can view a streamers latest VODs including what they are currently streaming!

twitchbroad STREAMNAME

Last, but not least, you may want to see who is streaming a certain game. With my script twitchdir you can do just that. However game directories are very specific. So you might have to look up what the name of the directory by searching "twitch NAME OF GAME" in your favorite search engine. For example, twitchdir works like this:

twitchdir Team Fortress 2

This will return a list of streamers currently playing that game and whatever their stream description is. All you have to do is take their username on the left and use that in a link.

With these tools I have not missed a bit of entertainment out in the world because of non-free javascript. This is thanks to the websites providing APIs to allow this sort of thing and to the developers of youtube-dl. youtube-viewer, and mpv.