Skip to content

Take banner and avatar videos when the worker transcodes them (GRYT-1664) - #273

Merged
sivert-io merged 2 commits into
mainfrom
claude/GRYT-1664-video-uploads
Oct 5, 2026
Merged

sivert-io merged 2 commits into
mainfrom
claude/GRYT-1664-video-uploads

Conversation

@sivert-io

@sivert-io sivert-io commented Oct 5, 2026 •

Copy link
Copy Markdown
Member

The server half of video banners and avatars. It follows #272, and does nothing until the image worker reports video-v1 (the next worker PR, after image-worker#40).

  • workerCapabilities.ts also reads video-v1. It only counts alongside quarantine-v1.

  • POST /api/uploads/banner and /avatar accept video/mp4, video/webm and video/quicktime when the worker transcodes. Such a file goes straight to quarantine and is held to the server's upload limit, which you asked for, not the avatar one. The server never opens it. The worker writes it out as AV1 MP4: no sound, at most 10 seconds, 960x492 or 256x256.

  • Without video-v1 the answer is 415 video_unsupported ("This server can't take a video here. Use a picture instead."). That's what a standalone or desktop-hosted server says until it has its own sandbox.

  • The multer limit for these two routes is the larger of the avatar and upload limits, but only while video is possible. A picture is still checked against the avatar limit.

  • The member list carries avatarVideo and bannerVideo, taken from the file type, so a client knows to play the file and can use the still thumbnail (the poster) where it can't. Both go through buildMemberList and the change detector next to it.

Not here yet: the clients playing a video banner or avatar. That's the next client PR.

Tests: all pass, plus one new case for refused without video-v1, taken and quarantined with it.

🤖 Generated with Claude Code

sivert-io and others added 2 commits October 5, 2026 10:59
…664)

With video-v1 on the worker's /health, an MP4, WebM or QuickTime banner
or avatar goes straight to quarantine, held to the upload limit rather
than the avatar one, and the worker writes it out as AV1 MP4. Without
it the answer is 415 video_unsupported, which is what a standalone or
desktop-hosted server says until it has a sandbox of its own.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
avatarVideo and bannerVideo, from the file's type, so a client knows to
play it and uses the still thumbnail where it can't.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@sivert-io
sivert-io merged commit 00cf6aa into main Oct 5, 2026
4 checks passed
@sivert-io
sivert-io deleted the claude/GRYT-1664-video-uploads branch October 5, 2026 09:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant