Not necessarily.
A while ago, I found the need to stream directly from yt-dlp instead of downloading full videos[1]. You can have yt-dlp write to stdout and pipe that stream into your player of choice.
[1] "Using Unix Pipes to Improve Chromecast Playback": https://alexdelorenzo.dev/linux/2020/03/14/pipes