video-embed: derive provider and id from a pasted URL #97

Closed
opened 2026-07-18 02:26:21 +02:00 by dominik.polakovics · 1 comment

What to build

Web-editor-only convenience for the video-embed form: when an editor pastes a full YouTube or Vimeo URL into the id field, derive and set provider and id client-side. Storage format is unchanged — the sidecar still stores provider (select) and id (text); nothing changes for agents, the server, or the shortcode.

Handle at least: youtube.com/watch?v=<id>, youtu.be/<id>, youtube.com/shorts/<id>, vimeo.com/<id> (with optional query strings/timestamps stripped). A pasted value that is not a recognized URL is left as-is (assumed to already be an id).

Acceptance criteria

  • Pasting each supported URL form into id sets provider and reduces the field to the bare id
  • Non-URL input is left untouched
  • No sidecar, schema, or server changes; stored content shape identical
  • Unit tests for the URL parsing cover the listed forms plus a non-URL passthrough case
  • Manual check: paste URL, save, preview shows the click-to-load facade for the right video

Blocked by

None - can start immediately

## What to build Web-editor-only convenience for the `video-embed` form: when an editor pastes a full YouTube or Vimeo URL into the `id` field, derive and set `provider` and `id` client-side. Storage format is unchanged — the sidecar still stores `provider` (select) and `id` (text); nothing changes for agents, the server, or the shortcode. Handle at least: `youtube.com/watch?v=<id>`, `youtu.be/<id>`, `youtube.com/shorts/<id>`, `vimeo.com/<id>` (with optional query strings/timestamps stripped). A pasted value that is not a recognized URL is left as-is (assumed to already be an id). ## Acceptance criteria - [ ] Pasting each supported URL form into `id` sets `provider` and reduces the field to the bare id - [ ] Non-URL input is left untouched - [ ] No sidecar, schema, or server changes; stored content shape identical - [ ] Unit tests for the URL parsing cover the listed forms plus a non-URL passthrough case - [ ] Manual check: paste URL, save, preview shows the click-to-load facade for the right video ## Blocked by None - can start immediately
Author
Owner

This was generated by AI during triage.

Triage confirmed — enhancement, ready-for-agent. The issue body is the authoritative agent brief.

Verified against the codebase: video-embed.yaml stores provider (select: youtube/vimeo) + id (text) exactly as described, so the change is genuinely web-editor-only with no schema/server/shortcode impact. The click-to-load facade for the manual check exists in the theme's video-embed.html.

> *This was generated by AI during triage.* **Triage confirmed — enhancement, ready-for-agent.** The issue body is the authoritative agent brief. Verified against the codebase: `video-embed.yaml` stores `provider` (select: youtube/vimeo) + `id` (text) exactly as described, so the change is genuinely web-editor-only with no schema/server/shortcode impact. The click-to-load facade for the manual check exists in the theme's `video-embed.html`.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Cloonar/deckle#97
No description provided.