This is an on-going problem related to Dynamic Adaptive Streaming over HTTP (DASH) There are several work arounds. Try Giggle.
Here's a link to start with.
Preload Entire YouTube Videos By Disabling Dash Playback
I tried a few work arounds with varying success, and when Youtube is being un co-operative I use VLC media player.
VLCApp | VLC Media Player Free Download
Select
Media->Open Network Stream, paste a YouTube URL, and click
Play
In addition to this useful trait, VLC media player will also play any format you throw at it.