Whenever a urlRetrieve() fails due to an unexpected error (ENOTFOUND, ETIMEDOUT, Socket hang up, etc.), the domain handler and the global exception handler would detect this and not crash the server, however the dirty internal state would somehow prevent future HTTP requests from completing successfully.
Removed domain usage since that feature is marked "unstable" and is rumored to be marked for deprecation in future versions of node. Using the "error" event of the request object itself, which means errors are local in scope and won't pollute global state. This should have been the solution originally, but when urlRetrieve() was written, I was not as familiar with node.
- User playlists should now list correctly (fixed a race condition)
- Livestream types can autoplay (no longer stuck at currentTime = -3)
- Playlist items with NaN duration do not break user playlist saving
- ffmpeg support can handle live media (e.g. icecast)
- Invalid volume is sanitized and an error message is added
- JWPlayer displays correctly for both HTML5 and Flash
- JWPlayer volume synchronization is fixed
- <audio> and <video> tags are scaled correctly with .embed-responsive-item
This allows for authenticated API requests. Currently, the only reason
you would want to use this is to be able to add videos that are marked
private but still embeddable.