@gentbajko/slopify 4.0.0 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/account-limits.js +1 -1
- package/dist/adapters/alignment/audio.js +1 -1
- package/dist/adapters/alignment/cache.js +1 -1
- package/dist/adapters/alignment/multilingual.js +2 -1
- package/dist/adapters/alignment/runner.js +1 -1
- package/dist/adapters/alignment/worker.js +1 -1
- package/dist/adapters/explain.js +10 -9
- package/dist/adapters/host-cli/index.js +2 -1
- package/dist/adapters/host-cli/transport.js +2 -1
- package/dist/adapters/image/bytes.js +2 -1
- package/dist/adapters/image/codex.js +6 -5
- package/dist/adapters/image/fal.js +4 -3
- package/dist/adapters/image/google.js +3 -2
- package/dist/adapters/image/models.js +2 -2
- package/dist/adapters/image/openai.js +2 -1
- package/dist/adapters/image/replicate.js +3 -2
- package/dist/adapters/image/video.js +2 -1
- package/dist/adapters/key-probes.js +1 -1
- package/dist/adapters/llm/antigravity-models.js +1 -1
- package/dist/adapters/llm/antigravity.js +7 -6
- package/dist/adapters/llm/assistant-cli.js +1 -1
- package/dist/adapters/llm/claude-code-models.js +1 -1
- package/dist/adapters/llm/claude-code.js +3 -2
- package/dist/adapters/llm/codex-models.js +1 -1
- package/dist/adapters/llm/document-workspace.js +3 -2
- package/dist/adapters/llm/image-workspace.js +3 -2
- package/dist/adapters/llm/openrouter.js +2 -1
- package/dist/adapters/llm/run-cli.js +3 -2
- package/dist/adapters/tts/gemini.js +2 -1
- package/dist/adapters/tts/inworld-async.js +2 -1
- package/dist/adapters/tts/inworld.js +3 -2
- package/dist/adapters/tts/system.js +2 -1
- package/dist/catalog/registry.js +20 -13
- package/dist/catalog/schema.js +2 -1
- package/dist/catalog/validate.js +5 -2
- package/dist/edge/http/actions.js +7 -7
- package/dist/edge/http/app.js +3 -3
- package/dist/edge/http/assistant.js +3 -1
- package/dist/edge/http/backups.js +1 -1
- package/dist/edge/http/channel-memory.js +2 -2
- package/dist/edge/http/channels.js +1 -1
- package/dist/edge/http/checkpoints.js +7 -5
- package/dist/edge/http/design-templates.js +3 -3
- package/dist/edge/http/designs.js +1 -1
- package/dist/edge/http/document-themes.js +3 -3
- package/dist/edge/http/draft-problem.js +1 -1
- package/dist/edge/http/extension-auth.js +1 -1
- package/dist/edge/http/home.js +9 -1
- package/dist/edge/http/model-checks.js +4 -4
- package/dist/edge/http/onboarding.js +29 -12
- package/dist/edge/http/outputs.js +3 -2
- package/dist/edge/http/patch-notes.js +2 -2
- package/dist/edge/http/planning.js +1 -1
- package/dist/edge/http/project-create.js +1 -1
- package/dist/edge/http/project-templates.js +2 -2
- package/dist/edge/http/projects.js +22 -4
- package/dist/edge/http/prompts.js +2 -2
- package/dist/edge/http/providers.js +9 -10
- package/dist/edge/http/refusal.js +1 -1
- package/dist/edge/http/remote-access.js +4 -4
- package/dist/edge/http/remote-guard.js +2 -2
- package/dist/edge/http/reviews.js +1 -1
- package/dist/edge/http/revision-files.js +1 -1
- package/dist/edge/http/revisions.js +4 -4
- package/dist/edge/http/schedules.js +13 -11
- package/dist/edge/http/settings.js +6 -2
- package/dist/edge/http/social.js +5 -4
- package/dist/edge/http/staging.js +1 -1
- package/dist/edge/http/storage.js +12 -4
- package/dist/edge/http/studio.js +71 -19
- package/dist/edge/http/style-preview.js +2 -2
- package/dist/edge/http/template-studio.js +12 -9
- package/dist/edge/http/trash.js +1 -1
- package/dist/edge/http/youtube-edits.js +1 -1
- package/dist/edge/mcp/excluded-routes.js +4 -3
- package/dist/edge/mcp/instructions.js +3 -3
- package/dist/edge/mcp/library-tools.js +8 -5
- package/dist/edge/mcp/remake-tools.js +7 -4
- package/dist/edge/mcp/server.js +1 -1
- package/dist/edge/mcp/tools-channels.js +9 -9
- package/dist/edge/mcp/tools-designs.js +9 -9
- package/dist/edge/mcp/tools-library.js +7 -7
- package/dist/edge/mcp/tools-planning.js +18 -18
- package/dist/edge/mcp/tools-projects.js +10 -10
- package/dist/edge/mcp/tools-publishing.js +9 -9
- package/dist/edge/mcp/tools-runs.js +9 -9
- package/dist/edge/mcp/tools-schedules.js +6 -6
- package/dist/edge/mcp/tools-setup.js +20 -14
- package/dist/edge/mcp/tools-social.js +5 -4
- package/dist/edge/mcp/tools-storage.js +3 -3
- package/dist/edge/mcp/tools-template-studio.js +18 -18
- package/dist/edge/remote-access/model.js +1 -1
- package/dist/extension/slopify-studio-chrome.zip +0 -0
- package/dist/extension/slopify-studio-firefox.zip +0 -0
- package/dist/kernel/db/migrations/0078-uploaded-from-links.sql +7 -0
- package/dist/kernel/pipeline.js +12 -0
- package/dist/kernel/ports/settings-places.js +31 -0
- package/dist/kernel/ports/system-speech.js +31 -3
- package/dist/kernel/runner/attempt.js +11 -3
- package/dist/kernel/runner/providers.js +3 -2
- package/dist/kernel/runner/standalone.js +2 -2
- package/dist/main.js +5 -3
- package/dist/model-catalog.js +20 -0
- package/dist/patch-notes/4.0.0.md +13 -13
- package/dist/patch-notes/4.1.0.md +42 -0
- package/dist/patch-notes/index.json +6 -0
- package/dist/slices/admission/listing-facts.js +95 -0
- package/dist/slices/admission/repo.js +9 -6
- package/dist/slices/admission/rules.js +7 -7
- package/dist/slices/admission/state-words.js +34 -5
- package/dist/slices/assistant/cost.js +1 -1
- package/dist/slices/assistant/model.js +10 -3
- package/dist/slices/assistant/turn.js +5 -3
- package/dist/slices/autopilot/warnings.js +1 -1
- package/dist/slices/backups/service.js +5 -5
- package/dist/slices/channels/cast-images.js +1 -1
- package/dist/slices/channels/schema.js +1 -1
- package/dist/slices/channels/videos.js +1 -1
- package/dist/slices/control/providers.js +2 -2
- package/dist/slices/designs/budget.js +1 -1
- package/dist/slices/designs/calls.js +2 -2
- package/dist/slices/designs/check-context.js +4 -4
- package/dist/slices/designs/fields.js +4 -4
- package/dist/slices/designs/gate.js +7 -5
- package/dist/slices/designs/render-input.js +1 -1
- package/dist/slices/designs/requests.js +1 -1
- package/dist/slices/designs/runner.js +1 -1
- package/dist/slices/designs/sample.js +2 -1
- package/dist/slices/designs/service.js +1 -1
- package/dist/slices/designs/template-checks.js +2 -2
- package/dist/slices/designs/template-make.js +3 -3
- package/dist/slices/designs/templates.js +3 -3
- package/dist/slices/document/fonts.js +1 -1
- package/dist/slices/document/model.js +7 -4
- package/dist/slices/document/render.js +2 -1
- package/dist/slices/document/theme-schema.js +1 -1
- package/dist/slices/document/theme.js +49 -3
- package/dist/slices/episodes/summarize.js +2 -2
- package/dist/slices/estimate/index.js +28 -22
- package/dist/slices/estimate/requests.js +4 -4
- package/dist/slices/fixes/rules.js +3 -1
- package/dist/slices/fonts/catalog.js +2 -1
- package/dist/slices/fonts/coverage.js +2 -1
- package/dist/slices/images/appearance.js +2 -1
- package/dist/slices/images/scenes.js +2 -1
- package/dist/slices/keywords/digest.js +2 -1
- package/dist/slices/keywords/rules.js +2 -2
- package/dist/slices/keywords/specs.js +5 -5
- package/dist/slices/keywords/values.js +1 -1
- package/dist/slices/library/transfer.js +3 -3
- package/dist/slices/loudness/loudnorm.js +2 -1
- package/dist/slices/loudness/model.js +3 -2
- package/dist/slices/loudness/sentence-level.js +2 -1
- package/dist/slices/model-checks/rules.js +13 -0
- package/dist/slices/model-upkeep/model.js +1 -1
- package/dist/slices/model-upkeep/switch.js +3 -3
- package/dist/slices/model-upkeep/usage.js +13 -2
- package/dist/slices/narration/breaths.js +2 -1
- package/dist/slices/narration/clean-pieces.js +2 -1
- package/dist/slices/narration/pauses-model.js +3 -2
- package/dist/slices/narration/pronunciation.js +3 -2
- package/dist/slices/notifications/subject.js +2 -2
- package/dist/slices/onboarding/copy.js +19 -2
- package/dist/slices/onboarding/first-run.js +13 -38
- package/dist/slices/onboarding/install.js +2 -1
- package/dist/slices/onboarding/model.js +26 -21
- package/dist/slices/onboarding/preferred-model.js +14 -0
- package/dist/slices/onboarding/quick-short.js +103 -64
- package/dist/slices/onboarding/sample.js +4 -1
- package/dist/slices/onboarding/state.js +7 -0
- package/dist/slices/onboarding/template.js +6 -5
- package/dist/slices/outputs/add.js +3 -2
- package/dist/slices/outputs/service.js +2 -2
- package/dist/slices/patch-notes/library.js +1 -1
- package/dist/slices/play-drafts/readiness.js +3 -3
- package/dist/slices/play-drafts/review-inputs.js +1 -1
- package/dist/slices/play-drafts/service.js +17 -7
- package/dist/slices/project-templates/next-chapter.js +2 -1
- package/dist/slices/project-templates/provider-defaults.js +22 -0
- package/dist/slices/project-templates/setup-sections.js +26 -0
- package/dist/slices/project-templates/setup.js +6 -1
- package/dist/slices/rebuild/preview-details.js +5 -5
- package/dist/slices/rebuild/recipe-preparation.js +1 -1
- package/dist/slices/rebuild/recipe-save.js +2 -2
- package/dist/slices/rebuild/recipe-validation.js +5 -4
- package/dist/slices/rebuild/recipe-voices.js +3 -2
- package/dist/slices/rebuild/recipe-work.js +4 -4
- package/dist/slices/rebuild/recovery.js +6 -6
- package/dist/slices/rebuild/remake-outdated.js +5 -5
- package/dist/slices/rebuild/review-redo.js +1 -1
- package/dist/slices/rebuild/runtime-animate.js +2 -2
- package/dist/slices/rebuild/runtime-article.js +4 -3
- package/dist/slices/rebuild/runtime-document.js +5 -4
- package/dist/slices/rebuild/runtime-export-bed.js +2 -1
- package/dist/slices/rebuild/runtime-export-edit.js +2 -1
- package/dist/slices/rebuild/runtime-export-inputs.js +5 -4
- package/dist/slices/rebuild/runtime-export-short.js +1 -1
- package/dist/slices/rebuild/runtime-export.js +4 -3
- package/dist/slices/rebuild/runtime-image.js +4 -3
- package/dist/slices/rebuild/runtime-local.js +3 -2
- package/dist/slices/rebuild/runtime-narration-text.js +3 -2
- package/dist/slices/rebuild/runtime-provider.js +7 -6
- package/dist/slices/rebuild/runtime-review.js +6 -5
- package/dist/slices/rebuild/runtime-shorts.js +6 -5
- package/dist/slices/rebuild/runtime-store.js +17 -2
- package/dist/slices/rebuild/runtime-subtitles.js +13 -12
- package/dist/slices/rebuild/runtime-voices.js +2 -1
- package/dist/slices/rebuild/runtime-youtube.js +3 -2
- package/dist/slices/rebuild/service-readiness.js +11 -3
- package/dist/slices/research/synthesis.js +3 -2
- package/dist/slices/reviews/external-model.js +1 -1
- package/dist/slices/reviews/holds.js +5 -4
- package/dist/slices/reviews/model.js +8 -5
- package/dist/slices/reviews/rules.js +3 -3
- package/dist/slices/reviews/verdict.js +2 -1
- package/dist/slices/revisions/image-plan.js +1 -1
- package/dist/slices/revisions/mutation-assets.js +2 -1
- package/dist/slices/revisions/mutations.js +3 -2
- package/dist/slices/schedules/agenda.js +7 -5
- package/dist/slices/schedules/design-check.js +4 -4
- package/dist/slices/schedules/design-run.js +3 -3
- package/dist/slices/schedules/repo.js +6 -5
- package/dist/slices/schedules/schema.js +3 -0
- package/dist/slices/schedules/topics.js +5 -5
- package/dist/slices/settings/first-run.js +6 -32
- package/dist/slices/settings/health.js +30 -15
- package/dist/slices/settings/key-test.js +1 -1
- package/dist/slices/settings/model.js +4 -2
- package/dist/slices/settings/playback.js +2 -2
- package/dist/slices/shorts/keep.js +2 -1
- package/dist/slices/shorts/pick.js +4 -3
- package/dist/slices/shorts/prompts.js +2 -1
- package/dist/slices/shorts/render.js +3 -2
- package/dist/slices/social/media.js +5 -4
- package/dist/slices/social/pack.js +1 -1
- package/dist/slices/social/post-prompt.js +2 -1
- package/dist/slices/social/reshape.js +2 -2
- package/dist/slices/social/serve.js +1 -1
- package/dist/slices/social/service.js +3 -2
- package/dist/slices/social/state.js +1 -1
- package/dist/slices/storage/backup-import.js +2 -2
- package/dist/slices/storage/portable.js +1 -1
- package/dist/slices/storage/trim.js +23 -13
- package/dist/slices/studio/calendar.js +3 -1
- package/dist/slices/studio/disclosure.js +4 -4
- package/dist/slices/studio/model.js +1 -1
- package/dist/slices/studio/pack.js +9 -8
- package/dist/slices/studio/plan.js +1 -1
- package/dist/slices/studio/settings.js +6 -6
- package/dist/slices/studio/videos.js +23 -4
- package/dist/slices/style-preview/render.js +3 -3
- package/dist/slices/style-preview/schema.js +1 -1
- package/dist/slices/subtitles/captions.js +1 -1
- package/dist/slices/template-studio/anatomy-view.js +46 -3
- package/dist/slices/template-studio/bakeoff.js +3 -3
- package/dist/slices/template-studio/budget.js +6 -3
- package/dist/slices/template-studio/cards.js +78 -0
- package/dist/slices/template-studio/checks.js +99 -50
- package/dist/slices/template-studio/for-all.js +5 -5
- package/dist/slices/template-studio/free-video.js +1 -1
- package/dist/slices/template-studio/free.js +5 -5
- package/dist/slices/template-studio/model.js +19 -15
- package/dist/slices/template-studio/pack-import.js +14 -14
- package/dist/slices/template-studio/pack.js +9 -7
- package/dist/slices/template-studio/paid.js +12 -5
- package/dist/slices/template-studio/quote.js +18 -11
- package/dist/slices/template-studio/ready.js +7 -7
- package/dist/slices/template-studio/runner.js +1 -1
- package/dist/slices/template-studio/save.js +12 -12
- package/dist/slices/template-studio/say-it-as.js +3 -3
- package/dist/slices/template-studio/schedule-gate.js +1 -1
- package/dist/slices/template-studio/schedule-price.js +3 -1
- package/dist/slices/template-studio/schedule-sample.js +5 -1
- package/dist/slices/template-studio/schema.js +25 -0
- package/dist/slices/template-studio/service.js +3 -1
- package/dist/slices/template-studio/status.js +26 -9
- package/dist/slices/template-studio/topic.js +3 -3
- package/dist/slices/thumbnail/by-llm.js +1 -1
- package/dist/slices/uploads/repo.js +37 -1
- package/dist/slices/uploads/rules.js +3 -2
- package/dist/slices/video/edit-list.js +2 -2
- package/dist/slices/video/edit-settings.js +1 -1
- package/dist/slices/video/encoding.js +14 -5
- package/dist/slices/video/ffmpeg.js +2 -2
- package/dist/slices/video/plan.js +2 -1
- package/dist/slices/video/slideshow.js +1 -1
- package/dist/slices/voices/attribution.js +3 -2
- package/dist/slices/voices/model.js +9 -8
- package/dist/slices/voices/script.js +2 -1
- package/dist/slices/youtube/answer.js +2 -1
- package/dist/slices/youtube/edits-repo.js +1 -1
- package/dist/tutorials/AI-CLIs.md +25 -25
- package/dist/tutorials/Agents-MCP.md +32 -32
- package/dist/tutorials/Assistant.md +5 -5
- package/dist/tutorials/Backups.md +7 -7
- package/dist/tutorials/Calendar.md +17 -25
- package/dist/tutorials/Cast-Library.md +19 -19
- package/dist/tutorials/Channels.md +40 -35
- package/dist/tutorials/Costs-and-Run-Cost.md +38 -40
- package/dist/tutorials/Create-Article.md +114 -0
- package/dist/tutorials/Create-Extras.md +112 -0
- package/dist/tutorials/Create-Images.md +165 -0
- package/dist/tutorials/Create-Narration.md +178 -0
- package/dist/tutorials/Create-Overview.md +244 -0
- package/dist/tutorials/Create-Video-and-Style.md +144 -0
- package/dist/tutorials/Docker.md +3 -3
- package/dist/tutorials/Document-Themes.md +32 -32
- package/dist/tutorials/Editing-a-Project.md +94 -94
- package/dist/tutorials/FAQ.md +18 -18
- package/dist/tutorials/First-Launch-and-Welcome.md +50 -64
- package/dist/tutorials/Home-and-Projects.md +101 -76
- package/dist/tutorials/Home.md +33 -33
- package/dist/tutorials/Install.md +13 -13
- package/dist/tutorials/Intros-and-Outros.md +33 -34
- package/dist/tutorials/Keyboard-Shortcuts-and-Command-Palette.md +62 -58
- package/dist/tutorials/Keywords-Slopify-Fills.md +21 -21
- package/dist/tutorials/Models.md +27 -27
- package/dist/tutorials/Multiple-Voices.md +41 -40
- package/dist/tutorials/Narration-Aliases-and-Glossary.md +14 -14
- package/dist/tutorials/Notifications.md +21 -17
- package/dist/tutorials/Other-Languages.md +15 -15
- package/dist/tutorials/PDF-Documents.md +38 -29
- package/dist/tutorials/Posting-to-Social-Sites.md +12 -12
- package/dist/tutorials/Project-Page.md +118 -120
- package/dist/tutorials/Prompts-and-Templates.md +84 -0
- package/dist/tutorials/Prompts.md +45 -45
- package/dist/tutorials/Providers-and-Keys.md +105 -98
- package/dist/tutorials/Publishing-to-YouTube.md +31 -31
- package/dist/tutorials/Recovery-and-Retries.md +31 -31
- package/dist/tutorials/Remote-Access.md +2 -2
- package/dist/tutorials/Reviews-and-Checkpoints.md +90 -93
- package/dist/tutorials/Schedules.md +27 -28
- package/dist/tutorials/Settings-Reference.md +182 -204
- package/dist/tutorials/Shorts.md +34 -33
- package/dist/tutorials/Start-at-Login.md +3 -3
- package/dist/tutorials/Studio-Extension.md +22 -24
- package/dist/tutorials/Template-Studio.md +45 -42
- package/dist/tutorials/Templates.md +50 -79
- package/dist/tutorials/Trash.md +4 -4
- package/dist/tutorials/Troubleshooting.md +44 -44
- package/dist/tutorials/Uninstalling-and-Moving.md +5 -5
- package/dist/tutorials/Updating-and-Patch-Notes.md +18 -18
- package/dist/tutorials/Video-Editing.md +34 -34
- package/dist/tutorials/Where-Your-Files-Live.md +10 -10
- package/dist/tutorials/YouTube-Description.md +26 -26
- package/dist/tutorials/Your-First-Short.md +35 -35
- package/dist/tutorials/_Sidebar.md +15 -15
- package/dist/web/assets/index-BNftKQrA.css +1 -0
- package/dist/web/assets/index-Cpa58woP.js +459 -0
- package/dist/web/assets/pdf-BKh8f7R6.js +56 -0
- package/dist/web/assets/pdf.worker.min-BmVo14Nb.mjs +28 -0
- package/dist/web/assets/pdf.worker.min-D7i8o3wR.js +1 -0
- package/dist/web/index.html +2 -2
- package/package.json +2 -2
- package/dist/tutorials/Library-Overview.md +0 -76
- package/dist/tutorials/Play-Images.md +0 -165
- package/dist/tutorials/Play-Narration.md +0 -167
- package/dist/tutorials/Play-Outputs.md +0 -109
- package/dist/tutorials/Play-Overview.md +0 -227
- package/dist/tutorials/Play-Title-and-Article.md +0 -136
- package/dist/tutorials/Play-Video-and-Style.md +0 -143
- package/dist/web/assets/index-CkAI_2E7.css +0 -1
- package/dist/web/assets/index-DcD0cdfo.js +0 -334
- package/dist/web/assets/pdf-TODRwF31.js +0 -54
- package/dist/web/assets/pdf.worker.min-Dswkl-cV.mjs +0 -29
- package/dist/web/assets/pdf.worker.min-zC6nfbxG.js +0 -1
package/dist/tutorials/Shorts.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Shorts
|
|
2
2
|
|
|
3
|
-
Shorts turns the best moments of your long video into vertical clips for YouTube Shorts, TikTok and Reels, with no editing on your part. After the narration is timed, the
|
|
3
|
+
Shorts turns the best moments of your long video into vertical clips for YouTube Shorts, TikTok and Reels, with no editing on your part. After the narration is timed, the AI picks self-contained moments; each becomes a 1080×1920 (9:16) clip with new images, big word-by-word captions and its own title, description and hashtags.
|
|
4
4
|
|
|
5
|
-
**Where to find it:**
|
|
5
|
+
**Where to find it:** Create → **Extras** row → **Shorts**. On a finished project: the **Shorts** part, and **Edit settings** → **Extras** → **Shorts**.
|
|
6
6
|
|
|
7
7
|
## What you get
|
|
8
8
|
|
|
@@ -10,66 +10,67 @@ For each short:
|
|
|
10
10
|
|
|
11
11
|
- A vertical 1080×1920 MP4, cut from the long video's narration at sentence edges.
|
|
12
12
|
- New 9:16 images drawn for that clip (the long video's images are not reused).
|
|
13
|
-
- Big captions a little below the middle of the frame, two to four words at a time, with the word being spoken in a strong
|
|
13
|
+
- Big captions a little below the middle of the frame, two to four words at a time, with the word being spoken in a strong color.
|
|
14
14
|
- The short's title at the top for the whole clip, if **Title on screen** is on.
|
|
15
15
|
- A title (up to 60 characters), a one-line description ending with a link to the full video, and 3 to 5 hashtags.
|
|
16
16
|
|
|
17
|
-
Shorts are made in the Video stage, beside the long video
|
|
17
|
+
Shorts are made in the Video stage, beside the long video. They need narration.
|
|
18
18
|
|
|
19
19
|
## Turn on Shorts
|
|
20
20
|
|
|
21
|
-
1. On
|
|
21
|
+
1. On Create, open the **Extras** row.
|
|
22
22
|
2. Tick **Shorts**. It is greyed out, with "Needs narration", when the Narration row is off.
|
|
23
|
-
3. Set **
|
|
24
|
-
4. Optionally pick a **Shorts prompt** and an **Image
|
|
23
|
+
3. Set **Shorts per video** and **Length**.
|
|
24
|
+
4. Optionally pick a **Shorts prompt** and an **Image prompt** of your own (from **Prompts**).
|
|
25
25
|
5. Open **More shorts options** to set the title, speed, music and full video link. The disclosure's summary names what differs from the defaults, such as "Title on screen · 1.10× · Full video linked". The [Shorts preview](#shorts-preview) shows the result as you change them.
|
|
26
|
-
6. Check the estimate in the
|
|
26
|
+
6. Check the estimate in the rail and press **Make the video**.
|
|
27
27
|
|
|
28
28
|
## Options
|
|
29
29
|
|
|
30
30
|
| Option | What it does | Default / range |
|
|
31
31
|
|---|---|---|
|
|
32
32
|
| **Shorts** | Turns the step on. Turning it off keeps your numbers and prompts for next time. | Off |
|
|
33
|
-
| **
|
|
34
|
-
| **Length** | The shortest and longest a short may run, in seconds. The
|
|
35
|
-
| **Shorts prompt** |
|
|
36
|
-
| **Image
|
|
33
|
+
| **Shorts per video** | How many shorts to cut from this video. Each needs its own new images, so more shorts cost more image calls and more time to put together. | 3; 1 to 10 |
|
|
34
|
+
| **Length** | The shortest and longest a short may run, in seconds. The AI picks moments within these bounds. | 60 to 120; each between 15 and 180 |
|
|
35
|
+
| **Shorts prompt** | Your Shorts prompt the AI follows to pick the moments and write each short's title, description and hashtags. | **Built-in**: picks moments that make sense alone, open on a hook and end on a complete thought |
|
|
36
|
+
| **Image prompt** | Your Image prompt the shorts' new vertical images are drawn from. | **Built-in**: cinematic, high-contrast, uncluttered images with the subject large and centred, the lower half calm for captions, no text |
|
|
37
37
|
| **Title on screen** | Keeps the short's title at the top for the whole clip, large and bold in the caption font, below where the apps draw their own buttons. | On |
|
|
38
38
|
| **Speed** | Plays each short faster than the narration, with the pitch kept. | 1.00× (normal); 1.00× to 1.25× in steps of 0.05 |
|
|
39
39
|
| **Music volume** | How loud the background music plays under every short. It dips while the narrator speaks. Only used when you add a music file. | 15; 0 to 100 percent |
|
|
40
40
|
| **Full video link** | Each short's description ends with "Watch the full video:" and this link. Without it the line says `[PASTE THE FULL VIDEO LINK HERE]` for you to fill in. | Empty; up to 2,000 characters |
|
|
41
41
|
| Background music | An audio file mixed under every short, looped if shorter than a short. | None |
|
|
42
42
|
|
|
43
|
-
Write your own Shorts prompts and Image prompts in **
|
|
43
|
+
Write your own Shorts prompts and Image prompts in **Prompts** ([Prompts](Prompts)). To match the long video's look, pick one of your own Image prompts as the Image style.
|
|
44
44
|
|
|
45
45
|
## Shorts preview
|
|
46
46
|
|
|
47
|
-
While **More shorts options** is open (on
|
|
47
|
+
While **More shorts options** is open (on Create, or in **Edit settings** → **Extras** → **Shorts**), **Shorts preview** ("A few seconds of the sample as a short with your settings, made free on this computer") renders a few seconds of the bundled sample project as a 9:16 short, through the same renderer real shorts use: the big word-by-word captions in your caption font, the title on screen when **Title on screen** is on (the sample's title, "The Library of Alexandria"), and your **Speed**. The line under it reads, for example, "Title on screen · 1.10×". It renders on your computer at no cost; **Make the preview again** forces a fresh one.
|
|
48
48
|
|
|
49
49
|
## What it costs
|
|
50
50
|
|
|
51
51
|
- **Picking:** one text-model call picks the moments, then one call per short writes its image prompts.
|
|
52
|
-
- **Images:** each short gets one image per **Seconds per image** of its length (at least one), and each image is one image
|
|
53
|
-
- **
|
|
52
|
+
- **Images:** each short gets one image per **Seconds per image** of its length (at least one), and each image is one image call to your image service. Before the clips are picked, the estimate charges the most the step could ask for: every short at the longest length you allowed.
|
|
53
|
+
- **Putting them together:** done on your computer at no cost.
|
|
54
54
|
- **Reviews:** with Automatic reviews on, each short can be reviewed like other outputs. Picture reviews need Claude Code or Codex as the reviewer.
|
|
55
55
|
|
|
56
|
-
With the establishing image on, the shorts' images are drawn with it as a reference too, so characters and style stay the same. See [
|
|
56
|
+
With the establishing image on, the shorts' images are drawn with it as a reference too, so characters and style stay the same. See [Create: Images](Create-Images).
|
|
57
57
|
|
|
58
58
|
## See, copy and download your shorts
|
|
59
59
|
|
|
60
|
-
When the run finishes, the project page's **Shorts**
|
|
60
|
+
When the run finishes, the project page's **Shorts** part shows the shorts side by side. Above them sit **Download all 3 shorts (.zip)** (or **Download both shorts (.zip)**; none with one short), **Open folder** and **Pick different moments · AI and image calls**, and **Show what YouTube covers on a phone** draws the parts of the frame YouTube's buttons hide. Each short has:
|
|
61
61
|
|
|
62
62
|
- A vertical player (Slopify's own, showing the short's first picture until it plays), its title and length.
|
|
63
|
-
-
|
|
64
|
-
- One row of icon buttons whose names show when you point at them: **Download** (the short's MP4; left out when there is only one short, since the section's Download already fetches it), **Copy title, description and hashtags**, which puts all three on the clipboard in one go, and **More**, which holds **Make short N again**.
|
|
63
|
+
- Right under them, its actions in words: **Download (.mp4)**, **Copy for YouTube**, which puts its title, description, full video line and hashtags on the clipboard in one go, then its description and its hashtags, and **Make this short again · 4 calls** last (one AI call for its image prompts and one image call per image).
|
|
65
64
|
|
|
66
|
-
|
|
65
|
+
**Pick different moments** and **Make this short again** each ask first, naming their paid calls; press the button in the dialog and the work starts at once. The new version is saved for you, so the current shorts stay under **Versions**.
|
|
67
66
|
|
|
68
|
-
|
|
67
|
+
While the stage runs, a short not rendered yet says how far it got, such as "Making images · 2 of 5" or "Rendering". A short that failed says so and points you to Error details in the Video part.
|
|
68
|
+
|
|
69
|
+
To upload them, open **Copy for YouTube Studio**: each short is listed on its own, with its title, description and tags. See [Publishing-to-YouTube](Publishing-to-YouTube).
|
|
69
70
|
|
|
70
71
|
## Change the picked moments
|
|
71
72
|
|
|
72
|
-
1. Open the project and press **Edit settings**, then open **Shorts**.
|
|
73
|
+
1. Open the project and press **Edit settings**, then open **Shorts**.
|
|
73
74
|
2. Under **Picked clips**, each clip is shown by its first and last sentence.
|
|
74
75
|
3. Move a clip with **Earlier start**, **Later start**, **Earlier end** and **Later end**, one sentence at a time.
|
|
75
76
|
4. Or press **Use my own range** and pick the **Start sentence** and **End sentence** from the lists. **Back to the AI's choice** restores the model's pick.
|
|
@@ -77,17 +78,17 @@ To upload them, open **Prepare upload**: each short is listed on its own, with i
|
|
|
77
78
|
|
|
78
79
|
A clip must stay between the shortest and longest length you set and must not overlap another clip; the line under the clip says what to change. Moving a clip costs no text calls and keeps its images where the sentences stay the same.
|
|
79
80
|
|
|
80
|
-
## Pick new moments or
|
|
81
|
+
## Pick new moments or make one short again
|
|
81
82
|
|
|
82
|
-
| Action | What happens
|
|
83
|
+
| Action | What happens | Cost |
|
|
83
84
|
|---|---|---|
|
|
84
|
-
| **Pick different moments** |
|
|
85
|
-
| **Make short
|
|
86
|
-
| Change **
|
|
85
|
+
| **Pick different moments** | After its dialog, the AI picks new moments at once. Ranges you set by hand are dropped. A new clip on the same sentences as an old one keeps its images; any other clip gets new image prompts and images and is rendered again. **Keep these moments** cancels it. | One AI call, then for each new clip one AI call plus one image call per image |
|
|
86
|
+
| **Make this short again** | After its dialog, this one short's image prompts are written again, its images drawn again and the short rendered again, at once. Its moment, title and the other shorts stay as they are. | One AI call plus one image call per image |
|
|
87
|
+
| Change **Shorts per video**, **Length** or **Shorts prompt** | The moments are picked again, as with Pick different moments. | As above |
|
|
87
88
|
|
|
88
89
|
## Add background music
|
|
89
90
|
|
|
90
|
-
1. Open Edit
|
|
91
|
+
1. Open **Edit settings** → **Extras** → **Shorts** (or use the music control under **More shorts options** on Create).
|
|
91
92
|
2. Choose an audio file under **Background music (optional)**. It is looped if shorter than a short.
|
|
92
93
|
3. Set **Music volume**. The music dips while the narrator speaks.
|
|
93
94
|
4. Save and continue the run. **Remove the music** takes it off again.
|
|
@@ -97,20 +98,20 @@ A clip must stay between the shortest and longest length you set and must not ov
|
|
|
97
98
|
- **Multiple voices:** shorts start and end on a speaker's turn. See [Multiple-Voices](Multiple-Voices).
|
|
98
99
|
- **Other languages:** titles and hashtags are written in the project's language. In languages without word timing, shorts show whole caption groups instead of word by word. See [Other-Languages](Other-Languages).
|
|
99
100
|
- **Tables and figures:** a short that includes a described table or figure shows it upright.
|
|
100
|
-
- **AI use answer:** a short's answer follows its Image
|
|
101
|
+
- **AI use answer:** a short's answer follows its Image prompt: Yes only if that Image prompt is marked **Draws photorealistic pictures** (the Built-in style is not), or a narrating voice is marked **Sounds like a real person**. See [Publishing-to-YouTube](Publishing-to-YouTube#ai-use-disclosure).
|
|
101
102
|
|
|
102
103
|
## Tips
|
|
103
104
|
|
|
104
105
|
- Keep **Length** close to the default 60 to 120 seconds; very short clips often lose the setup that makes a moment work.
|
|
105
|
-
- After you upload the long video, paste its link in **Full video link** (Edit
|
|
106
|
+
- After you upload the long video, paste its link in **Full video link** (**Edit settings** → **Extras** → **Shorts**) and save. Copy and Copy for YouTube Studio read the link when you use them, so the description line picks it up.
|
|
106
107
|
- A frame format of 9:16 on the Video and style row makes the long video itself vertical; Shorts are separate clips and are always 9:16.
|
|
107
108
|
|
|
108
109
|
## Related pages
|
|
109
110
|
|
|
110
|
-
- [
|
|
111
|
+
- [Create: Extras](Create-Extras)
|
|
111
112
|
- [Prompts](Prompts)
|
|
112
113
|
- [Video-Editing](Video-Editing)
|
|
113
114
|
- [Editing-a-Project](Editing-a-Project)
|
|
114
115
|
- [Publishing-to-YouTube](Publishing-to-YouTube)
|
|
115
|
-
- [
|
|
116
|
+
- [Pauses and Checks](Reviews-and-Checkpoints)
|
|
116
117
|
- [Costs-and-Run-Cost](Costs-and-Run-Cost)
|
|
@@ -28,8 +28,8 @@ You are asked once, in whichever place comes first:
|
|
|
28
28
|
| Place | Question | Answers |
|
|
29
29
|
| --- | --- | --- |
|
|
30
30
|
| The terminal, the first time `npx @gentbajko/slopify` starts on an interactive terminal | `Start Slopify when you log in? (Y/n)` | Enter or `y` means yes; `n` means no. It is asked after Slopify is already running, so it never holds it up. |
|
|
31
|
-
| The first-run screen (step 3) | **Start Slopify when
|
|
32
|
-
| After an update, when neither of those asked (an update started from the app has no terminal, and the first-run screen is only for new installs) | A one-time dialog, **Start Slopify when you log in?** | **Start when I log in** or **No thanks
|
|
31
|
+
| The first-run screen (step 3), in one line | **Start Slopify when you log in?** | **Start when I log in** or **No thanks**. Leaving the first-run screen (Skip, Done, your first short, or a first project made in Create) counts as No thanks. |
|
|
32
|
+
| After an update, when neither of those asked (an update started from the app has no terminal, and the first-run screen is only for new installs) | A one-time dialog, **Start Slopify when you log in?** | **Start when I log in** or **No thanks** (where it starts). Closing it counts as No thanks. |
|
|
33
33
|
|
|
34
34
|
Answering in any of these places, or using the switch in Settings, ends the question for good.
|
|
35
35
|
|
|
@@ -99,7 +99,7 @@ In Docker the switch isn't used. The container restarts with Docker (`restart: u
|
|
|
99
99
|
2. It reads, without changing, whether Docker starts by itself. With Docker Desktop (always on macOS and Windows, and on Linux when its settings file is there), that is Docker Desktop's own setting **Start Docker Desktop when you sign in**, read from its settings file. Otherwise it asks `systemctl is-enabled docker.service` for the system Docker, or `systemctl --user is-enabled docker.service` for rootless Docker.
|
|
100
100
|
3. If Docker doesn't start by itself, it prints how to turn that on: with Docker Desktop, "Turn on Docker Desktop → Settings → General → Start Docker Desktop when you sign in to your computer."; with Docker Engine, `sudo systemctl enable docker`, or `systemctl --user enable docker` for rootless Docker.
|
|
101
101
|
|
|
102
|
-
Settings → **General**
|
|
102
|
+
Settings → **General** then shows (the first-run screen asks nothing in Docker; there is nothing to switch):
|
|
103
103
|
|
|
104
104
|
| Line | Meaning |
|
|
105
105
|
| --- | --- |
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Studio Extension
|
|
2
2
|
|
|
3
|
-
Slopify Studio is an optional browser extension that fills YouTube Studio's upload dialog from a project's
|
|
3
|
+
Slopify Studio is an optional browser extension that fills YouTube Studio's upload dialog from a project's Copy for YouTube Studio list: title, description, thumbnails, playlist, audience, the AI use answer and tags. You drop the video file in yourself, check what it filled, and press Publish yourself. The extension never presses Next, Save, Schedule or Publish.
|
|
4
4
|
|
|
5
|
-
**Where to find it:** it ships with Slopify. Download it from Settings → **YouTube Studio** → **Install the Studio extension** (or from **
|
|
5
|
+
**Where to find it:** it ships with Slopify. Download it from Settings → **YouTube Studio and posting** → **Install the Studio extension** (or from **Copy for YouTube Studio** while no extension is paired). Pairing is in the same Settings section. You use it from a finished project → **Copy for YouTube Studio** → **Fill in YouTube Studio**.
|
|
6
6
|
|
|
7
7
|
## What you need
|
|
8
8
|
|
|
@@ -13,11 +13,11 @@ The extension is built into Slopify, so there is nothing else to get. It is not
|
|
|
13
13
|
|
|
14
14
|
## Get the extension
|
|
15
15
|
|
|
16
|
-
1. Open Settings → **YouTube Studio**. Under **Install the Studio extension**, pick your browser: **Chrome, Edge, Brave** or **Firefox**.
|
|
17
|
-
2. Press **Download
|
|
16
|
+
1. Open Settings → **YouTube Studio and posting**. Under **Install the Studio extension**, pick your browser: **Chrome, Edge, Brave** or **Firefox**.
|
|
17
|
+
2. Press **Download the zip** in the first step. It saves `slopify-studio-chrome.zip` or `slopify-studio-firefox.zip`.
|
|
18
18
|
3. Follow the three steps shown under the button, also written out below.
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
Copy for YouTube Studio shows the same download and steps while no extension is paired.
|
|
21
21
|
|
|
22
22
|
## Install on Chrome, Chromium, Edge or Brave
|
|
23
23
|
|
|
@@ -36,13 +36,13 @@ A temporary add-on is removed when Firefox restarts. Load it again after each re
|
|
|
36
36
|
|
|
37
37
|
## Update the extension
|
|
38
38
|
|
|
39
|
-
After updating Slopify, download the zip again from Settings → **YouTube Studio** and replace the old one: unzip over the same folder and press the reload arrow on `chrome://extensions`, or load the new Firefox zip.
|
|
39
|
+
After updating Slopify, download the zip again from Settings → **YouTube Studio and posting** and replace the old one: unzip over the same folder and press the reload arrow on `chrome://extensions`, or load the new Firefox zip.
|
|
40
40
|
|
|
41
41
|
## Pair it with Slopify
|
|
42
42
|
|
|
43
|
-
Pairing gives the extension a secret so that only it, and no web page, can read your upload
|
|
43
|
+
Pairing gives the extension a secret so that only it, and no web page, can read what your projects are ready to upload.
|
|
44
44
|
|
|
45
|
-
1. In Slopify, open **Settings → YouTube Studio**.
|
|
45
|
+
1. In Slopify, open **Settings → YouTube Studio and posting**.
|
|
46
46
|
2. Under **Extension pairing token**, press **Copy**.
|
|
47
47
|
3. Click the extension's toolbar button (or open its options). The **Slopify Studio · Pairing** page opens.
|
|
48
48
|
4. Check **Slopify address**. It must be the address in your Slopify tab, `http://127.0.0.1:6969` by default.
|
|
@@ -52,19 +52,17 @@ The options page says "Paired with Slopify at …". Back in Settings, the line u
|
|
|
52
52
|
|
|
53
53
|
To unpair, press **New pairing token** in Settings. It makes a fresh token and unpairs the extension until you paste the new one and press Pair again.
|
|
54
54
|
|
|
55
|
-
## Settings → YouTube Studio
|
|
56
|
-
|
|
57
|
-
The section is headed **Upload pack and extension**.
|
|
55
|
+
## Settings → YouTube Studio and posting
|
|
58
56
|
|
|
59
57
|
| Option | What it does | Default / range |
|
|
60
58
|
|---|---|---|
|
|
61
|
-
| **Playlists** | The YouTube playlists
|
|
62
|
-
| **Extension pairing token** | The secret the extension needs before it may read your upload
|
|
59
|
+
| **Playlists** | The YouTube playlists Copy for YouTube Studio offers, so the extension ticks them in Studio's dialog. Pick **Every channel (default)** or one channel, **Add playlist** for each, type it exactly as it is called in Studio, tick **On by default** for the ones every video joins, and press **Save playlists**. A channel's own list wins for its videos; Copy for YouTube Studio changes the ticks for one project. | None; up to 20, each up to 150 characters |
|
|
60
|
+
| **Extension pairing token** | The secret the extension needs before it may read what your projects are ready to upload. **Copy** copies it; **New pairing token** makes a new one and unpairs the extension. | Made for you |
|
|
63
61
|
| **Install the Studio extension** | The download and install steps (see [Get the extension](#get-the-extension)). | |
|
|
64
62
|
|
|
65
63
|
## Fill in an upload
|
|
66
64
|
|
|
67
|
-
1. Open a finished project and press **
|
|
65
|
+
1. Open a finished project and press **Copy for YouTube Studio**.
|
|
68
66
|
2. Under **What to upload**, pick **Video** or a short.
|
|
69
67
|
3. Press **Fill in YouTube Studio**. Studio's upload page opens in a new tab, and the item joins **Waiting for Studio**.
|
|
70
68
|
4. Drop the video file into Studio's upload dialog. (Use **Download** or **Open folder** on the Video file row to find it.)
|
|
@@ -73,13 +71,13 @@ The section is headed **Upload pack and extension**.
|
|
|
73
71
|
7. Go through Studio's remaining steps and publish yourself.
|
|
74
72
|
8. Back in Slopify, press **Mark uploaded**. See [Publishing-to-YouTube](Publishing-to-YouTube#mark-a-video-uploaded).
|
|
75
73
|
|
|
76
|
-
**Fill in YouTube Studio** is only offered once an extension is paired. Unpaired,
|
|
74
|
+
**Fill in YouTube Studio** is only offered once an extension is paired. Unpaired, Copy for YouTube Studio says "The Slopify Studio extension isn't paired.", shows the install and pair steps, keeps the Copy steps as your upload pack, and offers **Open YouTube Studio**.
|
|
77
75
|
|
|
78
76
|
### Upload several one after another
|
|
79
77
|
|
|
80
78
|
Each press of **Fill in YouTube Studio** adds the item to **Waiting for Studio** instead of replacing the last one. Every new upload dialog you open in Studio is filled with the next waiting item, in order. So you can queue the video and all its shorts, then upload them one by one.
|
|
81
79
|
|
|
82
|
-
-
|
|
80
|
+
- Copy for YouTube Studio lists what waits: the first row says "Next: filled in the next upload dialog you open in Studio.", the others "Filled after N more uploads." **Remove** takes one off.
|
|
83
81
|
- The list survives a restart of Slopify. An item waits up to 24 hours. A new pairing token clears the list, and it never travels in a backup.
|
|
84
82
|
|
|
85
83
|
## What it fills
|
|
@@ -89,10 +87,10 @@ Each press of **Fill in YouTube Studio** adds the item to **Waiting for Studio**
|
|
|
89
87
|
| **Title** | Types the title (up to 100 characters for the video, the short's own title for a short). |
|
|
90
88
|
| **Description** | Types the description line by line, so line breaks are kept. |
|
|
91
89
|
| **Thumbnail** | Sets the first thumbnail. With three thumbnails, it looks for Studio's **A/B Testing** button beside the title and puts all three in. If the button isn't there or its dialog can't be filled, it sets the first and asks you to add the others in A/B Testing by hand. Shorts get no thumbnail. |
|
|
92
|
-
| **Playlists** | Opens the dropdown, ticks every playlist the project goes into (Settings → YouTube Studio, and the project's own ticks in
|
|
90
|
+
| **Playlists** | Opens the dropdown, ticks every playlist the project goes into (Settings → YouTube Studio and posting, and the project's own ticks in Copy for YouTube Studio), and closes it. |
|
|
93
91
|
| **Audience** | Picks "No, it's not made for kids". |
|
|
94
92
|
| **Show more** | Presses it once, to reach the advanced settings. |
|
|
95
|
-
| **AI use** | Picks Yes or No, as
|
|
93
|
+
| **AI use** | Picks Yes or No, as Copy for YouTube Studio worked it out. See [AI use disclosure](Publishing-to-YouTube#ai-use-disclosure). |
|
|
96
94
|
| **Tags** | Types each tag and turns it into a chip. Tags already there are skipped. |
|
|
97
95
|
|
|
98
96
|
It then says what it did. It does not choose visibility, schedule, or press any button that saves or publishes.
|
|
@@ -101,7 +99,7 @@ It then says what it did. It does not choose visibility, schedule, or press any
|
|
|
101
99
|
|
|
102
100
|
Studio changes its page from time to time.
|
|
103
101
|
|
|
104
|
-
- **A field is missing before anything is written.** The extension checks every field the item needs first. If Studio's dialog lacks one, it fills nothing at all, so you never get a half-filled upload: "Nothing was filled: Studio's upload dialog has changed, and Slopify couldn't find …". It copies the whole upload pack (or offers **Copy** for it) and names the missing fields. Paste each part by hand, or use the Copy buttons in
|
|
102
|
+
- **A field is missing before anything is written.** The extension checks every field the item needs first. If Studio's dialog lacks one, it fills nothing at all, so you never get a half-filled upload: "Nothing was filled: Studio's upload dialog has changed, and Slopify couldn't find …". It copies the whole upload pack (or offers **Copy** for it) and names the missing fields. Paste each part by hand, or use the Copy buttons in Copy for YouTube Studio. Downloading the extension again from Settings → YouTube Studio and posting may fix it.
|
|
105
103
|
- **A field doesn't take the text.** It shows a message for that field, for example "Couldn't find the Tags field — the text is copied, paste it by hand", and fills the rest ("Filled what it could; 1 field needs you. Nothing was published.").
|
|
106
104
|
|
|
107
105
|
Every message with text to paste has a **Copy** button. If the browser refuses the clipboard, the text is shown selected so you can copy it yourself.
|
|
@@ -112,7 +110,7 @@ Before relying on the extension, try it on one real upload and read its messages
|
|
|
112
110
|
|
|
113
111
|
- Only the extension's background worker talks to Slopify, and only at `127.0.0.1` or `localhost`.
|
|
114
112
|
- Slopify answers the extension's requests only with the pairing token, and only from the extension that paired. It never answers web pages.
|
|
115
|
-
- The extension reads only the upload
|
|
113
|
+
- The extension reads only the upload you chose and its thumbnails.
|
|
116
114
|
- It runs on `studio.youtube.com` only, and needs no YouTube sign-in of its own: it works in the Studio tab you are already signed in to.
|
|
117
115
|
|
|
118
116
|
## Limits
|
|
@@ -129,10 +127,10 @@ Before relying on the extension, try it on one real upload and read its messages
|
|
|
129
127
|
|
|
130
128
|
| Problem | What to do |
|
|
131
129
|
|---|---|
|
|
132
|
-
| Studio opens but nothing is filled | Make sure you dropped the video file in and reached the Details step. Check the extension is paired (Settings → YouTube Studio says "Paired with the extension at …") and that the item is under **Waiting for Studio** in
|
|
133
|
-
| The wrong item was filled | Items fill in the order they wait. **Remove** the ones you don't want under **Waiting for Studio** in
|
|
134
|
-
| Pairing fails | Check the **Slopify address** matches your Slopify tab, and copy the token again from Settings → YouTube Studio. If you pressed New pairing token, the old one no longer works. |
|
|
135
|
-
| Studio says "The extension isn't paired with Slopify yet." | Open the extension's options, paste the pairing token from Settings → YouTube Studio and press **Pair**. |
|
|
130
|
+
| Studio opens but nothing is filled | Make sure you dropped the video file in and reached the Details step. Check the extension is paired (Settings → YouTube Studio and posting says "Paired with the extension at …") and that the item is under **Waiting for Studio** in Copy for YouTube Studio. Press **Fill again from Slopify** in Studio. If it says "Nothing was filled", see [When a field can't be filled](#when-a-field-cant-be-filled). |
|
|
131
|
+
| The wrong item was filled | Items fill in the order they wait. **Remove** the ones you don't want under **Waiting for Studio** in Copy for YouTube Studio. |
|
|
132
|
+
| Pairing fails | Check the **Slopify address** matches your Slopify tab, and copy the token again from Settings → YouTube Studio and posting. If you pressed New pairing token, the old one no longer works. |
|
|
133
|
+
| Studio says "The extension isn't paired with Slopify yet." | Open the extension's options, paste the pairing token from Settings → YouTube Studio and posting and press **Pair**. |
|
|
136
134
|
| Settings says "No extension is paired" | Paste the token into the extension's options and press **Pair**. |
|
|
137
135
|
| A field says it couldn't be filled | Paste the copied text by hand. Studio may have changed that field. |
|
|
138
136
|
| The extension is gone in Firefox | Load it again from `about:debugging`; temporary add-ons are removed on restart. |
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Edit template
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**Edit template** is where a template is set up once, section by section, with a live sample beside every setting, then approved for its schedules. Each change you save is made again on a short hidden sample, so you see and hear what the next video will be like before a schedule spends anything on it.
|
|
4
4
|
|
|
5
|
-
**Where to find it:** **
|
|
5
|
+
**Where to find it:** **Templates**, then **Edit template** on a template's row. **Save as template** on a project opens it too.
|
|
6
6
|
|
|
7
7
|
## The sections
|
|
8
8
|
|
|
@@ -10,23 +10,23 @@ The rail on the left lists the template's sections in the order a run makes them
|
|
|
10
10
|
|
|
11
11
|
| Section | What it sets |
|
|
12
12
|
|---|---|
|
|
13
|
-
| **
|
|
14
|
-
| **
|
|
15
|
-
| **
|
|
16
|
-
| **
|
|
17
|
-
| **Video
|
|
18
|
-
| **Thumbnail
|
|
13
|
+
| **Title and keywords** | The template's name, the video title (`History: {{Topic}}`), keyword values and the language |
|
|
14
|
+
| **Article** | Create's Article settings: how the article is made, the article prompt, **Written by** (who writes it), research, and **Words per video** |
|
|
15
|
+
| **Narration** | Create's Narration settings: the voice, its service and model, speakers, pronunciations, tables and figures |
|
|
16
|
+
| **Images** | Create's Images settings: made by AI, your own or none; **Images by** (service and model), image prompts, scenes |
|
|
17
|
+
| **Video and style** | Create's Video and style settings: frame format, captions, images and cuts, the Look, ambient sound, **Sound polish** |
|
|
18
|
+
| **Thumbnail** | How the thumbnail is made, its prompt, one or three of them |
|
|
19
19
|
| **Shorts** | Shorts from the video, how many |
|
|
20
|
-
| **
|
|
21
|
-
| **
|
|
22
|
-
| **
|
|
20
|
+
| **PDF** | **PDF of the article**, and its look |
|
|
21
|
+
| **Pauses and checks** | Where a run pauses for you, and the AI checks |
|
|
22
|
+
| **YouTube description and posts** | The YouTube description, chapters and tags, and the other sites the projects post to (**Post to**), each with its text and main media. The sample shows each site's post as the site shows it. See [Posting to social sites](Posting-to-Social-Sites). |
|
|
23
23
|
| **Schedule** | The next five runs of each schedule that uses the template, and what they cost a month |
|
|
24
24
|
|
|
25
|
-
Each section shows
|
|
25
|
+
Each section shows Create's own editor for it, whole and in Create's words, so a setting has one name and one place. Create and a project's **Edit settings** use the same section names, with Thumbnail, Shorts, PDF and the YouTube description together under **Extras**. Where nobody chose the article's writer or the image service, the pickers show this computer's default, with one line saying so ("Each video is written by your default, Claude Code CLI (Sonnet 5.5): no writer is saved with this template yet."); the default is saved with the template only once you pick something there. A thumbnail drawn while the video has images of its own is drawn by the images' service: **Thumbnail by fal.ai (FLUX.2) · Change it in Images**.
|
|
26
26
|
|
|
27
|
-
Each section's
|
|
27
|
+
Each section's word in the rail says where its sample is: **Sample ready** (made for this version), **Making**, **Waiting** (queued, or held with the reason), **Needs a fix** (the failed step's own sentence and what fixes it), **Off**, or **You add it** (you add the file on Create for each video, so there is no sample to make). A section with no sample yet shows no word. **Pauses and checks** and **Schedule** have no sample: they say **On** once they are on.
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
From 768 to 1180 pixels wide the sections are a row on top, so the sample and the checks stay beside the settings. On a phone Edit template shows **Sections · Settings · Sample** tabs instead of columns; the Sample tab says how many checks are to fix ("Sample · 2 to fix").
|
|
30
30
|
|
|
31
31
|
## Samples
|
|
32
32
|
|
|
@@ -39,21 +39,21 @@ Two kinds of sample are made for each version.
|
|
|
39
39
|
- the outline and chapter 1 of the script (or the full script, see below),
|
|
40
40
|
- about 30 seconds of narration,
|
|
41
41
|
- up to 4 pictures, 1 thumbnail and 1 short,
|
|
42
|
-
- no
|
|
42
|
+
- no pauses; an agent's checks are not asked.
|
|
43
43
|
|
|
44
44
|
After the first one, a Save makes again only what the change outdates. Work already going is never stopped: a newer Save waits for it.
|
|
45
45
|
|
|
46
46
|
### Sample topic
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
**Sample topic** at the top of the sample column, **The history of the lighthouse**, is what every sample is about. Press **Change** to type another, take the next topic a schedule has queued, or go back to the fixed one. A new topic makes every sample again and is priced on **Use this topic**; going back to the fixed one is free.
|
|
49
49
|
|
|
50
|
-
### Write the
|
|
50
|
+
### Write the whole article in the sample
|
|
51
51
|
|
|
52
|
-
Under **
|
|
52
|
+
Under **Article**, **Write the whole article in the sample** has the sample write the whole article instead of the outline and chapter 1, priced on the switch. Only the article and what is made from it are made again. Your videos always get the whole article.
|
|
53
53
|
|
|
54
54
|
### Say it as
|
|
55
55
|
|
|
56
|
-
Under **
|
|
56
|
+
Under **Narration**, **Say it as** lists the names the sample's script says that a voice may get wrong, each with the line it is in. **Play** one to hear it, type how it should be said and press **Save**: that writes a row of your Pronunciation list (Settings → Voices → Pronunciation, used by every project started after it) and voices again only the sample's lines that say it, priced on the button. **Another word to check** adds a name of your own.
|
|
57
57
|
|
|
58
58
|
### Prompt anatomy
|
|
59
59
|
|
|
@@ -63,57 +63,60 @@ Under **Voice**, **Say it as** lists the names the sample's script says that a v
|
|
|
63
63
|
|
|
64
64
|
Every paid sample is priced before anything is spent:
|
|
65
65
|
|
|
66
|
-
- **Save**
|
|
66
|
+
- **Save** never spends: it keeps the change as the template's next version and makes the free samples again. The paid sample waits for **Make sample**, priced on the button, for example **Make sample · about $0.12**. One press makes the samples of every paid section that is on, together; the line above the button names them.
|
|
67
|
+
- A sample with steps no price is known for says **at least $0.30**, or **price not known** when none is priced, never **free**. Pressing it accepts that.
|
|
67
68
|
- A sample that costs more than a quarter more (plus five cents) than the price you saw, or has a step with no known price you didn't accept, waits instead of starting, with the new price on **Make sample**.
|
|
68
|
-
-
|
|
69
|
+
- The daily sample budget under **Settings → Production defaults** is the most the samples may spend in one day ($2.00 by default). A sample on your Claude Code or Codex plan runs only when **Let samples use my Claude Code or Codex plan** is on there. When today's budget or that setting would only hold the sample, a sentence with a link to **Settings → Production defaults** stands where **Make sample** would be. What a removed sample or a discarded comparison was charged today still counts. See [Settings-Reference](Settings-Reference#template-samples).
|
|
69
70
|
|
|
70
|
-
**Make samples for all** in Settings →
|
|
71
|
+
**Make samples for all**, under **Samples for all templates** in Settings → Production defaults, prices the samples of every template that needs one, together, and queues the ones that fit today's budget.
|
|
71
72
|
|
|
72
|
-
##
|
|
73
|
+
## Approve for schedules
|
|
73
74
|
|
|
74
|
-
Until you
|
|
75
|
+
Until you approve a version of a template for schedules for the first time, its schedules run each version as you save it, and the header says **Schedules run each version you save**. Once a schedule runs the template, **More → Approve for schedules** approves the version you are editing, after a dialog that says what it changes: from then on a schedule runs only an approved version (or one saved before approvals existed, or one Slopify carried over), and every version you save later waits for your approval. The header then says **Ready for schedules**, or **Not ready for schedules** with the version the schedules run until you approve this one.
|
|
75
76
|
|
|
76
|
-
**
|
|
77
|
+
**Approve for schedules** is greyed, saying what to do first (save your changes, fix the failing checks, look over a current sample), until:
|
|
77
78
|
|
|
78
|
-
- every free check passes: keywords are filled,
|
|
79
|
-
- and every section's sample is
|
|
79
|
+
- every free check passes: keywords are filled, each service and its model are chosen and set up, the narration's voice is one of yours (Settings → Voices), each run has release times, each scheduled run can be priced, and someone answers each pause (a notification address, or an agent seen in the last week),
|
|
80
|
+
- and every section's sample is ready, off or added by you.
|
|
80
81
|
|
|
81
|
-
|
|
82
|
+
Steps no price is known for, such as **Narration descriptions** (how many is known only once the article is written), don't hold approval back: the check and **Schedule** name them as not counted, and the monthly figure reads **At least $6.08 a month**.
|
|
82
83
|
|
|
83
|
-
|
|
84
|
+
Each failing check names what is wrong with a link to the place it is fixed; in the section that fixes it, the sample column says so in place. The checks are worked out on the saved version: while a change is unsaved, they say **Checked on the saved version: Save to check your changes.** Once approved, schedules run that version from their next run. Saving again makes a new version that waits for your approval; until then the schedules keep running the approved one.
|
|
85
|
+
|
|
86
|
+
When Slopify changes a template itself (a retired model switched in Settings → Models, a restore from the trash under a new name), the new version keeps the approval of the one it came from, and its changed sections say who made the change. A retired model is switched in the version your schedules run too, even while a newer version waits for your approval.
|
|
84
87
|
|
|
85
88
|
## Compare models
|
|
86
89
|
|
|
87
|
-
**Compare models**, beside the model of **
|
|
90
|
+
**Compare models**, beside the model of **Article**, **Narration** or **Images**, makes that section's sample again with one or two other models, each on a hidden copy of the sample, so you can compare what each one makes, what it was charged and how long it took, beside the model the template uses now.
|
|
88
91
|
|
|
89
92
|
1. Save first: models are compared on the saved version's sample, so it must be current.
|
|
90
|
-
2. Press **Compare models** and pick one or two models. The list shows the models that work for your key or CLI first. Voice models are compared within the template's voice
|
|
93
|
+
2. Press **Compare models** and pick one or two models. The list shows the models that work for your key or CLI first. Voice models are compared within the template's voice service, because a voice is chosen per service.
|
|
91
94
|
3. The drawer prices it, for example **Compare · about $0.04**, and shows what is left of today's budget. Press it to start.
|
|
92
95
|
4. **Compared models** lists each model with **Made · $0.008 charged · 12 s** and what it made (the script's opening, the narration, the pictures).
|
|
93
96
|
5. **Use this model** switches the section to that model and discards the copies; press **Save** to make the template's own sample with it, at the price on the button. **Discard** removes the copies without changing anything.
|
|
94
97
|
|
|
95
98
|
Only the section's own work runs on each copy. A comparison is held, spending nothing, on the same rules as a sample (a higher price, an unknown price you didn't accept, past today's budget), and a Save made before it starts takes its place. Work already going is never stopped, so **Discard** waits until it finishes.
|
|
96
99
|
|
|
97
|
-
**Settings → Models → New for you** has **Compare on a sample** on each new model: pick a template and
|
|
100
|
+
**Settings → Models → New for you** has **Compare on a sample** on each new model: pick a template and Edit template opens with Compare models ready for that model.
|
|
98
101
|
|
|
99
102
|
## Template packs
|
|
100
103
|
|
|
101
104
|
A template pack is a template as one .zip file, to share with someone else or move to another computer.
|
|
102
105
|
|
|
103
|
-
**Export
|
|
106
|
+
**More → Export as a file (.zip)** in Edit template saves the version your schedules run (it names that version when a newer one waits): its prompts' and intros' text as Prompts has them now, the voice it picks, the Look, the PDF look, and its sample's thumbnail, up to four pictures and its narration. No key, login or other file of yours goes in; a template whose text looks like a key is refused, with where to remove it. A template its schedules can't run yet (no version approved, and none saved before approvals existed) can't be exported yet.
|
|
104
107
|
|
|
105
|
-
**Import template
|
|
108
|
+
**Import a template file (.zip)** in the Templates header makes a new template from a template file:
|
|
106
109
|
|
|
107
|
-
- Its prompts and intros join
|
|
108
|
-
- Its voice is used as it is. When Settings → Voices has no voice with that ID,
|
|
109
|
-
- It opens in
|
|
110
|
-
- It is not
|
|
110
|
+
- Its prompts and intros join yours under Prompts. One whose name you already use for other text comes in as "name (2)", and the template uses that one.
|
|
111
|
+
- Its voice is used as it is. When Settings → Voices has no voice with that ID, Edit template's voice check says so: add the voice there under that ID, or choose one of yours.
|
|
112
|
+
- It opens in Edit template with **Samples from the pack**, what the person who exported it got, until your own samples are made.
|
|
113
|
+
- It is not approved for schedules yet: look it over before you approve it.
|
|
111
114
|
|
|
112
115
|
A file larger than 30 MB, one that isn't a pack, one made by a newer Slopify, or one holding anything that looks like a key is refused, and nothing is imported.
|
|
113
116
|
|
|
114
|
-
##
|
|
117
|
+
## Poster templates
|
|
115
118
|
|
|
116
|
-
|
|
119
|
+
Poster templates (posters, flyers and social sizes) are under **Templates → Poster templates**, each with its own editor of four sections, **Picture**, **Text layout**, **Formats** and **Schedule**, with the same rail, a live sample and **Approve for schedules**. **Make a poster**, on the template's row or at the foot of its editor, makes one poster from the saved version with the words you type for each keyword. When the artwork's image service has no key yet, the editor says so on its **Made with** line and offers **Add a fal.ai key first** where **Make sample** would be. See [Templates](Templates).
|
|
117
120
|
|
|
118
121
|
## Related pages
|
|
119
122
|
|
|
@@ -122,4 +125,4 @@ Design templates (posters, flyers and other designed pieces) are listed on Libra
|
|
|
122
125
|
- [Models](Models)
|
|
123
126
|
- [Costs and run cost](Costs-and-Run-Cost)
|
|
124
127
|
- [Narration aliases and glossary](Narration-Aliases-and-Glossary)
|
|
125
|
-
- [Settings reference](Settings-Reference#template-
|
|
128
|
+
- [Settings reference](Settings-Reference#template-samples)
|