I recently fell victim to a service provider who decided that they needed to make breaking changes to their public API without telling anyone. After several conversations with this provider, I learned that they make changes to the API all the time. This time it bit me.
This particular provider offered an adaptive streaming service for a fairly reasonable price. I didn't have to deal with video encoding and they guaranteed a level of compatibility that made their service attractive. Anyone who's hosted videos online knows that it's a bandwidth intensive proposition and encoding for maximum compatibility is no trivial task. I had never encoded for adaptive streaming and because my customer was phasing that out, it seemed like a good idea to farm out that hosting and spend my time on things that would survive into the future.
it started simply, on a Wednesday I think, with a few random calls about IOS failing to load the videos correctly. I (incorrectly) assumed it was a cache issue, or possibly an iOS update issue because a simple refresh would resolve the problem. Tech support 101: reset it. I had recently updated one of my iPads and I experienced the problem exactly once and the reset fixed it permanently. That worked for a couple of days. Then the other browsers started having issues - and not small ones. This time I was able to get error output from the console log - and it was not good.
Fast forward to last night.
I have successfully automated a new process where I can encode and publish adaptive streaming videos for my customer. This new capability offers a greater degree of control than the hosting service offered and I am able to keep yet another service in-house, reducing overall costs.
It seems that my poor choice in service provider has made my own service offering better. So it's a win-win!