Okay, I did a little digging and eventually got the upload portion to work as well as figuring out why I was getting error 413. Here were my discoveries:
When I was initially trying to send the request, I was assuming that it was sending the raw bytes using binary serialization even though I was specifying JSON. Idiocy at its finest, I know. RestSharp by default serializes all requests into either XML or JSON format. Doing so inflates the size of the request by a considerable amount. Switching to binary serialization would solve the request size inflation issue and would allow the the max 25MB limit to be sent. However, RestSharp does not natively support binary serialization so this is not an option to me or anyone else using this library.
There is a work around while still using RestSharp and JSON serialization. Bumping the video segment size all the way down to 5MB from 20MB resulted in status 200 ‘OK’, a successful upload. Another option would be to use a different library which uses binary serialization to avoid the request size inflation. But this solution adds yet another dependency, something I’m not sure is worth doing at this point, but maybe sometime in the future.
Just food for thought and a heads up for anyone else who has a similar issue.