Files
ds-galo/openspec/changes/add-video-support/specs/ui-workspace/spec.md
T
iu d38ede0201 feat(video): add video upload with remux/transcode playback
Add video as a media kind in photos: streaming upload with per-kind
limits, ffprobe metadata, poster frame reusing the image variant
pipeline, and a playback object (remux when web-compatible, else
h264/yuv420p/aac transcode). Video jobs run on a separate pool with a
long lease. Frontend gains a video viewer, grid badge/duration and
video upload.
2026-10-11 20:37:53 +03:00

3.9 KiB

Spec Delta

MODIFIED Requirements

Requirement: Загрузка фотографий из рабочего стола

Загрузка SHALL запускаться действием в тулбаре; перетаскивание файлов над альбомом SHALL показывать оверлей и загружать их; пустой альбом SHALL показывать подсказку-зону загрузки. Загрузка SHALL быть доступна только ролям с правом загрузки; принимать SHALL изображения и видео.

Scenario: Перетаскивание

  • WHEN пользователь с правом загрузки перетаскивает файлы над альбомом
  • THEN показывается оверлей загрузки, и файлы загружаются

Scenario: Пустой альбом

  • WHEN пользователь открывает альбом без фото и имеет право загрузки
  • THEN в центре показана зона-подсказка загрузки

Scenario: Загрузка видео

  • WHEN пользователь с правом загрузки выбирает или перетаскивает видеофайл
  • THEN видео загружается в альбом наравне с изображениями

ADDED Requirements

Requirement: Воспроизведение видео в просмотре

Видео в режиме просмотра SHALL воспроизводиться встроенным плеером с нативными контролами и постером до готовности варианта; зум, панорамирование и режим панорамы SHALL к видео не применяться, а действия скачивания, переноса, копирования и удаления SHALL оставаться доступными.

Scenario: Плеер

  • WHEN пользователь открывает видео в режиме просмотра
  • THEN показывается встроенный плеер, а до готовности варианта — постер

Scenario: Перемотка

  • WHEN пользователь перематывает воспроизведение
  • THEN плеер показывает запрошенный момент видео

Scenario: Готовность на лету

  • WHEN вариант видео становится готов, пока просмотр открыт
  • THEN плеер становится доступен без перезагрузки страницы

Scenario: Действия над видео

  • WHEN открыто видео в режиме просмотра
  • THEN доступны скачивание оригинала, перенос, копирование и удаление по правам

Requirement: Плитка видео в сетке

Плитка видео в сетке SHALL показывать постер, признак видео и длительность; открытие плитки SHALL открывать режим просмотра.

Scenario: Постер и признак

  • WHEN видео показано в сетке
  • THEN плитка показывает постер, значок воспроизведения и длительность

Scenario: Постер не готов

  • WHEN постер ещё не готов
  • THEN плитка показывает плейсхолдер и сетка отображается корректно

Scenario: Открытие из сетки

  • WHEN пользователь открывает плитку видео
  • THEN открывается режим просмотра видео