so, to be potentially off topic, from a software point of view, streaming is a method. It has nothing to do with data loss, error handling, the quality of the data, etc. The content (5 seconds of a cat video, pdf file or song) is converted into bytes and sent from one endpoint to another. The client endpoint will receive it and convert it back to "content". In between there is "networking stuff" that I know little about and won’t google it (so that e.g. I still don’t say stuff that would embarrass my offspring who spent 4 years in College to understand the "networking stuff".)
If you want to play 5 frames of the cat video, 5 seconds of a song, you will need to receive the data that comes in a form of a stream. It has the beginning and end, x amount of bytes. The programmer writing the software that handles the data assumes it is 100% the same data the server sent.
What we also call streaming is the concept that we don’t need to receive the 6th seconds of a song to play the first 5. We just assume that we will have it in time, before the 5th seconds of the song has played. We can add business rules to our playing procedures such as we won’t play the song unless the entire song has completed streaming (in which case, it’s not really streaming but downloading.)
I feel these concepts are easily confused - as shown in this thread. I would go on about lossless and lossy formats and compressions and how Spotify changed business rules to get around receiving all the data that was sent and "just move on and play something" and never wait for the lost pockets - if I had know more than I can google. But I don’t, music streaming is a different animal than streaming data for maps and location data that I work on.
Still, this is a very educational thread despite our different understanding/ misunderstandings of various issues around streaming...