Skip to content

Develop#510

Merged
ShaneIsrael merged 37 commits intomainfrom
develop
Mar 22, 2026
Merged

Develop#510
ShaneIsrael merged 37 commits intomainfrom
develop

Conversation

@ShaneIsrael
Copy link
Copy Markdown
Owner

This pull request introduces several new features and improvements focused on video tagging and cropping, as well as enhancements to the user interface and dependency updates. The most notable changes are the addition of video tags for improved search and categorization, support for video cropping, new routes and UI for tag browsing, and robustness improvements for video thumbnails. Several new dependencies have also been added to support these features.

Feature Additions

  • Added support for video cropping, allowing users to serve and select cropped versions of videos when available. (README.md [1] app/client/src/common/utils.js [2]
  • Introduced video tags for improved search and categorization, including UI components and state management for tags. (README.md [1] app/client/src/components/cards/CompactVideoCard.js [2] [3] [4] [5]

Routing and UI Enhancements

  • Added new routes and views for browsing all tags and viewing videos by tag, and updated navigation to support tag search. (app/client/src/App.js [1] [2] [3] [4] [5]

User Experience Improvements

  • Improved thumbnail loading robustness in CompactVideoCard by adding retry logic and error handling, reducing broken thumbnails and improving user experience. (app/client/src/components/cards/CompactVideoCard.js [1] [2]

yahya-kousa and others added 30 commits March 16, 2026 19:43
…tiple tags 2. added flushing of text buffer such that if typing a tag and pressing the "Done" button, the tag gets applied 3. moved tag editing into UpdateDetailsModal
2. added tag visibility to sidebar section in Settings.js
Add manual SteamGridDB asset selection for games
- Replace solid-color cards with horizontal layout: dark background,
  colored left accent stripe (inset shadow), and a subtle gradient wash
  from the tag color across the card
- Tag icon glows in its accent color; video count shown as a colored
  badge on the right
- In edit mode, each card gains a palette button (PaletteIcon) that
  opens an "Edit Tag Color" dialog with a live preview, SketchPicker,
  and a "Reset to default" button
- TagChip component updated to match: left accent stripe via box-shadow
  instead of solid background fill, keeping the color as an accent

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ShaneIsrael and others added 7 commits March 20, 2026 22:17
Videos can now be trimmed non-destructively: the original file is never
touched, but start_time/end_time are stored in the DB and an FFmpeg
stream-copy crop is written to derived/{id}/{id}-cropped.mp4. Any
existing transcoded quality variants (480p/720p/1080p) are deleted and
re-generated from the cropped file in a background thread.

- Alembic migration adds start_time, end_time, has_crop to video_info
- VideoInfo model + json() serialization updated
- util.py: create_video_crop() FFmpeg stream-copy helper
- api.py: get_video_path() handles quality='cropped'; new
  /api/video/original (login_required) serves original file for waveform
  editor; PUT /api/video/details/<id> triggers _apply_crop_async() or
  _clear_crop() + auto re-transcode in daemon threads; /api/video
  refactored to use shared _stream_video_file() helper
- WaveformCropper.js: WaveSurfer.js v7 + RegionsPlugin waveform editor
  with draggable crop region, numeric inputs, and Reset button
- UpdateDetailsModal.js: embeds WaveformCropper, saves start_time/end_time
- CompactVideoCard.js: passes crop props to UpdateDetailsModal
- utils.js getVideoSources: points Source quality at cropped file when
  has_crop is true (nginx and flask serving modes)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@ShaneIsrael ShaneIsrael merged commit 8108649 into main Mar 22, 2026
2 checks passed
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.

3 participants