Managing Assets
Most of dinkem.gg is driven from your own code, but two pieces of your branding are things you upload once and then reference by ID: a watermark and an outro. You manage both on the Assets page of your dashboard, and each one hands you an ID you pass when you use it.
| Asset | What it is | Where you use it | Referenced by |
|---|---|---|---|
| Watermark | A logo image composited onto the clip at render time — baked into the MP4 | Submitting a render job | watermark_image_id in the request body |
| Outro | A short video played after the clip in the embed player, on one continuous timeline | Embedding a clip | outro_id query param on the embed URL |
The distinction matters: a watermark is rendered into the video file, so it travels everywhere
the MP4 goes — downloads, social unfurls, third-party players. An outro lives in our player, so
it only appears when the clip is shown through the embed iframe, and video_url (the raw MP4) is
always the clip on its own.
There is no partner API endpoint for uploading or listing assets. You upload them through the dashboard, copy the ID, and reference that ID from your integration. Uploading is a one-time setup step, not something you do per job.
Uploading a watermark
Go to Assets → Watermarks and upload an image.
- Format: any raster image we can decode; a transparent PNG is strongly recommended so the clip shows through around your logo.
- Max size: 5 MB.
- Dimensions: we normalize the upload to an RGBA PNG and cap its longest side at 512 px (we never enlarge a smaller image). The image is treated as 1:1 at 1080p and scaled automatically for other render resolutions.
Once uploaded, the watermark appears as a card showing a preview composited over a sample frame —
exactly where and how it will land in a real clip — along with its watermark_image_id. Copy
that ID.
How it lands in the clip
- Positioned in the top-left corner, with a small margin (~2% of the frame).
- Composited at 50% opacity, so it reads as a mark rather than covering the action.
- Baked into the render's single encode pass — there's no separate re-encode and no quality hit.
Using it
Pass the copied ID as watermark_image_id when you submit a job:
{
"demo_url": "https://cdn.example.com/matches/abc123.dem",
"steam64_id": "76561198000000000",
"round": 5,
"watermark_image_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
Full field reference: Submitting Render Jobs.
The ID must be a watermark your account owns. An unknown ID, another account's ID, or the ID of
an outro (wrong asset type) all return a 400 at submission — the job is never queued.
Uploading an outro
Go to Assets → Outros and upload a video.
- Format: MP4 only (H.264 video + AAC audio). We check both the file type and the file's own signature, so a mislabeled file is rejected.
- Max size: 20 MB. The embed player buffers the whole outro up front for a seamless hand-off, so keep it a short sting.
- Resolution: the file is stored exactly as uploaded — no transcoding. Author it to match your clips (1920×1080) so the transition is seamless.
Once uploaded, the outro appears as a card with an inline preview and its outro_id. Copy that
ID.
Using it
Append the copied ID as an outro_id query param on a clip's embed URL:
<iframe src="https://dinkem.gg/clips/3fa85f64-5717-4562-b3fc-2c963f66afa6/embed?outro_id=YOUR_OUTRO_ID"
frameborder="0" allowfullscreen></iframe>
The player rolls the outro straight after the clip as one continuous timeline — the seek bar spans both and the scrubber crosses the boundary. Details and the full embed reference: Embedding Clips.
An outro_id we can't resolve is never an error — the player simply falls back to the clip on
its own. That's also the default when you leave outro_id off entirely.
Deleting an asset
Each asset card has a Delete button. Deletion is immediate, and the two asset types behave differently because of when they're applied:
- Deleting a watermark doesn't touch clips that already rendered with it — the mark is baked
into those MP4s. But any new job that references the deleted
watermark_image_idwill fail validation with a400. Point your integration at a different watermark first. - Deleting an outro means every embed still passing that
outro_idquietly falls back to playing the clip alone. Existing clips are unaffected; there's nothing to re-render.
Where to go next
- Submitting Render Jobs — supply
watermark_image_idon a job. - Embedding Clips — pass
outro_idon the embed URL.