@gentbajko/slopify 4.0.0 → 4.2.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 +5 -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/pronunciation-check.js +133 -0
- package/dist/edge/http/pronunciations.js +26 -0
- 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 +31 -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/4.2.0.md +28 -0
- package/dist/patch-notes/index.json +12 -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/schema.js +2 -0
- package/dist/slices/admission/start.js +7 -0
- package/dist/slices/admission/state-words.js +34 -5
- package/dist/slices/assistant/cost.js +1 -1
- package/dist/slices/assistant/gate.js +1 -0
- 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-check.js +226 -0
- package/dist/slices/narration/pronunciation.js +7 -2
- package/dist/slices/narration/pronunciations-library.js +94 -0
- 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-text.js +16 -4
- 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 +95 -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 +101 -19
- 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 +183 -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-CQASqwjT.js +460 -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
|
@@ -1,14 +1,61 @@
|
|
|
1
1
|
# Narration Aliases and Glossary
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Three tools control how the narrator says words without changing what is written. **Name pronunciations** is your own list of names with their IPA, used before anything an article says, so a name sounds the same in every video. **Narration aliases** swap a written form for a spoken one, such as `Dr.` said as "Doctor", with any generated voice. The **Pronunciation Glossary** is the list each article writes for itself, such as `Arda: /ˈɑɹdə/`. IPA is read by Inworld's TTS-2 voices; aliases work with every voice. In all three the article, the transcript and the captions keep the written words; only the audio changes.
|
|
4
4
|
|
|
5
|
-
**Where to find it:** aliases in **
|
|
5
|
+
**Where to find it:** your list in **Settings → Voices → Name pronunciations**, aliases in **Settings → Voices → Pronunciation**. The switches are on Create under **Narration → Change → More narration settings**, and in a project's **Edit settings** → **Narration**. A project's own glossary is shown on its **Article** section, in the **Pronunciation** tab.
|
|
6
|
+
|
|
7
|
+
## Name pronunciations
|
|
8
|
+
|
|
9
|
+
Your list settles a name once. Every project copies it when it starts, and its entries come **before** the glossary that project's article wrote, so the name is said your way whatever the article spelled out.
|
|
10
|
+
|
|
11
|
+
1. Open **Settings → Voices → Name pronunciations**.
|
|
12
|
+
2. Write one `Term: /IPA/` per line, in standard-English IPA between slashes:
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
Gygax: /ˈɡaɪɡæks/
|
|
16
|
+
Faerûn: /feɪˈruːn/
|
|
17
|
+
Mordenkainen: /ˌmɔːrdənˈkeɪnən/
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
3. Press **Save pronunciations**. The line under the box says how many names the list pronounces, and a note names any line narration has to skip, by its number and reason, the way the article's glossary does.
|
|
21
|
+
|
|
22
|
+
- One IPA word per written word. A hyphenated name's parts each get one.
|
|
23
|
+
- A possessive follows its name: `Gygax's` is said from the `Gygax` entry.
|
|
24
|
+
- A dash, `n/a` or nothing leaves the name read as written: useful for a name you want plain.
|
|
25
|
+
- Up to 100,000 characters, which is thousands of names.
|
|
26
|
+
- Only Inworld **TTS-2** and **TTS-2 Flash** read IPA. For any other voice, use an alias instead.
|
|
27
|
+
- **Use pronunciations** must be on for the project (the default) — the same switch that reads the article's glossary.
|
|
28
|
+
|
|
29
|
+
A project keeps the copy it started with. Editing the list later changes new projects only, until you open a project's **Edit settings** → **Narration** and press **Copy the list again** under **Use pronunciations**; only the narration where a changed name appears is made again.
|
|
30
|
+
|
|
31
|
+
### Two people, or an agent, at the same list
|
|
32
|
+
|
|
33
|
+
The whole list is saved at once, so Slopify makes sure one save never quietly replaces another. Every save carries the version of the list it was made from. If something else saved meanwhile — a second window, or an agent — the save is refused and the page says so:
|
|
34
|
+
|
|
35
|
+
> **The list changed somewhere else.** An agent saved it: it has 3 names you don't have, 1 said differently.
|
|
36
|
+
|
|
37
|
+
Nothing is lost. What you typed stays in the box, and you choose:
|
|
38
|
+
|
|
39
|
+
- **Save mine anyway** keeps what is on screen, over theirs.
|
|
40
|
+
- **Load theirs instead** puts their list in the box, so you can add your change to it and save.
|
|
41
|
+
|
|
42
|
+
An agent gets the same refusal as a sentence, with the list as it stands: it reads the version, folds its change into that text, and saves again (`get_library_pronunciations`, then `set_library_pronunciations` with `{text, version}`).
|
|
43
|
+
|
|
44
|
+
### Which list wins
|
|
45
|
+
|
|
46
|
+
| Where a pronunciation comes from | Order |
|
|
47
|
+
|---|---|
|
|
48
|
+
| **Name pronunciations** (your list) | First: it wins everywhere |
|
|
49
|
+
| The article's own **Pronunciation Glossary** | Next, for names your list does not have |
|
|
50
|
+
| **Other projects' pronunciations**, while shared | Last, for names neither of the above has |
|
|
51
|
+
|
|
52
|
+
An alias beats all three, because it changes the words before the sounds are decided.
|
|
6
53
|
|
|
7
54
|
## Narration aliases
|
|
8
55
|
|
|
9
56
|
### Add aliases
|
|
10
57
|
|
|
11
|
-
1. Open **
|
|
58
|
+
1. Open **Settings → Voices → Pronunciation**.
|
|
12
59
|
2. Press **Add alias**. A new row appears in the list, titled **Alias N**, with its fields under it.
|
|
13
60
|
3. Fill in the row:
|
|
14
61
|
|
|
@@ -39,17 +86,17 @@ Each row's title line sums it up, for example "Says Dr. as Doctor · whole word"
|
|
|
39
86
|
- Two aliases can't share a written form.
|
|
40
87
|
- Where two overlap in the text, the one starting first wins, then the longer.
|
|
41
88
|
- A multi-word alias is read with single spaces around it: "Grey et al. wrote" goes to the voice as "Grey and others wrote".
|
|
42
|
-
- An alias wins over a Pronunciation Glossary entry for the same words.
|
|
89
|
+
- An alias wins over a Name pronunciations entry and a Pronunciation Glossary entry for the same words.
|
|
43
90
|
- Aliases work with every generated voice, and in multi-voice runs they apply to each speaker's turn.
|
|
44
|
-
- Aliases also change the sentences **Narration
|
|
91
|
+
- Aliases also change the sentences **Narration preparation** reads, so its cues match what is said.
|
|
45
92
|
|
|
46
93
|
### Use aliases in a video
|
|
47
94
|
|
|
48
|
-
1. On
|
|
49
|
-
2. Keep **Use
|
|
95
|
+
1. On Create, open the **Narration** row with **Change**, then **More narration settings**.
|
|
96
|
+
2. Keep **Use your pronunciation list** on (the default for new drafts).
|
|
50
97
|
3. Start the run.
|
|
51
98
|
|
|
52
|
-
A project copies
|
|
99
|
+
A project copies your Pronunciation list when it starts. Editing the list later never changes a started project until you open its **Edit settings** → **Narration** and press **Copy the list again** beside the aliases switch. Only the parts of the narration where a changed alias appears are made again.
|
|
53
100
|
|
|
54
101
|
Projects from before aliases existed have the switch off and nothing copied.
|
|
55
102
|
|
|
@@ -59,11 +106,11 @@ Captions show the written words, while the audio says the alias. A caption reads
|
|
|
59
106
|
|
|
60
107
|
## The Pronunciation Glossary
|
|
61
108
|
|
|
62
|
-
The Pronunciation Glossary is a section at the end of the article that lists names with their pronunciation in IPA. With a voice that supports it, the narrator reads each listed name the way the glossary says, with no extra
|
|
109
|
+
The Pronunciation Glossary is a section at the end of the article that lists names with their pronunciation in IPA. With a voice that supports it, the narrator reads each listed name the way the glossary says, with no extra AI call. The glossary itself is never narrated.
|
|
63
110
|
|
|
64
111
|
### Which voices support it
|
|
65
112
|
|
|
66
|
-
Inworld **TTS-2** and **TTS-2 Flash**. With other
|
|
113
|
+
Inworld **TTS-2** and **TTS-2 Flash**. With other services or models the tick is not shown; your choice is kept for when you pick one of those voices.
|
|
67
114
|
|
|
68
115
|
### Get a glossary into the article
|
|
69
116
|
|
|
@@ -86,8 +133,8 @@ A table with `Term | IPA` columns works too. If you paste your own article, add
|
|
|
86
133
|
|
|
87
134
|
### Turn it on
|
|
88
135
|
|
|
89
|
-
1. On
|
|
90
|
-
2. Keep **Use
|
|
136
|
+
1. On Create, open **Narration → Change → More narration settings**.
|
|
137
|
+
2. Keep **Use pronunciations** on (the default). It shows only while the voice is one that reads IPA, and it covers both your Name pronunciations and this article's glossary.
|
|
91
138
|
3. Optional: keep **Also use pronunciations from my other projects** on (the default). It adds every term from your other projects' glossaries, copied when this project starts. This project's own glossary wins where they differ. Turn it off to use only this article's glossary.
|
|
92
139
|
|
|
93
140
|
### Entries that are skipped
|
|
@@ -102,28 +149,63 @@ An entry narration can't use is skipped and read as ordinary text. It never bloc
|
|
|
102
149
|
| supply one IPA word for each written word | "New York" needs two IPA words. |
|
|
103
150
|
| an earlier entry already gives this term a different pronunciation | The term is listed twice with different sounds. |
|
|
104
151
|
|
|
105
|
-
To fix skipped entries, edit the Pronunciation Glossary at the end of the article in **Edit
|
|
152
|
+
To fix skipped entries, edit the Pronunciation Glossary at the end of the article in **Edit settings** → **Article**, then save. See [Editing a project](Editing-a-Project).
|
|
153
|
+
|
|
154
|
+
## Does this video say the names right?
|
|
155
|
+
|
|
156
|
+
Two checks on the project page answer that from files the project already has. Neither one blocks the run or the upload, neither costs anything, and neither changes a thing.
|
|
157
|
+
|
|
158
|
+
### Before the narration is paid for
|
|
159
|
+
|
|
160
|
+
The **Narration** section says, in one line, which names this article uses that nothing pronounces: not its own Pronunciation Glossary, not your **Name pronunciations** list, not the pooled copy of the other projects' glossaries. **Every mention** opens the table — each name, how often it is said as written and how often as a possessive, proper names first.
|
|
161
|
+
|
|
162
|
+
This is the cheapest moment to settle a name, because adding it to **Name pronunciations** costs nothing and the voice has not been paid yet.
|
|
163
|
+
|
|
164
|
+
It also catches the names a glossary looks like it covers and doesn't:
|
|
165
|
+
|
|
166
|
+
| What the glossary has | What the article says | Why the voice guesses |
|
|
167
|
+
|---|---|---|
|
|
168
|
+
| `Belwar Dissengulp` | "Belwar" on its own | A two-word term never matches one of its words said alone. |
|
|
169
|
+
| `Drizzt` | "Drizzt's" | A project narrated under the old pronunciation rules wrapped no possessive. |
|
|
170
|
+
| `Catti-brie` | "Catti-brie" | The old rules skipped a hyphenated term, so it was read as ordinary text. |
|
|
171
|
+
|
|
172
|
+
A project is judged by the rules it was voiced under, so a video made before those rules changed is told what actually happened to it, not what would happen today.
|
|
173
|
+
|
|
174
|
+
### After the render, before the upload
|
|
175
|
+
|
|
176
|
+
The **YouTube** section carries the same line, saying two things.
|
|
177
|
+
|
|
178
|
+
**What the voice was sent.** Counted from the voice script itself, which is exactly the text the voice received: a name with no IPA in front of it there was guessed, whatever the glossary says.
|
|
179
|
+
|
|
180
|
+
**How each name was heard.** Read from the per-word confidence the subtitle timing already wrote when the captions were made: each name's mean, and the spread across its mentions. Nothing is listened to again and nothing is re-aligned.
|
|
181
|
+
|
|
182
|
+
The spread is the signal, not a low score. A rare name is heard poorly even when it is said perfectly, so only a name whose own mentions disagree with each other is flagged: eight mentions or more, and a spread of 0.30 or more between its 10th and 90th percentile.
|
|
183
|
+
|
|
184
|
+
A name read as an ordinary English word is left out of both checks: a one-word name that the same text also writes in lower case is a word here and not a name, which is why "Hall" stays quiet in a video that also says "hall".
|
|
106
185
|
|
|
107
|
-
##
|
|
186
|
+
## Which one do I use?
|
|
108
187
|
|
|
109
188
|
| You want | Use |
|
|
110
189
|
|---|---|
|
|
111
190
|
| An abbreviation read in full (Dr., St., vs.) | Alias |
|
|
112
191
|
| A word read as a different word or spelling | Alias |
|
|
113
|
-
| Any voice
|
|
114
|
-
| A
|
|
115
|
-
|
|
|
192
|
+
| Any voice service | Alias |
|
|
193
|
+
| A name said the same way in every video | Name pronunciations |
|
|
194
|
+
| To correct a name once, for everything you have made since | Name pronunciations |
|
|
195
|
+
| A made-up or foreign name said exactly right, on Inworld TTS-2 | Name pronunciations, or the article's glossary |
|
|
196
|
+
| Pronunciations that come with each article automatically | The article's glossary |
|
|
116
197
|
|
|
117
198
|
## Tips
|
|
118
199
|
|
|
119
200
|
- Spell **Say it as** the way it sounds, not the way it is written: "Shiv-awn" rather than "Siobhan".
|
|
120
201
|
- Keep **Whole word** on unless you really want to match inside other words. Otherwise `St.` could fire inside unrelated text.
|
|
121
202
|
- Listen to the first minute of a new run before a long batch, and add aliases for anything the voice stumbles on.
|
|
203
|
+
- A name that comes back video after video belongs in **Name pronunciations**, not in each article's prompt: one line there holds for every project that follows.
|
|
122
204
|
|
|
123
205
|
## Related pages
|
|
124
206
|
|
|
125
|
-
- [Narration](
|
|
207
|
+
- [Create: Narration](Create-Narration)
|
|
126
208
|
- [Prompts](Prompts)
|
|
127
209
|
- [Editing a project](Editing-a-Project)
|
|
128
210
|
- [Multiple voices](Multiple-Voices)
|
|
129
|
-
- [
|
|
211
|
+
- [Keys and Services](Providers-and-Keys)
|
|
@@ -11,35 +11,39 @@ Runs can take a while, so Slopify can tell you when one needs you: in the browse
|
|
|
11
11
|
| A run **finishes** | "Video ready: *title*", or "Run finished: *title*" for a run that makes audio only |
|
|
12
12
|
| A run **finishes with problems** | "Video ready with problems: *title* — *reason*": the video was made but another step failed |
|
|
13
13
|
| A run **fails** | "Run failed: *title* — *reason*", with the first line of the reason |
|
|
14
|
-
| A step **fails while the run waits on something else** | "Step failed: *title* — *reason*". Only when another step is waiting: an agent's
|
|
15
|
-
| A run **stops to wait for you** | "Waiting for you: *title*": a
|
|
16
|
-
| An agent's
|
|
17
|
-
| An
|
|
14
|
+
| A step **fails while the run waits on something else** | "Step failed: *title* — *reason*". Only when another step is waiting: an agent's check, your approval at a pause, or the day of a video made ahead. See [Step failed](#step-failed). |
|
|
15
|
+
| A run **stops to wait for you** | "Waiting for you: *title*": a pause is holding the next step, or the work left is waiting for **Continue the run** |
|
|
16
|
+
| An agent's check **passed without an answer** | "Passed without review: no agent answered in 2 h", naming the project and the item. See [Agents (MCP)](Agents-MCP#if-no-agent-answers). |
|
|
17
|
+
| An AI check **needs a decision** | "Review needs a decision: <title>", when an AI check flags an item and keeps it (its redos ran out, or the stage only flags). It says what was flagged and to press **Overrule** or **Redo** on the project. Sent once per verdict. |
|
|
18
18
|
| A schedule has **new topics waiting** for approval | For example "5 new topics are waiting for you" |
|
|
19
19
|
|
|
20
|
-
Pausing or cancelling a run yourself sends nothing, and neither does a project that was already finished when the page loaded. A run waiting for an [agent's
|
|
20
|
+
Pausing or cancelling a run yourself sends nothing, and neither does a project that was already finished when the page loaded. A run waiting for an [agent's check](Agents-MCP#your-own-ai-agent-as-the-checker), or a video made ahead waiting for its day, sends no "Waiting for you": nobody needs to act. A message holds the project title and what happened, never your keys, prompts or files.
|
|
21
21
|
|
|
22
|
-
A run an [agent](Agents-MCP) started ends its messages with **· started by agent**, and a flag from an agent's
|
|
22
|
+
A run an [agent](Agents-MCP) started ends its messages with **· started by agent**, and a flag from an agent's check ends with **· by agent**.
|
|
23
23
|
|
|
24
24
|
### Step failed
|
|
25
25
|
|
|
26
26
|
An ordinary run tells you once, at its end: "Run failed" or "Video ready with problems", with the end chime. A step that fails on the way is named there, not in a message of its own.
|
|
27
27
|
|
|
28
|
-
"Step failed" is for the other case: a step fails while another step of the run is waiting (for an agent's
|
|
28
|
+
"Step failed" is for the other case: a step fails while another step of the run is waiting (for an agent's check, your approval at a pause, or the day of a video made ahead). The run is not over and may wait for hours, so Slopify tells you right away instead of at the end. The project still reads by what it waits for, and the failed step shows on its page with its fix.
|
|
29
29
|
|
|
30
30
|
Each failure is told once. A restart neither repeats a message already sent nor loses one: what was told is saved. A step that fails again after **Try again** is a new failure and is told again. If the run later ends **Failed** on failures already told, no second "Run failed" goes out.
|
|
31
31
|
|
|
32
|
+
### On the page, always
|
|
33
|
+
|
|
34
|
+
The end of a run is also said on the page itself, whatever the switches below say: while a Slopify tab is open, a notice in the corner reads "Video ready: *title*" with **Watch** (the project's Video part), "Run finished: *title*" with **Open** for a run without a video, or "Run failed: *title* — *reason*" with **Open**, which stays until you close it. With several tabs open, one of them shows it.
|
|
35
|
+
|
|
32
36
|
### While you were away
|
|
33
37
|
|
|
34
38
|
When you come back to a Slopify tab after more than two minutes away (or open one after closing it), one notice sums up what happened meanwhile, for example "While you were away: 2 runs finished, 1 step failed beside a wait, 1 run waits for you.", with **Open Home**. It counts runs that finished, runs that failed, steps that failed beside a wait, and runs that started waiting for you. Runs waiting for an agent or for their day are not counted as waiting for you. It works from this browser's own memory of what it last saw, with no setting.
|
|
35
39
|
|
|
36
40
|
## Turn on browser notifications
|
|
37
41
|
|
|
38
|
-
Browser notifications work while any Slopify tab is open,
|
|
42
|
+
Browser notifications work while any Slopify tab is open, on any page, even in the background.
|
|
39
43
|
|
|
40
44
|
1. Open **Settings → Notifications**.
|
|
41
|
-
2. Turn **
|
|
42
|
-
3. Press **Send test notification
|
|
45
|
+
2. Turn **Notify me in this browser** on. The browser asks for permission now (never when the page loads). Allow it.
|
|
46
|
+
3. Press **Send test notification**, which appears beside the switch once it is on, to check. You should see "Test notification sent to this browser."
|
|
43
47
|
|
|
44
48
|
What to expect:
|
|
45
49
|
|
|
@@ -55,22 +59,22 @@ If you blocked notifications for Slopify earlier, Slopify says "Notifications ar
|
|
|
55
59
|
1. Click the icon left of the address bar and open the site settings.
|
|
56
60
|
2. Allow notifications.
|
|
57
61
|
3. Reload the page.
|
|
58
|
-
4. Turn **
|
|
62
|
+
4. Turn **Notify me in this browser** on again.
|
|
59
63
|
|
|
60
64
|
Some browsers only allow notifications from installed apps. If the test says so, use a Notification URL instead.
|
|
61
65
|
|
|
62
|
-
##
|
|
66
|
+
## Sounds when a run starts and ends
|
|
63
67
|
|
|
64
|
-
**Settings → Notifications →
|
|
68
|
+
**Settings → Notifications → Play a sound when a run starts and ends** (on by default) plays a chime when a run starts and a different, longer one when it finishes, fails or stops to wait for you, like a message arriving on a phone. A "Step failed" plays the end chime too. **Hear the start sound** and **Hear the end sound** play them.
|
|
65
69
|
|
|
66
70
|
- Works while any Slopify tab is open; only one tab plays each chime.
|
|
67
71
|
- Needs no permission, but browsers keep a page silent until it has been clicked once, so click anywhere in Slopify after opening it.
|
|
68
|
-
- With **
|
|
72
|
+
- With **Notify me in this browser** on too, a run's start also shows "Started: *title*".
|
|
69
73
|
- It is this browser's own setting. Your computer's volume sets how loud.
|
|
70
74
|
|
|
71
75
|
## Get notifications on your phone (Notification URL)
|
|
72
76
|
|
|
73
|
-
A Notification URL works with no Slopify tab open. When a run finishes, fails or waits, a step fails beside a wait,
|
|
77
|
+
A Notification URL works with no Slopify tab open. When a run finishes, fails or waits, a step fails beside a wait, an AI check needs a decision or passes without an agent's answer, Slopify sends that address one `POST` with a short plain-text body. Its last line is the project's link, so you can open it straight from the message, for example:
|
|
74
78
|
|
|
75
79
|
```
|
|
76
80
|
Video ready: Black holes explained
|
|
@@ -108,13 +112,13 @@ Home shows the same last 7 days under **Coming up** (see [Home and Projects](Hom
|
|
|
108
112
|
## Tips
|
|
109
113
|
|
|
110
114
|
- Turn on both: browser notifications while you are at the computer, ntfy for when you walk away.
|
|
111
|
-
- Pair notifications with [
|
|
115
|
+
- Pair notifications with [pauses](Reviews-and-Checkpoints) so a run that waits for your review tells you right away.
|
|
112
116
|
|
|
113
117
|
## Related pages
|
|
114
118
|
|
|
115
119
|
- [Settings reference](Settings-Reference)
|
|
116
120
|
- [Schedules](Schedules)
|
|
117
121
|
- [Calendar](Calendar)
|
|
118
|
-
- [
|
|
122
|
+
- [Pauses and checks](Reviews-and-Checkpoints)
|
|
119
123
|
- [Agents (MCP)](Agents-MCP)
|
|
120
124
|
- [Troubleshooting](Troubleshooting)
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# Other Languages
|
|
2
2
|
|
|
3
|
-
A project can be written and narrated in one of 30 languages, not only English. Slopify asks the
|
|
3
|
+
A project can be written and narrated in one of 30 languages, not only English. Slopify asks the AI to write the article, description and shorts titles in that language, lists the voices that speak it, and times the captions for it. English and nine other languages get word-by-word captions; the rest are timed sentence by sentence.
|
|
4
4
|
|
|
5
|
-
**Where to find it:**
|
|
5
|
+
**Where to find it:** Create → **Article** row → **Language**. On a finished project: **Edit settings** → **Channel** → **Language**. For a channel's default: Channels → the channel → **Name and look** → **Language of new projects**.
|
|
6
6
|
|
|
7
7
|
## Pick a language for one video
|
|
8
8
|
|
|
9
|
-
1. On
|
|
9
|
+
1. On Create, open the **Article** row.
|
|
10
10
|
2. Under **Language**, pick the language. The first option, **Channel's language (…)**, uses the channel's language and names it.
|
|
11
11
|
3. Open the **Narration** row and pick a **Voice** that speaks the language. The list only shows voices listed for that language, plus voices whose languages are unknown.
|
|
12
12
|
4. Read the line under the Language picker: it says what is written in the language and how the captions will be timed.
|
|
@@ -16,16 +16,16 @@ A template saves the language its draft had. A draft that never picked one uses
|
|
|
16
16
|
|
|
17
17
|
## Set a channel's language
|
|
18
18
|
|
|
19
|
-
1. Open **Channels**, pick the channel and open its **
|
|
19
|
+
1. Open **Channels**, pick the channel and open its **Name and look** tab.
|
|
20
20
|
2. Under **Language of new projects**, pick the language. **Not set** means English.
|
|
21
21
|
|
|
22
22
|
This applies with the brand kit off too, because language is not styling. Projects already made keep their language.
|
|
23
23
|
|
|
24
24
|
## Change the language of a finished project
|
|
25
25
|
|
|
26
|
-
1. Open the project and press **Edit
|
|
27
|
-
2. Open **
|
|
28
|
-
3. Save
|
|
26
|
+
1. Open the project and press **Edit settings**.
|
|
27
|
+
2. Open **Channel** and pick the new **Language**.
|
|
28
|
+
3. Press **Save changes**. Changing the language writes the project's text again and times its captions again; **Choose what to make again** shows what will be made and what it costs.
|
|
29
29
|
|
|
30
30
|
## What changes with the language
|
|
31
31
|
|
|
@@ -61,12 +61,12 @@ English projects get no extra line, so they are exactly what they were before la
|
|
|
61
61
|
Saved voices carry the languages they speak.
|
|
62
62
|
|
|
63
63
|
1. Open **Settings → Voices** and add a voice.
|
|
64
|
-
2. Leave **Languages**
|
|
65
|
-
3.
|
|
64
|
+
2. Leave **Languages it speaks** on **Any language** and Slopify asks ElevenLabs, Cartesia or Inworld which languages the voice speaks, or pick them yourself by name.
|
|
65
|
+
3. Change them later in the voice's row, under **Speaks**: pick a language to add it, or remove one.
|
|
66
66
|
|
|
67
67
|
OpenAI has no voice API for this, and its voices read every language its model does. A voice whose languages are unknown is offered for every language.
|
|
68
68
|
|
|
69
|
-
On
|
|
69
|
+
On Create, the voice list shows the voices that speak the project language. Tick **Show all voices** to pick one listed for other languages, for example a multilingual voice whose languages are listed wrong. If you pick such a voice, Create warns you but does not stop the run. Speaker voice pickers under Speakers, and a cast member's voice picker, filter the same way. See [Multiple-Voices](Multiple-Voices).
|
|
70
70
|
|
|
71
71
|
## Caption timing in detail
|
|
72
72
|
|
|
@@ -87,21 +87,21 @@ For any language other than English, Slopify checks that your caption font has t
|
|
|
87
87
|
|
|
88
88
|
1. It uses a bundled Noto font for Latin, Greek, Cyrillic, Arabic, Hebrew, Devanagari and Thai.
|
|
89
89
|
2. For Chinese, Japanese and Korean, which are not bundled (their fonts run to 10-20 MB), it looks for a font on your computer that has the letters.
|
|
90
|
-
3. If none is found, the Video stage stops and says so. Upload a font that has the letters with **Upload font (.ttf or .otf)** in the caption font picker (
|
|
90
|
+
3. If none is found, the Video stage stops and says so. Upload a font that has the letters with **Upload font (.ttf or .otf)** in the caption font picker (Create → **Video and style**, or **Edit settings** → **Captions**), choose it, then press **Try again**. Noto Sans JP, KR or SC from fonts.google.com work.
|
|
91
91
|
|
|
92
|
-
English projects always
|
|
92
|
+
English projects always use exactly the font you chose.
|
|
93
93
|
|
|
94
94
|
## Limits
|
|
95
95
|
|
|
96
96
|
- Only the 30 languages above can be picked.
|
|
97
97
|
- Word-by-word captions and cuts that follow the narration are only available in English and the nine multilingual languages.
|
|
98
98
|
- The first captions in a multilingual language need a one-time download of about 248 MB.
|
|
99
|
-
- Some voice
|
|
99
|
+
- Some voice services list languages incorrectly; use Show all voices if the voice you want is missing.
|
|
100
100
|
|
|
101
101
|
## Related pages
|
|
102
102
|
|
|
103
|
-
- [
|
|
104
|
-
- [
|
|
103
|
+
- [Create: Narration](Create-Narration)
|
|
104
|
+
- [Create: Video and Style](Create-Video-and-Style)
|
|
105
105
|
- [Channels](Channels)
|
|
106
106
|
- [Multiple-Voices](Multiple-Voices)
|
|
107
107
|
- [Shorts](Shorts)
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
# PDF Documents
|
|
2
2
|
|
|
3
|
-
Slopify can lay out your article as a styled PDF: a title page with the thumbnail as its cover, a table of contents, the article with drop caps, a sources page and an optional closing page. It is drawn on your computer in the
|
|
3
|
+
Slopify can lay out your article as a styled PDF: a title page with the thumbnail as its cover, a table of contents, the article with drop caps, a sources page and an optional closing page. It is drawn on your computer in the look you pick, needs no service and costs nothing.
|
|
4
4
|
|
|
5
|
-
**Where to find it:**
|
|
5
|
+
**Where to find it:** Create → **Extras** → **PDF of the article**. On a finished project: the **PDF** section of the project page, and **Edit settings** → **Extras** → **PDF**.
|
|
6
6
|
|
|
7
7
|
## Make a PDF
|
|
8
8
|
|
|
9
|
-
1. On
|
|
10
|
-
2.
|
|
11
|
-
3. Pick a **
|
|
12
|
-
4.
|
|
9
|
+
1. On Create, open the **Extras** row.
|
|
10
|
+
2. Tick **PDF of the article**.
|
|
11
|
+
3. Pick a **PDF look**: one of the three ready looks, **Plain**, **Book** or **Modern** (**Preview** shows it), or one of your own PDF looks.
|
|
12
|
+
4. Make the video.
|
|
13
13
|
|
|
14
|
-
The Document stage runs after the article (and the thumbnail, if there is one) is ready. A thumbnail that failed or was canceled doesn't hold it back: the PDF is then laid out without a cover. It needs an article with some text; an empty article stops the stage with a message pointing you to Edit
|
|
14
|
+
The Document stage runs after the article (and the thumbnail, if there is one) is ready. A thumbnail that failed or was canceled doesn't hold it back: the PDF is then laid out without a cover. It needs an article with some text; an empty article stops the stage with a message pointing you to **Edit settings** → **Article**.
|
|
15
15
|
|
|
16
16
|
## Options
|
|
17
17
|
|
|
18
18
|
| Option | What it does | Default |
|
|
19
19
|
|---|---|---|
|
|
20
|
-
| **
|
|
21
|
-
| **
|
|
20
|
+
| **PDF of the article** | Lays out a PDF of the article and title on this computer, in the look you pick. It needs no service and costs nothing. | Off |
|
|
21
|
+
| **PDF look** | How the PDF looks: a ready look (**Plain**, **Book** or **Modern**), or one of your own PDF looks. **Edit PDF looks** opens the list. | Plain, or the channel's PDF look |
|
|
22
22
|
|
|
23
|
-
A
|
|
23
|
+
A look of yours is copied into the project when you pick it. Editing the look later leaves this project alone until you pick it again, so a PDF already made or queued never changes by surprise. A channel's brand kit can set a **PDF look** for its videos whose template picks none; see [Channels](Channels).
|
|
24
24
|
|
|
25
25
|
## What's in the PDF
|
|
26
26
|
|
|
@@ -28,11 +28,11 @@ In order:
|
|
|
28
28
|
|
|
29
29
|
| Part | What it holds |
|
|
30
30
|
|---|---|
|
|
31
|
-
| **Title page** | The
|
|
32
|
-
| **Table of Contents** | Headings from the article, down to the level the
|
|
31
|
+
| **Title page** | The look's brand name and tagline (if the look sets them), the video's title, the project's thumbnail as a cover, then the date and word count. |
|
|
32
|
+
| **Table of Contents** | Headings from the article, down to the level the look sets (two levels in Plain), with page numbers. |
|
|
33
33
|
| **Body** | The article: headings, paragraphs with a drop cap after headings, bold and italic, links, lists, quotes and rules. |
|
|
34
34
|
| **Sources Consulted** | The article's "Sources Consulted" section, then any other web link cited in the research notes. Links stay clickable. |
|
|
35
|
-
| **Closing page** | Optional: the
|
|
35
|
+
| **Closing page** | Optional: the look's own lines, the document's details (written on, total words, total pages), a link and a closing line. Off in Plain. |
|
|
36
36
|
|
|
37
37
|
Every page after the title page has a running header ("Brand | Title", or the title alone) and a page number in the footer.
|
|
38
38
|
|
|
@@ -49,9 +49,9 @@ The title page uses the project's thumbnail as its cover when:
|
|
|
49
49
|
|
|
50
50
|
- the project makes or uploads a thumbnail (its Thumbnail source is not Off),
|
|
51
51
|
- the thumbnail is a PNG, JPEG or WebP image, and
|
|
52
|
-
- the
|
|
52
|
+
- the look's cover setting is on (it is in Plain).
|
|
53
53
|
|
|
54
|
-
Otherwise the title page has no cover and the details sit in the
|
|
54
|
+
Otherwise the title page has no cover and the details sit in the look's usual place. That includes a thumbnail step that failed or was canceled: the PDF is made anyway, without a cover. If you make the thumbnail later, the PDF is marked outdated, so you can make it again with the cover. If the thumbnail file can't be read, the PDF stage stops and asks you to make or upload the thumbnail again, then use **Try again** on the PDF.
|
|
55
55
|
|
|
56
56
|
### Sources
|
|
57
57
|
|
|
@@ -62,39 +62,48 @@ Sources come from two places:
|
|
|
62
62
|
|
|
63
63
|
When there are no sources, the Sources page is left out.
|
|
64
64
|
|
|
65
|
-
## The
|
|
65
|
+
## The ready looks
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
Three looks come with Slopify, all unbranded A4 pages with a table of contents and a sources page and no closing page:
|
|
68
68
|
|
|
69
|
-
|
|
69
|
+
| Look | What it looks like |
|
|
70
|
+
|---|---|
|
|
71
|
+
| **Plain** | A warm off-white page, headings in dark blue, the Cinzel typeface for body and headings, a three-line drop cap after headings. What a new project gets. |
|
|
72
|
+
| **Book** | The article set like a novel in Literata on a parchment texture, Cinzel headings and drop caps in warm brown. |
|
|
73
|
+
| **Modern** | A sans-serif on a white page, blue headings and no drop caps, like a report. |
|
|
74
|
+
|
|
75
|
+
To change fonts, colors, paper size (A4 or Letter), page parts and the closing page, make your own PDF look. See [PDF looks](Document-Themes).
|
|
70
76
|
|
|
71
77
|
## Open and download the PDF
|
|
72
78
|
|
|
73
|
-
On the project page, the **
|
|
79
|
+
On the project page, the **PDF** part shows the PDF itself (where the browser can show PDFs) and, beside it:
|
|
74
80
|
|
|
75
|
-
- **Open PDF** opens it in a new browser tab.
|
|
76
81
|
- **Download PDF** saves the file to your computer.
|
|
82
|
+
- **Open in a new tab** opens it in a new browser tab.
|
|
83
|
+
- **Open folder** opens the project's folder.
|
|
84
|
+
|
|
85
|
+
A line under them gives the file's size and the look's name (for example **Plain theme**).
|
|
77
86
|
|
|
78
|
-
While the stage runs it says "The PDF will be saved when
|
|
87
|
+
While the stage runs it says "The PDF will be saved when it is made." The file lives in the project's folder; see [Where-Your-Files-Live](Where-Your-Files-Live).
|
|
79
88
|
|
|
80
|
-
## Change the
|
|
89
|
+
## Change the look of a finished project
|
|
81
90
|
|
|
82
|
-
1. Open the project and press **Edit
|
|
83
|
-
2. Open **
|
|
84
|
-
3. Pick a **
|
|
85
|
-
4. Save
|
|
91
|
+
1. Open the project and press **Edit settings**.
|
|
92
|
+
2. Open **Extras**. Turn on **PDF of the article** if it was off.
|
|
93
|
+
3. Pick a **PDF look**.
|
|
94
|
+
4. Press **Save changes**, then **Make the PDF again (free)** (or the title row's next action).
|
|
86
95
|
|
|
87
96
|
## Tips
|
|
88
97
|
|
|
89
|
-
- Use
|
|
98
|
+
- Use the live preview on the PDF looks page (Settings → Production defaults → PDF look → Edit PDF looks) to try a look on a sample article before you pick it for a project.
|
|
90
99
|
- If a PDF has no cover, check that the project has a thumbnail and that it is a PNG, JPEG or WebP image.
|
|
91
100
|
- Want the sources page filled? Make sure your Article prompt asks for a "Sources Consulted" section, and consider turning on research.
|
|
92
101
|
|
|
93
102
|
## Related pages
|
|
94
103
|
|
|
95
104
|
- [Document-Themes](Document-Themes)
|
|
96
|
-
- [
|
|
105
|
+
- [Create: Extras](Create-Extras)
|
|
97
106
|
- [Channels](Channels)
|
|
98
107
|
- [Project-Page](Project-Page)
|
|
99
108
|
- [Editing-a-Project](Editing-a-Project)
|
|
100
|
-
- [
|
|
109
|
+
- [Create: Article](Create-Article)
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
Slopify can get a project's post ready for **X, LinkedIn, Instagram, TikTok, Reddit and Bluesky**, beside its YouTube upload. Slopify prepares each site's post (its words, hashtags, link, pictures or video in the site's shape, and when it goes out). It never posts for you: there is no sign-in and no site API. The optional [Studio extension](Studio-Extension) fills each site's own post form in your browser, sets the site's scheduler where it has one, and turns the site's AI label on. You check the post and press **Post** yourself.
|
|
4
4
|
|
|
5
|
-
**Where to find it:** a finished project → **
|
|
5
|
+
**Where to find it:** a finished project → **Copy for YouTube Studio** → **Where** (shown once the project posts to at least one site). A template's sites are set in **Templates → Edit template → YouTube description and posts**, or on Create in the **Extras** row under **Post to other sites**. Each channel's **Name and look** tab holds its account names and X subscription.
|
|
6
6
|
|
|
7
7
|
## Turn posting on
|
|
8
8
|
|
|
9
|
-
1. Open the template
|
|
9
|
+
1. Open the template with **Edit template** and go to **YouTube description and posts**.
|
|
10
10
|
2. Under **Post to**, turn on each site. Each one starts with the defaults below.
|
|
11
|
-
3. Change the **text** and the **video** or **pictures** of each site there; hashtags, the thumbnail and the YouTube link are
|
|
12
|
-
4. Press **Save**. A site whose words come from a post prompt is a paid step, so
|
|
11
|
+
3. Change the **text** and the **video** or **pictures** of each site there; hashtags, the thumbnail and the YouTube link are in the section's fold (**More … settings**).
|
|
12
|
+
4. Press **Save**. A site whose words come from a post prompt is a paid step, so the sample's **Make sample** shows its price like any other (the **Posts** line).
|
|
13
13
|
|
|
14
|
-
A project or template with no site turned on works exactly as before:
|
|
14
|
+
A project or template with no site turned on works exactly as before: Copy for YouTube Studio shows YouTube alone.
|
|
15
15
|
|
|
16
16
|
### What each site gets by default
|
|
17
17
|
|
|
@@ -24,7 +24,7 @@ A project or template with no site turned on works exactly as before: Prepare up
|
|
|
24
24
|
| Bluesky | The summary, two hashtags | Up to 4 pictures |
|
|
25
25
|
| Reddit | A link post with the project's title | The YouTube link |
|
|
26
26
|
|
|
27
|
-
## The post in
|
|
27
|
+
## The post in Copy for YouTube Studio
|
|
28
28
|
|
|
29
29
|
Choose a site under **Where**. Its panel shows, top to bottom:
|
|
30
30
|
|
|
@@ -41,17 +41,17 @@ Choose a site under **Where**. Its panel shows, top to bottom:
|
|
|
41
41
|
| Summary | The keyword digest's summary when the run wrote one, otherwise the YouTube description's first paragraph (the default) | Free |
|
|
42
42
|
| YouTube description | The description without its chapters and hashtags | Free |
|
|
43
43
|
| Title | The video's title | Free |
|
|
44
|
-
| Written by a post prompt | A post written from the article by
|
|
44
|
+
| Written by a post prompt | A post written from the article by one of your prompts of kind Post (or the built-in one) | One AI call per site; it shows in the estimate as **Posts** |
|
|
45
45
|
| My own text | Your text, with `{{Slopify_Title}}`, `{{Slopify_Summary}}` and the other [keywords Slopify fills](Keywords-Slopify-Fills) | Free |
|
|
46
46
|
| No text | Nothing | Free |
|
|
47
47
|
|
|
48
|
-
A post prompt is a paid step, so it is picked in
|
|
48
|
+
A post prompt is a paid step, so it is picked in Edit template's **YouTube description and posts** (or on Create), where the estimate shows its cost. Copy for YouTube Studio can switch a site between the free sources.
|
|
49
49
|
|
|
50
50
|
Hashtags come from the video's YouTube tags, then the shorts' hashtags, up to each site's most. The YouTube link is added, when asked, once the video is on YouTube. Text longer than the site takes is cut at the last whole sentence that fits, and the post says so.
|
|
51
51
|
|
|
52
52
|
## Pictures and video
|
|
53
53
|
|
|
54
|
-
A post can carry the long video, one of the shorts, the thumbnail, any number of the project's pictures, and
|
|
54
|
+
A post can carry the long video, one of the shorts, the thumbnail, any number of the project's pictures, and the project's posters and edited images kept in it (**Posters and edited images…** under the project's status, then **Keep in project**), in any mix. Instagram's pictures are cut to 4:5 the first time they are needed; a design goes in its own format closest to the site's shape (portrait on Instagram, a story on TikTok, square elsewhere), drawn when the post needs it; shorts are already vertical; the long video is never re-encoded. Sites that don't mix a video with pictures (LinkedIn, TikTok, Reddit, Bluesky) get a warning rather than a refusal.
|
|
55
55
|
|
|
56
56
|
## Each site's limits
|
|
57
57
|
|
|
@@ -99,14 +99,14 @@ A Reddit post has its own **Subreddit** (without `r/`), **Title**, **Flair** and
|
|
|
99
99
|
|
|
100
100
|
## Your accounts and X subscription
|
|
101
101
|
|
|
102
|
-
In **Channels** → your channel → **
|
|
102
|
+
In **Channels** → your channel → **Name and look** → **Posting**:
|
|
103
103
|
|
|
104
104
|
- **X subscription** (Free, Premium or Premium+) only changes which warnings a post gets, such as the 280-character and 2 min 20 s limits of X Free.
|
|
105
105
|
- **Account names** let the extension find a published post's link on your profile page. They are never used to sign in.
|
|
106
106
|
|
|
107
107
|
## Post prompts
|
|
108
108
|
|
|
109
|
-
Write your own in **
|
|
109
|
+
Write your own in **Prompts**, kind **Post** (**Start from an example** → **Slopify's own wording** fills in the wording Slopify uses). Slopify gives it the site's length limit and asks again when the answer is over it, then adds the hashtags and link itself. Pick it for a site in Edit template's **YouTube description and posts** by choosing **Written by a post prompt** as its text.
|
|
110
110
|
|
|
111
111
|
## Agents
|
|
112
112
|
|
|
@@ -116,6 +116,6 @@ Agents read and prepare posts (`get_post_packs`, `set_post_choice`, `edit_post_t
|
|
|
116
116
|
|
|
117
117
|
- [Publishing to YouTube](Publishing-to-YouTube)
|
|
118
118
|
- [Studio extension](Studio-Extension)
|
|
119
|
-
- [
|
|
119
|
+
- [Edit template](Template-Studio)
|
|
120
120
|
- [Channels](Channels)
|
|
121
121
|
- [Prompts](Prompts)
|