a863a5cbf3
Video records store url = /uploads/videos/<id>.mp4, but nothing served that path: Next.js only serves static files from public/, so the player's MP4 fallback 404'd and videos were unplayable until HLS transcoding finished. (Thumbnails hit the same problem historically — see scripts/update-thumbnail-urls.ts.) Add a route handler at the exact stored URL so no DB migration is needed. Unlike the HLS route it streams from disk via createReadStream instead of buffering the file, and implements HTTP Range requests (206/416, open-ended and suffix ranges) — browsers require ranges for <video> seeking, and files can be multi-GB. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>