I’ve experienced similar issues and built a similar workaround, taking video and creating jpeg “filmstrips” that sample every N frames. But ultimately it’s a poor substitute for native video support. This is why I ended up changing my entire stack over to Gemini 3, which does support native video uploads in the API. When OpenAI finally catches up I’ll consider switching back.