PageSourceSearch

https://playcode.io/marketing/assets/entries/pages_product-video-maker.DUzZJhok.js

js playcode.io collected 2026-09-24 08:30:28 UTC 34,311 bytes, 1 lines download raw bytes

1import{d as e}from"../chunks/chunk-PFNUcy31.js";import{b as t,v as n,y as r}from"../chunks/chunk-DMB0yE4e.js";import{F as i,b as a,d as o,pt as s}from"../chunks/chunk-6gBfx-tj.js";import{t as c}from"../chunks/chunk-DkPyUHjp.js";var l={slug:`/product-video-maker`,primaryKeyword:`product video maker`,meta:{title:`Product Video Maker: Composed, Not Generated | Playcode`,description:`Playcode composes video from HTML inside your own app: exact length, any aspect ratio including 1:1, with music and voiceover generated in.`},hero:{eyebrow:`For the video you have to make again next release`,h1:`Product Video Maker`,h1Span:`That Composes Video From Your Own Code`,subtitle:`Playcode does not film anything and does not invent footage from a prompt. It builds the video out of a page: your words, your colors, your interface, stepped frame by frame and encoded to an MP4 inside your own app. Exact length, exact cuts, any aspect ratio - and it repeats next week with new content.`,placeholders:[`A 15-second square card announcing the feature we shipped this week...`,`A vertical ad for my studio offer - 15 seconds, with music...`,`A launch video for the site you just built me, widescreen...`,`An animated logo sting under 8 seconds for the top of every video...`,`A changelog clip per release, generated from our release notes...`,`A square stat card for the monthly number, no sound needed...`],primaryCta:`Start Building My Video`},answerBlock:{question:`How does Playcode work as a product video maker?`,answer:`Playcode has no footage button. It composes video from HTML inside your own full-stack app: you author the frame, it renders exact frames to MP4. An 18-second 1080p composition produced exactly 540 frames, 18.000 seconds, in 27.6 seconds of wall clock - at any aspect ratio, with music and voiceover generated in-product.`},howItWorks:{title:`How a Composed Video Gets Made on Playcode`,subtitle:`From "we need a clip for this launch" to a file you can render again next month`,steps:[{title:`Say Where It Gets Posted`,description:`The destination decides the frame before anything is designed. A square card for a feed, 9:16 for a Reel or a Story, widescreen for the site or a release page. Composition takes any pixel size, so the aspect ratio is a decision rather than whatever a tool happens to output.`,description2:`Length is decided in the same breath. Ten to fifteen seconds is the sweet spot, and it is a real constraint: you wait for the render, so a 60-second piece costs you four times the wait for a video most people scroll past anyway.`},{title:`The Project Becomes a Full-Stack App`,description:`Rendering runs a headless browser plus FFmpeg, and a static site has nowhere to run either of them. Playcode AI converts the project to a full-stack app first and says so plainly. Node, FFmpeg and Chromium are already on the machine - nothing to install, nothing to download.`,description2:`That conversion is why the video ends up inside your own app rather than in an export queue you do not control: the thing that renders it is a service you own and can call again.`},{title:`Playcode AI Authors the Frame`,description:`It scaffolds a composition and writes it: the layout, the type, the reconstructed interface, and one paused animation timeline the renderer can step through frame by frame. Every visible element carries its own start time and duration, so a cut lands on the millisecond you asked for.`,description2:`Fonts come from a bundle of 42 faces across 18 families baked into the project, so the render works with no network at all. Ask for a font outside that set and it has to be fetched at build time - which fails the render closed if the network is down.`},{title:`The Sound Is Generated to the Exact Length`,description:`Music, sound effects, and voiceover are generated in-product and come back normalized to about -14 LUFS, the level social platforms target. Ask for a music bed exactly as long as the video and it stops on the last frame instead of running two seconds past the end.`,description2:`On a 9:16 ad this is not decoration. A silent fifteen-second vertical video reads as a broken upload and gets scrolled past. On a three-second logo sting, leave it silent - there is no room for a track to say anything.`},{title:`Render, Look at It, Then Publish`,description:`The render runs as a background job, because it outlives a normal command timeout. When it finishes you get the frame c
1ount and the exact duration - and then you look at real frames, because every genuine defect found in testing was caught by looking, not by a validator.`,description2:`Nothing publishes itself. You preview, you say yes, and then it goes out. Change one word later and re-render: the video comes back identical except for that word.`}]},payloadSections:[{kind:`comparison-rows`,eyebrow:`The honest boundary`,title:`Composed Video and Generated Footage Do Different Jobs`,subtitle:`They are not rivals, and the best videos use both. Knowing which one you need is the whole decision.`,aspectLabel:`What the video has to do`,otherLabel:`Generated footage`,playcodeLabel:`Composition in Playcode`,rows:[{aspect:`Show a real face, real hands, steam, water, a street`,other:`This is exactly what it is for, and nothing else comes close`,playcode:`Cannot do it. Drop a generated clip in as a bed and compose your type over it`},{aspect:`Put your exact words, price, or version number on screen`,other:`Legible on-screen text is the weak spot of generated video`,playcode:`You author every character, so it says exactly what you wrote`},{aspect:`Land on an exact length and an exact cut`,other:`Clip length comes in a few fixed sizes, and the cut is wherever it lands`,playcode:`Length is a number you set: an 18-second composition rendered 18.000 seconds`},{aspect:`Post to a square (1:1) feed`,other:`Most tools output 16:9 and 9:16 only`,playcode:`Any pixel size, square included`},{aspect:`Change one word and get the same video back`,other:`A re-roll is a fresh result, not a corrected take of the same clip`,playcode:`Deterministic. Re-render and only the word you changed is different`},{aspect:`Iterate ten times before you like it`,other:`Every attempt costs credits again`,playcode:`No per-second model cost - it spends render time on your machine instead`}]},{kind:`feature-list`,eyebrow:`What the renderer actually gives you`,title:`What You Get When the Video Is Code`,subtitle:`Measured on the shipped pipeline, not promised`,features:[{title:`Exact length, exact cuts`,description:`Length is an input, not an outcome. An 18-second 1080p30 composition produced exactly 540 frames and a duration of 18.000 seconds, h264 and aac, in 27.6 seconds of wall clock on fast hardware.`},{title:`Any aspect ratio, square included`,description:`Any pixel size the destination wants: 1:1 for a feed card, 9:16 for a Reel, 16:9 for the site. Most AI video tools give you 16:9 and 9:16 and stop there.`},{title:`Deterministic re-renders`,description:`No clocks, no unseeded randomness, no network at render time. Change one word, render again, and you get the same video with that word changed - which is what makes a weekly version of it possible.`},{title:`Sound that ships inside the file`,description:`Music at a length you specify, sound effects, and voiceover, all generated in-product at about -14 LUFS, then encoded into the MP4 alongside the picture rather than handed to you as a second file to sync.`},{title:`Fonts that survive an offline render`,description:`42 woff2 faces across 18 families are bundled into the project as data, so type renders with no network. Stay inside that set and a render can never fail on a missing font.`},{title:`It renders inside your own app`,description:`The renderer is part of the full-stack project Playcode built for you - your code, on your machine, exportable. There is no separate video account, no export queue, and no seat to buy for the person who runs it next month.`}]},{kind:`operational-guide`,eyebrow:`A practical build guide`,title:`Make a Video That Does Not Fail Silently`,subtitle:`Composed video breaks quietly: the file renders, the duration is right, and the defect only shows up when someone watches it. These are the checks that catch it first.`,prerequisites:[{requirement:`A full-stack project, not a static site`,why:`Rendering runs a headless browser plus FFmpeg. A static site has no machine to run either on, so the project has to convert before the first frame can exist.`,verification:`Ask Playcode AI to set the project up as a full-stack app. It performs the conversion and tells you when the machine is running; Node, FFmpeg and Chromium are already installed on it.`},{requirement:`The words, already cut to length`,why:`There is no auto-fit anywhere in the pipeline. A headline that is too long is not shrunk, not wrapped, and not flagged - it runs off the frame while the render reports success.`,verification:`Write the headline and the one supporting line inside a character budget first, the way you would for a slide. If you cannot say it in a line and a half, the video is the wrong format for that message.`},{requirement:`A destination, so the frame is chosen and not inherited`,why:`Square reads on a feed card, 9:16 on a Reel or Story, widescreen on a site or a release page. Composition accepts any pixel size, which means nothing picks the aspect ratio for you.`,verification:`Name the exact place it gets posted before anything is designed. "LinkedIn feed" is an answer; "social" is not.`},{requirement:`Any image the video needs, in hand or describable`,why:`There is no stock library. Every image in the frame is one you supply or one generated for you - a vertical offer ad in particular lives or dies on having a single good image.`,verification:`Point at the file, or describe the shot well enough that Playcode AI can generate it before the composition is written.`}],steps:[{title:`Settle destination, aspect ratio and length in the first message`,location:`Playcode AI chat`,action:`Say where the video gets posted, what it has to say, and how long it runs. Aim for 10 to 15 seconds. If you genuinely need more than 30, say so up front so the wait is a decision instead of a surprise.`,expectedResult:`The composition is built at the right pixel size from the start, rather than a widescreen piece that gets letterboxed into a vertical feed later.`,verification:`Playcode AI states the frame size and duration back to you before it writes anything.`},{title:`Let it convert the project to full-stack`,location:`Playcode AI chat`,action:`Accept the conversion when the AI says it needs a full-stack app in order to render. Do not try to work around it - a static project has no place to run a browser or FFmpeg.`,expectedResult:`The project has a running machine, and the render toolchain is already present on it.`,verification:`Ask for a toolchain check. It reports the browser and encoder as present; nothing should need downloading.`},{title:`Author the frame, with the timing rules respected`,location:`The composition file in your project`,action:`Describe the scenes and let Playcode AI write the composition: one paused timeline, every timed element marked as a clip and placed as a direct child of the root, and the full-screen background on its own full-bleed layer rather than on the root element.`,expectedResult:`Each scene appears and leaves when you said it would, over a background that survives compositing.`,verification:`Run the built-in check, then pull still frames from a few points in the timeline and look at them. Trust the contrast findings; treat a layout warning as a reason to look rather than proof of a defect.`},{title:`Generate the audio at exactly the video length`,location:`Playcode AI chat`,action:`Ask for a music bed the same number of seconds as the video, instrumental if there is on-screen text or narration over it, and describe what the track is for rather than asking for "background music".`,expectedResult:`The bed stops on the last frame, and it arrives at roughly -14 LUFS so it sits at the same volume as everything else in the feed.`,verification:`Check the reported duration and loudness in the result. You cannot listen to it before it is placed, so the prompt has to be specific the first time - a re-roll returns a different track, not a better take of the same one.`},{title:`Render as a background job, then look at the frames`,location:`The project terminal, then the rendered file`,action:`Start the render as a background job and wait for it to report back. A render of any real length outlives a 30-second command limit, so a foreground run gets killed halfway with a misleading error.`,expectedResult:`A finished MP4 with the frame c
1ount and duration you asked for, and a loudness pass applied so it does not play quiet next to other posts.`,verification:`Confirm the reported frame count matches duration times frame rate, then open the still frames and read every word on screen with your own eyes.`},{title:`Preview, get a yes, then publish`,location:`The preview link, then the published app`,action:`Watch the finished video before anyone outside the room sees it, and confirm every logo in the frame is actually yours.`,expectedResult:`The video goes out because a person approved it, not because a pipeline decided it was done.`,verification:`Play the file end to end at the size it will be watched, with sound on, on a phone if that is where it is going.`}],decisions:[{question:`Composed frame, or a generated clip underneath it?`,options:[`Pure composition: typography and reconstructed interface, no footage at all`,`A generated clip as a background bed, with composed type over the top`],recommendation:`Start pure. A feature card, a stat card, a changelog clip or a logo sting needs no footage at all, and those are the pieces that come out best today. Add a generated clip underneath only when the message genuinely needs real-world motion - a face, a street, water, fabric - and then compose your words on top of it rather than asking the clip to carry them.`,tradeoff:`Pure composition cannot show anything that has to be filmed, and it spends render time on your machine. A generated bed brings real motion but cannot hold legible text or an exact length, and every re-roll costs credits again for a result you cannot correct - only replace.`},{question:`One video, or a video you make again every release?`,options:[`One composition, authored for this launch and then done`,`A composition plus a data file, so the same frame renders per release, per property, or per month`],recommendation:`If the request is genuinely a one-off, build the one video. But listen for the tell: "we need a video" is very often "we need a video every week". When it repeats, spend the extra hour turning the composition into a generator - the video is code, so a changelog card per release or an offer ad per listing costs one render each after that.`,tradeoff:`A one-off is faster today and has nothing to maintain. A generator costs more up front and needs its input kept clean, but it removes the recurring job entirely and keeps every version on brand by construction.`}],tests:[{kind:`happy-path`,scenario:`A 15-second square composition is rendered with a generated music bed of the same length.`,expectedResult:`One MP4 at 1080x1080 with exactly 450 frames at 30fps, a duration of 15.000 seconds, h264 video and aac audio, and the music ending on the final frame.`},{kind:`invalid-input`,scenario:`The generator is fed your worst real record: a headline twice as long as the layout was designed for, a missing image, and a font that is not in the bundled set.`,expectedResult:`Your app rejects or truncates the input before the render starts, and says which field was the problem. It must not render a "successful" video with a sentence running off the edge of the frame.`},{kind:`duplicate-retry`,scenario:`The render button is pressed twice, or a slow render is retried before the first one reports back.`,expectedResult:`One finished file per completed render, no half-written MP4 ever served, and because renders are deterministic the second run produces a byte-for-byte equivalent video rather than a different one.`},{kind:`production-smoke`,scenario:`On the published link, a colleague renders the current video in a fresh private browser session, downloads it, and uploads it to the platform it was made for.`,expectedResult:`The download completes over HTTPS, the platform accepts the aspect ratio without cropping, and the audio plays at the same volume as the posts around it.`}],failureCases:[{symptom:`The headline runs off the edge of the frame and nothing warned anyone`,likelyCause:`There is no auto-fit. Long text is not shrunk, not wrapped to a second scene, and not flagged - the render simply succeeds with the words off-screen.`,diagnostic:`Render from your longest real record, not your neatest one, and pull a still frame from the middle of that scene.`,fix:`Cap line count and characters when the copy is written, the same way you would for a slide, and split a long message across two scenes instead of adding one more line to a full one.`},{symptom:`A vertical video is all headline at the top and empty space at the bottom`,likelyCause:`A layout that was not written to fill a portrait frame. Portrait and square compositions come out top-heavy, with 30 to 45 percent dead space below, unless the composition explicitly occupies the whole frame.`,diagnostic:`Look at a still frame at the size it will actually be watched, on a phone, rather than 
1in a wide preview panel on a desktop.`,fix:`Ask for the layout to fill the frame: move the anchor down, scale the type up, and put something deliberate in the lower third instead of leaving it to the background.`},{symptom:`A 15-second vertical ad gets posted and reads as a broken upload`,likelyCause:`It has no audio. On a 9:16 feed, silence does not read as a quiet video - it reads as a file that failed, and viewers scroll past it.`,diagnostic:`Play it on a phone with the sound on, in the feed it is meant for, next to the posts around it.`,fix:`Generate an instrumental bed the exact length of the video. Music is load-bearing on 9:16, optional on a muted-autoplay hero, and best left off anything under about three seconds.`},{symptom:`The render dies after roughly 30 seconds with a confusing error`,likelyCause:`It was started as a normal foreground command. Any real render outlives a 30-second command limit and gets killed while it is still working.`,diagnostic:`Compare the wall clock at the failure against the command timeout, and check whether the partial output stops mid-file.`,fix:`Run the render as a background job and wait for it to report back. Expect roughly realtime on fast hardware - 18 seconds of video took 27.6 seconds - and several times slower on a small machine.`},{symptom:`The render fails outright as soon as the brand font is set`,likelyCause:`The font is outside the bundled set. Bundled faces are baked into the project as data and always work; anything else has to be fetched at build time, and that fails the render closed when the network is unavailable.`,diagnostic:`Check the font name against the bundled families before blaming the composition, then try the render again with a bundled face substituted.`,fix:`Stay inside the 42 bundled faces for anything that has to render reliably, and keep the outside brand font for the website rather than the video.`},{symptom:`Every frame renders black, and the preview looked completely fine`,likelyCause:`The full-screen background was set on the root element instead of on a full-bleed layer inside it. The root background can be dropped at compositing time, which the browser preview never shows you.`,diagnostic:`Pull a still frame from the render rather than trusting the preview - this one is invisible until you look at actual output.`,fix:`Move the background onto its own absolutely positioned child that covers the frame, and re-render. Looking at output frames catches this class of defect; a validator does not.`}]},{kind:`use-cases`,eyebrow:`What comes out best today`,title:`Four Pieces Worth Composing`,subtitle:`Ranked by how good the output actually is, not by how impressive they sound. Start at the top.`,cards:[{title:`The feature or changelog card`,description:`Square or widescreen, 10 to 15 seconds, pure typography and a reconstructed slice of your interface. Nothing to source, no photography, no logo to misidentify - which is exactly why it is the best output measured so far. Ship one per release and the changelog starts arriving as video.`,outcome:`The strongest unit measured`},{title:`The vertical offer ad`,description:`A 15-second 9:16 piece for a local business: the offer, the price, the one good image, the call to action, cut to a music bed that ends on the last frame. The image and the sound are the load-bearing parts here - a silent one reads as broken and gets scrolled.`,outcome:`Needs one good image and music`},{title:`The launch video for the site you just built`,description:`The strategically interesting one, because Playcode already holds the content: the copy, the palette, the pages, the interface. The clip is composed from the same material the site is made of, so it is on brand without a brand handover. It is also the least settled of the four - composing real screenshots is where this is weakest today, and you confirm every logo in the frame before anything ships.`,outcome:`Built from what is already there`},{title:`The animated logo sting`,description:`Under eight seconds, your mark and your name resolving into the lockup you put at the top of everything else. Cheapest and most reliable unit in the system, and it renders in a few seconds. Leave it silent - there is no room for a track to say anything in three seconds.`,outcome:`Cheapest, most reliable`}]},{kind:`vertical-proof`,eyebrow:`Measured, not promised`,title:`What the Renderer Actually Produced`,subtitle:`Measured on the shipped composition pipeline on 2026-08-03, on fast hardware. Your machine will be slower.`,stats:[{value:`540 frames`,label:`from an 18-second 1080p30 composition - exactly 540`},{value:`18.000 s`,label:`output duration, h264 and aac, frame-exact`},{value:`27.6 s`,label:`of wall clock to render it, audio included`},{value:`1:1, 9:16, 16:9`,label:`any pixel size, square included`}]}],comparison:{title:`Your Options for a Short Product Video`,subtitle:`Four ways to get 15 seconds made, compared honestly`,options:[{title:`Prompt-to-Video Models`,examples:`Text-to-vi
1deo generators`,priceRange:`Credits per clip`,priceLabel:`and again for every re-roll`,items:[`Real motion nothing else can produce`,`Legible on-screen text is the weak spot`,`A few fixed lengths, 16:9 and 9:16 only`,`A re-roll is a different clip, not a fix`],verdict:`Right for footage, wrong for a message`},{title:`Template Video Tools`,examples:`Canva, CapCut, and similar`,priceRange:`$10 - $30/month`,priceLabel:`per editor seat`,items:[`Better at design than we are, honestly`,`You still make each video by hand`,`The template lives in their tool`,`Nothing regenerates when the data changes`],verdict:`Best for one nice video`},{title:`A Motion Designer`,examples:`Freelancer or studio, After Effects`,priceRange:`$500 - $5,000+`,priceLabel:`per video, plus the wait`,items:[`The best-looking result by a distance`,`Days per video, and a queue`,`Every copy tweak is another round trip`,`Not a thing you run weekly`],verdict:`Unbeatable output, unusable cadence`},{title:`Playcode AI`,examples:``,priceRange:`From $21/month`,priceLabel:`with annual billing - or $25 monthly`,priceNote:`No credit card required`,items:[`Composed from your own words and interface`,`Exact length, exact cuts, any aspect ratio`,`Music, effects and voiceover generated in`,`Change a word, re-render, same video`,`Renders inside the app Playcode built you`,`Your code - export it whenever you want`],verdict:`Built for the video that repeats`}]},faq:{title:`Questions People Ask Before Making a Video This Way`,items:[{question:`Does Playcode generate video footage from a prompt?`,answer:`No. Playcode composes video - it builds the frame out of a page and renders it, so it produces typography, motion and reconstructed interface, never filmed material. When a video genuinely needs real-world motion, a generated clip is dropped in as a background bed and the composed words sit on top of it. That distinction is the whole page, and pretending otherwise would waste your afternoon.`},{question:`Can it turn my product photo into a spinning product video?`,answer:`No. Playcode does not process product photography - there is no path where a photo of your product becomes an ecommerce clip of it rotating on a plinth. That is a different category of tool, and if that is the job you have, buy that tool. What Playcode makes instead is the composed piece: the feature card, the offer ad, the launch clip, the logo sting.`},{question:`Will it look as good as After Effects or Canva?`,answer:`Not in the way you mean, and we would rather say it here than have you find out at the end. There is no 3D camera, no keying, no hand-tuned motion a designer would sweat over, and no template gallery. What you get is a clean, on-brand, correctly-timed piece that says the right words at the right millisecond - and that repeats next month with new content.`},{question:`Why does my project have to be full-stack?`,answer:`Because rendering runs a headless browser and FFmpeg, and a static site has no machine to run them on. Playcode AI converts the project first and tells you it is doing so. The upside is that the renderer ends up as part of an app you own: the same endpoint that made this video makes the next one, without anyone opening a video tool.`},{question:`How long should the video be?`,answer:`Ten to fifteen seconds. This is a constraint, not a taste: rendering is roughly realtime on fast hardware - 18 seconds of video took 27.6 seconds - and several times slower on a small machine, so you wait for every second you add. It also needs about 1.5 GB of memory while it works. Past 30 seconds, expect to plan for the wait.`},{question:`Can it make a square video?`,answer:`Yes, and it is one of the few things here that is a genuine advantage. Composition takes any pixel size, so 1:1 is as ordinary as 16:9. Most AI video tools output 16:9 and 9:16 only, which is awkward when the square feed card is the format you actually post.`},{question:`Does the video come out with sound?`,answer:`Yes. Music at a length you specify, sound effects, and voiceover are generated in-product, arrive at about -14 LUFS, and are encoded into the MP4 alongside the picture. Music is essential on a 9:16 ad, optional on a muted hero video, and best omitted under about three seconds. Narration is clean and even, and flat on emotion - listen before you publish anything client-facing.`},{question:`Will it publish the video for me?`,answer:`No, by design. Every video is preview-then-publish. In testing, a heuristic that tried to pull brand logos off a website came back with 30 third-party press logos and not one of the brand's own marks - so nothing auto-posts, and you confirm the logo in the frame is yours before it goes anywhere.`}]},internalLinks:{title:`Where video builders go next`,links:[{role:`pillar`,label:`AI app builder`,href:`/ai-app-builder`,description:`The bigger picture: describe an app, Playcode builds and runs 
1it.`},{role:`hub`,label:`All Playcode builders`,href:`/build`,description:`Every builder path: apps, websites, bots, and business workflows.`},{role:`related`,label:`AI presentation maker`,href:`/ai-presentation-generator`,description:`The same idea in slides: an app that generates the deck you remake monthly.`},{role:`related`,label:`Playcode Cloud`,href:`/cloud`,description:`The runtime that renders it: backend, storage, jobs, snapshots, rollback.`}]},finalCta:{headline:`Make the video out of your own material.`,subtitle:`Describe the piece you need, say where it gets posted, and let Playcode compose it inside an app you own.`,vision:`Starts as one 15-second clip. Becomes the video you ship with every release.`,cta:`Start Building My Video`,trust:`No credit card required. AI credits included.`},jsonLd:{applicationName:`Playcode Product Video Maker`,applicationDescription:`Playcode composes video from HTML inside a full-stack app it builds for you. Describe the piece and Playcode AI authors the composition: exact length, exact cuts, any aspect ratio including 1:1, with music, sound effects and voiceover generated in-product and encoded into the MP4. Renders are deterministic, so changing one word and re-rendering returns the same video with that word changed. Playcode composes video; it does not generate footage or process product photography.`},hideHeroDemoVideo:!0,v3Overrides:{howItWorks:{demo:{realtorPrompt:`We ship a feature every week and never have a video for it. I need a 15-second square card I can make again each release.`,styleQuestion:`Where does this video get posted?`,styleOptions:[`A square card for the feed`,`Vertical, 9:16, for Reels and Stories`,`Widescreen, for the site and the release page`,`I'll describe my own setup below`],tasks:[`Frame size & duration`,`Scene timeline`,`Type & bundled fonts`,`Generating the music bed...`,`Render job`,`Preview before publish`],businessName:`Release Video Studio`,domain:`release-video.playcode.io`,customDomain:`video.your-company.com`,businessTagline:`A 15-second card for every feature we ship`,searchPlaceholder:`Search by release...`,featuredListings:`Recent renders`,newLabel:`NEW`,openLabel:`READY`,properties:[{price:`v4.2-feature.mp4`,name:`Northwind Traders`,details:[`1080x1080`,`15.000s`,`Aug 3`]},{price:`launch-promo.mp4`,name:`Fabrikam`,details:[`1080x1920`,`15.000s`,`Aug 3`]}],getInTouch:`Render video`,live:`Your video studio is live!`}}},brief:{audience:`Primary: an operator or founder already inside Playcode who needs a short video for something they built - a feature card, an offer ad, a launch clip - and has no motion designer. Secondary: a small-business owner who needs a vertical ad and has one good image.`,intent:`Not a search intent. This page is reached from the Solutions menu and from internal links: the visitor already knows Playcode and is asking "can it make me a video, and what kind?"`,category:`App (Solutions / product page for the composed-video capability, on the full-stack rung).`,firstArtifact:`One short composed video rendered inside their own full-stack app: a 10-15 second feature card, vertical offer ad, launch clip, or logo sting, at the aspect ratio the destination needs.`,nextRung:`The composition plus a data file becomes a generator: one video per release, per listing, or per month, rendered from the app they already own.`,anxiety:`Two fears, and one wrong expectation. Fears: "this will look like a cheap AI video" and "it will waste my afternoon". The wrong expectation is the market meaning of "AI product video" - turning a product photo into a spinning ecommerce clip - which Playcode does not do, and the page says so twice.`,proof:`Measured on the shipped composition pipeline 2026-08-03: an 18s 1080p30 composition rendered exactly 540 frames, duration 18.000s, h264 + aac, in 27.6s of wall clock on fast hardware; any pixel size including 1:1; audio generated in-product at about -14 LUFS.`,endOutcome:`The video that used to be skipped (or outsourced, or made by hand in a template tool) gets made in-house in an afternoon, and then gets made again next release for the cost of one render.`,cta:`Start Building My Video (Start-Building class, hero + final CTA).`,forbiddenClaims:[`No claim that Playcode generates footage, actors, or photoreal motion - it composes; real-world motion is a generated clip dropped in as a bed and the page says so`,`No product-sh
1ot generation from photography - Playcode does not process product photography, and the FAQ kills that assumption explicitly`,`No claim that Playcode matches After Effects or out-designs Canva - it produces typography and composed layouts, not motion design`,`No auto-publishing anywhere - a site-capture logo heuristic returned 30 third-party press logos and zero of the brand's own marks, so every video is preview-then-publish`,`No render-speed, frame-count, or loudness claims beyond the measured 2026-08-03 numbers`,`No hiding the constraints: full-stack conversion, the 10-15 second sweet spot, and the absence of auto-fit are stated on the page, not buried`,`No "free" as the selling point - "no credit card required" only`,`No guarantees, no bald #1`]}},u=a({__name:`+Page`,setup(e){return(e,t)=>(i(),o(c,{content:s(l)},null,8,[`content`]))}}),d=e({default:()=>f}),f=u,p={hasServerOnlyHook:{type:`computed`,definedAtData:null,valueSerialized:{type:`js-serialized`,value:!0}},isClientRuntimeLoaded:{type:`computed`,definedAtData:null,valueSerialized:{type:`js-serialized`,value:!0}},onBeforeRenderEnv:{type:`computed`,definedAtData:null,valueSerialized:{type:`js-serialized`,value:null}},dataEnv:{type:`computed`,definedAtData:null,valueSerialized:{type:`js-serialized`,value:{server:!0}}},guardEnv:{type:`computed`,definedAtData:null,valueSerialized:{type:`js-serialized`,value:null}},onRenderClient:{type:`standard`,definedAtData:{filePathToShowToUser:`/renderer/+onRenderClient.ts`,fileExportPathToShowToUser:[]},valueSerialized:{type:`plus-file`,exportValues:t}},onPageTransitionStart:{type:`standard`,definedAtData:{filePathToShowToUser:`/renderer/+onPageTransitionStart.ts`,fileExportPathToShowToUser:[]},valueSerialized:{type:`plus-file`,exportValues:r}},onPageTransitionEnd:{type:`standard`,definedAtData:{filePathToShowToUser:`/renderer/+onPageTransitionEnd.ts`,fileExportPathToShowToUser:[]},valueSerialized:{type:`plus-file`,exportValues:n}},Page:{type:`standard`,definedAtData:{filePathToShowToUser:`/pages/product-video-maker/+Page.vue`,fileExportPathToShowToUser:[]},valueSerialized:{type:`plus-file`,exportValues:d}},hydrationCanBeAborted:{type:`standard`,definedAtData:{filePathToShowToUser:`/renderer/+config.ts`,fileExportPathToShowToUser:[`default`,`hydrationCanBeAborted`]},valueSerialized:{type:`js-serialized`,value:!1}}};export{p as configValuesSerialized};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.