-
-
-
- Gameplay review
-
-
- Import a session, find the clips, draft the post
-
-
- Load a folder of keyframes from a long session, generate a concise recap, ask
- follow-up questions, and turn the strongest moments into platform-ready clip metadata.
-
-
-
-
Selected files
-
{selectedFiles.length} file(s)
-
{t(formatSpoilerMode(form.spoilerMode))}
-
-
-
-
-
- Game
- setForm(prev => ({ ...prev, gameId: event.target.value }))}
- className="w-full rounded-xl border border-stone-200 bg-white px-3 py-2 outline-none ring-0 transition focus:border-primary-500"
- placeholder="Apex Legends"
- />
-
-
- Session title
- setForm(prev => ({ ...prev, sessionTitle: event.target.value }))}
- className="w-full rounded-xl border border-stone-200 bg-white px-3 py-2 outline-none ring-0 transition focus:border-primary-500"
- placeholder="Ranked climb on Friday night"
- />
-
-
- Source label
- setForm(prev => ({ ...prev, sourceLabel: event.target.value }))}
- className="w-full rounded-xl border border-stone-200 bg-white px-3 py-2 outline-none ring-0 transition focus:border-primary-500"
- placeholder="/recordings/apex/night-01"
- />
-
-
- Spoiler mode
-
- setForm(prev => ({ ...prev, spoilerMode: event.target.value as SpoilerMode }))
- }
- className="w-full rounded-xl border border-stone-200 bg-white px-3 py-2 outline-none ring-0 transition focus:border-primary-500">
- Off
- Light
- Full
-
-
-
- Preset name
- setForm(prev => ({ ...prev, presetName: event.target.value }))}
- className="w-full rounded-xl border border-stone-200 bg-white px-3 py-2 outline-none ring-0 transition focus:border-primary-500"
- placeholder="Apex coaching preset"
- />
-
-
- Focus areas
- setForm(prev => ({ ...prev, coachingFocus: event.target.value }))}
- className="w-full rounded-xl border border-stone-200 bg-white px-3 py-2 outline-none ring-0 transition focus:border-primary-500"
- placeholder="aim, positioning, fight selection"
- />
-
-
- Preset notes
-
-
- Clip platforms
- setForm(prev => ({ ...prev, platforms: event.target.value }))}
- className="w-full rounded-xl border border-stone-200 bg-white px-3 py-2 outline-none ring-0 transition focus:border-primary-500"
- placeholder="twitch,kick,youtube"
- />
-
-
-
- setForm(prev => ({ ...prev, audioFeedback: event.target.checked }))
- }
- />
- Enable audio summary notes
-
-
-
-
-
-
- Choose folder / frames
-
-
- {analysisBusy ? 'Analyzing…' : importBusy ? 'Importing…' : 'Import and analyze'}
-
-
- {draftBusy ? 'Drafting…' : 'Refresh clip metadata'}
-
-
- The core will analyze image frames. For raw video files, point this at extracted
- keyframes.
-
-
-