- Brand
- LYRC
- Category
- Content & Design
- Primary Subcategory
- Video & Podcast Editing
Integration details
Description
LYRC makes lyric videos for independent musicians. Ask ChatGPT to make a lyric video for your song, make a music video for a new single, or make Instagram Reels for a release, and LYRC builds them from your songs. You set up a song once at lyrc.studio. LYRC transcribes and times the lyrics and puts cut markers on the beat. After that, ChatGPT can: - make a new video for that song and fill every cut with stock footage (30 moods, from club nights to nature) or your own clips - show you the storyboard right in the chat - switch between lyric animation styles, or turn them off and set the font, colors and outline yourself - fix a misheard word or retime a line - add color grades and transitions that land on the beat - swap, zoom or lock individual clips - pull clips out of a video link - make up to 30 videos at once for a release, then keep or ditch each one - export a finished MP4 and post it to Instagram now or schedule it Exports and Instagram posts only go through after you confirm them in the chat. Finished videos play in the chat with a download link that doesn't expire. Limits: you need a LYRC account with at least one song set up at lyrc.studio. Songs are uploaded in the LYRC app, not in ChatGPT. Instagram posting needs an Instagram professional account connected in LYRC.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Video & Podcast Editing
- Secondary Subcategories
- None listed
- Brand
- LYRC
- Access
- Account required
- First tracked
- 2026-10-16
- Tool count
- 57
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your score is coming
ChatGPT now suggests Plugins on its own when they match a user's request.Your Plugin Discovery Score measures how often yours appears, and it will show here as soon as it’s ready.
What discovery looks like

Get alerts for LYRC
Get updates when LYRC’s Discoverability Score or category rank changes.
Competing in ChatGPT Video & Podcast Editing
View Category57 tools agents can invoke
List LYRC stock footage categories, for discovery. Pass the returned ids to auto_fill_project as stock_category_ids. Read-only, free.
list_stock_categories
Browse the LYRC footage library (the user's OWN clips — extracted footage, uploads, AI b-roll; stock footage is separate, see list_stock_categories). Without folder_id: the folder tree (kind "folder" or "extraction" — an extraction is one batch of clips pulled from a single source video, moved as a unit) plus any LOOSE clips that sit in no folder at all. With folder_id (a folder id, an extraction id, or the string "loose"): the clips inside it. Clip ids work in auto_fill_project via their extraction_id, and in move_footage / rename_clip / delete_clip directly. Every id is in this tool's own text, in [brackets] after each name. Also renders a browser card for the user; their taps are NOT reported back to you. Read-only, free.
list_footage
Cancel one scheduled (not-yet-posted) Instagram post. Posts that already started publishing cannot be canceled. Free.
cancel_scheduled_post
Apply any Style-tab change to an existing LYRC project — everything the editor UI can do. TWO-LAYER MODEL (read this first): a LYRC video has a lyric animation preset — also called a "choreography preset" — (preset_id, e.g. "choreo-knockoutGlow") layered UNDER manual text styling (the text/color/effects/animation groups below). While a preset is active it OWNS text rendering — the preset's own knobs are preset_settings (scale/seed/highlightColor/emojis/motion; call list_lyric_presets to see which of those a given preset actually uses), and anything you write to text/color/effects/animation is saved but stays INVISIBLE until the preset is removed (the tool warns every time this happens). Pass preset_id: "none" to turn the preset off — this unlocks full manual font/color/effects/animation control, exactly like clicking "None" in the editor's preset picker. Other things this tool can do: flip aspect_ratio, restyle the text (font/size/color/gradient via text + color groups), add effects (outline/shadow/glow/highlight), set word animations, move the lyrics block (lyric_position, -1..1 offsets or "center"), set clip framing (framing.fit_mode fit|fill applies to ALL clips + framing.background for letterbox), configure the text hook fully (hook group: enable, style_preset, size, position 0-100%, time window), Stencil-family outline/top-layer (stencil group), display_mode, background_color, bpm. Only fields you pass change. Call list_fonts for valid font names. Changes re-bake server-side, so the editor preview and export match a real UI click exactly.
apply_styling
Whether the user's Instagram is connected to LYRC and whether their plan allows auto-posting. Call before post_to_instagram or schedule_rollout_batch. If not connected, the user connects it themselves on the LYRC Posts page (that flow needs their Instagram login — it cannot be done from here). Read-only, free.
get_instagram_status
Check a LYRC clip extraction job's status by id (from extract_clips). Read-only, free.
get_extraction_status
Get the LYRC account credit balance, export quota, and plan. Call before any tool that spends credits. Shows a balance card in chat where supported. Read-only, free.
get_credits
Check a LYRC export's status by id (from export_project). On completion it shows the video in chat where supported and returns the permanent download link. Read-only, free.
get_export_status
Create a folder in the LYRC footage library (optionally inside another folder). Free.
create_footage_folder
PERMANENTLY delete one footage clip (its video file is removed from storage — cannot be undone). Two-step: without confirm:true it returns the clip so you can get the user's explicit yes; call again with confirm:true. Free.
delete_clip
PERMANENTLY delete a footage folder AND everything inside it — subfolders, extractions, and every clip (files removed from storage; cannot be undone). Two-step: without confirm:true it returns exactly what would be deleted; get the user's explicit yes, then call again with confirm: true. Free.
delete_footage_folder
PERMANENTLY delete a LYRC template — and, unavoidably, EVERY project made from it (the app cascades). Two-step: without confirm:true it returns the template and how many projects would go with it. If it has projects, you must ALSO pass delete_projects_too:true — never do that without the user's explicit yes. Free.
delete_template
PERMANENTLY delete a LYRC project (its video files are cleaned up too — this cannot be undone). Two-step: without confirm:true it returns what would be deleted so you can get the user's explicit yes; call again with confirm:true to actually delete. Library footage used by the project is never deleted. Free.
delete_project
Delete words or whole lines from a LYRC project's lyrics: delete_word (line + word index; deleting the last word in a line removes the line) and delete_line (line index). Indexes come from get_lyrics. Operations apply in order and each delete shifts the indexes after it, so list them from the last line/word backwards. To keep a word in the lyrics but take it off the video, use edit_lyrics hide_words instead. If a lyric preset is active the choreography re-bakes automatically. undo_last_change restores the lyrics as they were before the call.
delete_lyrics
Copy a LYRC project into a new project — same clips, same styling, same lyric timing, owned by the caller. The go-to tool whenever the user wants to reuse a FINISHED video instead of rebuilding it: "make a widescreen version of this one", "same video but try different footage", "duplicate this before I mess with it". Pass aspect_ratio to flip the output shape on the copy (9:16 <-> 16:9) in the same call — this is the "widescreen version" shortcut: the copy's clip framing and lyric-animation bake are automatically re-fit for the new shape, exactly like a manual apply_styling aspect change, so you don't need a follow-up call. Omit aspect_ratio to copy at the same shape as the source. The new project keeps the source's edit mode (beat/freeform — this can never change) and rollout batch membership is NOT copied (a duplicate is its own standalone project). Free — no credits, no confirmation needed; it only creates, it destroys nothing.
duplicate_project
Edit one clip slot in a LYRC project — everything the editor can do to a single clip: set_clip_id places a SPECIFIC clip from the footage library into the slot (ids from list_footage; unlike auto_fill_project which picks randomly); framing repositions it (zoom 0.1-4, x/y 0-1 where 0.5,0.5 = centered, rotation ±180°, or reset:true for auto); fit re-frames it as "fit" (whole clip, letterboxed) or "fill" (cover, cropped) with an optional zoom on top; slip_offset scrubs which part of the source clip plays (seconds into the source); locked protects it from shuffles; clear removes it. Pass slot_index from get_project. Multiple options combine in one call (set_clip_id then framing then slip then lock); clear must be alone.
edit_clip
Edit a scheduled Instagram post's caption and/or time before it fires — same as drag-rescheduling or editing the caption on the Posts calendar. Only works while the post is still scheduled (or awaiting its export, caption-only in that case). Post ids come from list_scheduled_posts. Free; the post still goes out on its own — this does NOT post anything new. The old caption and time are overwritten, not kept, so confirm the new ones with the user first.
update_scheduled_post
Edit a LYRC project's FX timeline — what the editor's FX tab does. smart_fx auto-places filters + transitions timed to the song (coverage/chaos/filter_amount 0-1; leaning biases which FX get picked — auto: no bias; impact: hard hits (808 Slam, Zoom Punch, Spin Cut, Glitch Stutter); flash: bright pops + color glitches (Luma Flash, RGB Split Cut, Glitch Stutter); smooth: soft blends (Beat Dissolve, Ink Bloom, Shutter Wipe, Push Stack, Whip Pan). reroll:true rolls a fresh arrangement; otherwise knob changes keep the current one. Needs 2+ cut markers on the project. Every project gets its OWN random roll even with identical settings — do not promise a consistent look across a batch of videos. Manual ops: add_filter (a color grade over a start-end span — spans cannot overlap, adjust the existing one or take it off with remove_fx first), add_transition (snaps to the nearest cut marker within ~0.75s, errors if none is that close — don't guess arbitrary times), update_filter/update_transition by index from list_fx (indexes SHIFT after any add or removal — re-read list_fx between edits), grade_scope (what the filters color: video = footage only, lyrics = footage + lyric text, all = footage + lyrics + hook text — grading lyrics/all can wash out a glowing lyric preset). Hand-editing an auto entry (update_filter/update_transition) turns it into a manual one, so future re-rolls leave it alone; manual FX always survives a re-roll either way. To take FX off, use remove_fx. Ids come from list_fx. Texture overlays (grain, light leaks, CRT, ...) render in exports but have no MCP path yet. undo_last_change reverts a whole edit_fx call.
edit_fx
Edit a LYRC project's lyric text and timing — what the editor's Lyrics tab / timeline word tools do. IMPORTANT for typos or a missing word: prefer set_word_text / insert_word / split_word — they preserve the OTHER words' real timings. set_line_text re-spreads the WHOLE line evenly across its span in place of each word's real timing, so only use it as a last resort for a genuine full-line rewrite. Ops: fix a word (set_word_text), retime a word (set_word_timing, seconds), insert one word into a line without touching its neighbours (insert_word — after_word index, -1 for the head; give start/end yourself or leave them out and the route derives a sensible window from the gap around it), split one word into two at a character offset with the time window divided proportionally (split_word, at_char), rewrite a whole line (set_line_text — words are redistributed evenly across the line's existing time span, see warning above), add a line (insert_line with a start/end window + after_line, -1 for the top), hide/show words from render (hide_words/show_words, whole line when words omitted — hiding keeps the word, use it when the user wants a word gone from the video but not from the lyrics), shift just ONE line (shift_line delta — use this instead of shift_timing when only one line needs to move), shift a range later/earlier (shift_timing delta, optionally from_line onward or bounded with to_line inclusive), and fill_gaps ("hold until next word"). To remove words or lines from the lyrics, use delete_lyrics. Indexes come from get_lyrics — call it first. Multiple operations apply in order in one call. If a lyric preset is active the choreography re-bakes automatically so the preview/export match. undo_last_change reverts a whole edit_lyrics call.
edit_lyrics
Export every kept, ready video in a Rollout batch — THE most expensive tool here. Each video consumes one export: monthly quota first (free), then a flat 15-credit toll each once quota runs out (only if allow_credits: true). Two-step: without confirm:true nothing is spent — it returns the batch size so you can put the cost to the user; call again with confirm:true after their explicit yes. Exports run in the background — check progress with list_recent_exports.
export_rollout_batch
Start rendering a LYRC project to a downloadable video. Consumes 1 export from the monthly quota (and this token's rolling 24h export cap) — call get_credits first if unsure there is quota left. Two-step: called WITHOUT confirm:true it spends NOTHING and returns the cost — where the chat shows a confirm card the user can tap Export now themselves; otherwise put the cost to the user, get their explicit yes, then call again with confirm:true. Never export without that yes; the free editor preview exists for checking. On confirm it returns immediately with a queued export_id; poll it with get_export_status or wait_for_export. Requires a token with the spend scope. On success, structuredContent.cost is always {type:'export_quota', amount:1} — the same {type, amount} shape extract_clips and the other spending tools use for their own cost, so a caller can branch on cost.type/cost.amount without per-tool special-casing.
export_project
Extract clips from a video previously previewed with analyze_url. SPENDS CREDITS — 2 per clip (scene_count * 2). Call analyze_url first to preview the cost and get the session_key + regions this tool requires. Returns immediately with a queued job_id; poll it with get_extraction_status. Requires a token with the spend scope. On success, structuredContent.cost is always {type:'credits', amount} — the same {type, amount} shape export_project and the other spending tools use for their own cost, so a caller can branch on cost.type/cost.amount without per-tool special-casing.
extract_clips
Fills or re-rolls the project's unlocked slots with clips from any of three sources: stock_category_ids (LYRC stock footage — ids from list_stock_categories), folder_ids (the user's OWN footage folders — the folder ids list_footage returns, including folders you organised yourself with create_footage_folder/move_footage), and/or source_video_ids (a whole extraction/B-Roll batch — extract_clips and get_extraction_status both return the source_video_id). Use folder_ids for "use MY clips" / "use my <name> folder"; they mix freely with the other two. Pass at least one source. Locked slots are preserved. Call again to re-roll, or pass slot_indexes to re-roll only specific slots.
auto_fill_project
Fresh playable URL plus the permanent download link for a completed LYRC export. Used by the export-result widget — not intended for model use (the video URL is presigned and short-lived). Read-only, free.
get_export_media
Thumbnail/poster URLs for footage or stock clips WHERE THEY EXIST. Used by the footage browser widget — not intended for model use (the URLs are presigned and short-lived). Read-only, free.
get_footage_media
Poster frames for a rollout batch, one per video WHERE THEY EXIST. Used by the rollout deck widget — not intended for model use (the URLs are presigned and short-lived). Read-only, free.
get_rollout_media
Storyboard media for a LYRC project: per-slot timings plus poster-frame image URLs WHERE THEY EXIST — thumbnails are generated after a clip is created, so freshly extracted footage often has none yet and those slots come back without an image. Used by the storyboard widget — not intended for model use (the URLs are presigned and short-lived). Read-only, free.
get_project_media
Review-queue actions on one video in a rollout batch — what the Review stage of the Rollout page does: keep (un-discard), discard (mark it ditched so batch export/schedule skips it — the video itself stays), or retarget (repoint which stock categories / own-footage sources its pool draws from — this ARMS the new sources but does NOT change the footage on screen; follow it with reshuffle_rollout_video to actually pull from them, or the video keeps showing the old clips). Project ids come from get_rollout_batch. Free; keep and discard undo each other.
review_rollout_video
The user's Instagram post queue and history: status 'queue' (scheduled + about to post), 'posted', or 'failed'. Shows the queue as cards in chat where supported. Read-only, free.
list_scheduled_posts
List the available FX — 14 filter grades (Teal & Orange, VHS Wash, Super 8, ...) and 11 transitions (808 Slam, Zoom Punch, Glitch Stutter, ...) with the ids edit_fx takes, a one-line `look` for each describing what it actually looks like, and the 4 Smart FX `leaning` options with what each biases toward. Texture overlays (grain, light leaks, CRT, ...) render in exports but have no MCP path yet — not listed here. Pass project_id to ALSO see that project's current FX timeline (filter spans, transitions with times, Smart FX settings) with the indexes edit_fx updates and remove_fx removals use — re-read after any add/removal since indexes shift.
list_fx
List the fonts available for lyric text — the same list the editor's font picker shows: every built-in family plus any fonts the user uploaded to their account. Pass a returned `family` string as apply_styling's text.font_family. `languages` lists the non-English languages a built-in font supports (English is always supported unless noted).
list_fonts
List the available lyric animation styles — also called "choreography presets" — (fly, wave, brat, and the rest of the in-app registry, plus "none"), for discovery. A LYRC video renders text in two stacked layers: the lyric animation preset (if any) OWNS text rendering; manual text styling (font/size/color/effects/animation on apply_styling) only shows up when NO preset is active. Each entry here tells you what that specific preset lets you tune: color_control says what its color knob does (highlight_active_word tints just the current word; whole_word_fill fills the whole word; null means no color knob at all), supports_emojis/supports_motion/supports_scale/supports_reposition say which preset_settings keys and lyric_position actually do something, font_locked means text.font_family is ignored, tunable_settings is the exact preset_settings key list this preset accepts. The "none" entry is not a real preset — pass preset_id: "none" to turn the active preset OFF and unlock full manual text styling. The returned id is exactly what preset_id accepts on create_project_from_template or apply_styling (both tools normalize a bare id like "fly" to its canonical "choreo-fly" form, but pass the id as-is to be safe). Read-only, free, no network call.
list_lyric_presets
List this account's recent LYRC exports, most-recent first, from the last 48 hours only (older exports are not returned). Shows a gallery with download buttons in chat where supported. Returns at most 20; when there are more, the response says so and gives the real total — a rollout batch can easily produce more than that. Optionally filter by status. Read-only, free.
list_recent_exports
List the account's Rollout batches (newest first). Read-only, free.
list_rollout_batches
List the LYRC templates in this account, most-recently-updated first. Supports search (case-insensitive title match) and page (1-based, 20 per page). Use the returned id with create_project_from_template — the ids are in this tool's own text, in [brackets] after each title. Also renders a song picker card for the user; their taps are NOT reported back to you, so never wait for one. Read-only, free.
list_templates
List the LYRC video projects in this account, most recently EDITED first — use this to find "the latest project" or look one up by name. Returns id/title/status/updated_at; pass the id to get_project (which also shows the user a visual storyboard), auto_fill_project, apply_styling, or export_project. search is a case-insensitive title match over the 60 most recently edited projects; page is 1-based, 20 per page. Read-only, free.
list_projects
Create a Rollout batch: up to 30 filled videos in one shot, cycling through the given templates and filling every slot from the given footage sources (stock_category_ids from list_stock_categories, folder_ids for the user's own footage folders from list_footage, and/or source_video_ids from extractions). Creating and filling is FREE — nothing is spent until the batch is exported. For "give me 8 more like this one": pass copy_style_from_project_id (a project the user already approved) and every video in the batch starts from that project's LOOK — its choreography preset, lyric styling, effects timeline, and any lyric-transcription fixes the user already made — instead of the bare template's. Footage is still re-shuffled fresh per video from the sources given here (that IS the point of a batch); only the look is inherited, never the clips. Skips the apply_styling + edit_fx + edit_lyrics-per-video dance entirely. Returns the batch_id used by export_rollout_batch / schedule_rollout_batch / get_rollout_batch.
ignite_rollout
Move footage into a folder (or out of every folder with folder_id: null). Moves individual clips by id (max 40 per call) and/or whole extractions (extraction_ids — each moves its entire batch of clips as a unit, which is usually what the user means for "put my extracted clips in X"). Free.
move_footage
Post one of the user's finished LYRC exports to their connected Instagram as a Reel — now, or scheduled (scheduled_for, ISO datetime, 2 minutes to 30 days ahead). This is a PUBLIC post. Two-step: without confirm:true nothing is posted — it echoes the exact video, caption, and timing for the user to approve, and where the chat shows a confirm card they can tap Post themselves; otherwise NEVER pass confirm:true unless the user has seen and approved that exact caption and timing. Set trial:true for an Instagram TRIAL REEL — shown to NON-FOLLOWERS only, so a dud never reaches the artist's own audience; it needs a minimum follower count and is refused (nothing posted) if the account is under it. Ask which they want rather than assuming. export_id comes from list_recent_exports or export_project. Free (the export was the paid step).
post_to_instagram
Preview a video URL before spending any credits: fetches its title/duration and runs scene detection to see how many clips extraction would produce and what it would cost (2 credits per scene). Spends nothing itself. Returns session_key + regions — pass both to extract_clips to actually spend credits and produce clips.
analyze_url
Read everything about how a LYRC project currently looks and what styling is allowed to change — call this BEFORE using apply_styling (to know whether font/color/effects will actually render, and what per-clip zoom/position values to edit relative to), and AFTER (to confirm what actually landed, since a write can silently land somewhere that is not currently rendered). Reports the active lyric animation preset (or none) with its capabilities, the effective manual styling on file, layout/framing, the text hook, and a compact per-clip zoom/position/lock summary.
get_style
Read a LYRC project's lyrics with word-level timing — line and word indexes here are exactly what edit_lyrics operations take. Each word shows [start-end] in seconds; hidden words are marked. Also reports whether "hold until next word" (fill_gaps) is on. Shows a timed-lyrics card in chat where supported.
get_lyrics
Take FX off a LYRC project's FX timeline: remove_filter / remove_transition by index from list_fx (indexes shift after each removal, so go from the highest index down), clear_auto (drops every Smart-FX-placed filter and transition plus the Smart FX settings, keeps the ones added by hand), clear_all (removes every filter and transition, hand-added ones included, plus the Smart FX settings). Operations apply in order. undo_last_change restores the FX as they were before the call.
remove_fx
Rename one footage clip. Free.
rename_clip
Rename a footage folder — or an extraction: pass its id exactly as list_footage shows it (extraction ids carry the "sv:" prefix). Free.
rename_footage_folder
Rename a LYRC template (max 50 characters — longer is trimmed). Titles are unique per account: if the name is taken, LYRC appends a suffix — the response reports the FINAL name actually saved. Find template ids with list_templates. Free.
rename_template
Rename a LYRC project. Find project ids with list_projects. Free.
rename_project
Re-roll one rollout video's unlocked footage from its batch's clip pool — the Reshuffle button in the Rollout Review stage. Pass slot_indexes to re-roll only specific slots; locked slots never change. To pull from different sources, retarget it first with review_rollout_video. Project ids come from get_rollout_batch. Free; undo_last_change puts the previous footage back.
reshuffle_rollout_video
Push a project's lyric text, timing, and styling fixes back onto its PARENT TEMPLATE (the song) so every video made from that song FROM NOW ON inherits the fix too — not just this one project. Without this, a lyric typo fixed in one video comes back broken in every other video of the same song. SAVES: lyrics + timing always, cut markers (unless the project is freeform), lyric style, manual text styling, and display mode when the project has them — mirrors the editor's own "Save to template" button. DOES NOT SAVE the lyric animation preset or its settings, the effects timeline, the text hook, aspect ratio, or the footage — do not tell the user their LOOK became the song's default, because it did not. PROJECTS ALREADY MADE from the template are NOT changed — only future ones. Two-step: without confirm:true nothing is written, it returns a preview of which template would change and what would change; get the user's explicit yes, then call again with confirm: true to actually write it. project_id comes from list_projects or get_project.
save_to_template
Export (same costs as export_rollout_batch) AND schedule a whole Rollout batch to the user's connected Instagram, spread across a date window. Requires Instagram connected (get_instagram_status) and a plan with auto-posting. Two-step: without confirm:true nothing is spent or scheduled — get the user's explicit yes on the video count, captions plan, and dates first.
schedule_rollout_batch
LYRC ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve LYRC's ChatGPT Plugin discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are LYRC alternatives on ChatGPT?
As of 2026-10-16, LYRC competes with Descript, AI Producer by OpusClip, BlitzReels, Butter, DevMotion, Klap, Montage, NewsTune Studio and 8 more in ChatGPT Video & Podcast Editing, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.