@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.
Files changed (375) hide show
  1. package/dist/adapters/account-limits.js +1 -1
  2. package/dist/adapters/alignment/audio.js +1 -1
  3. package/dist/adapters/alignment/cache.js +1 -1
  4. package/dist/adapters/alignment/multilingual.js +2 -1
  5. package/dist/adapters/alignment/runner.js +1 -1
  6. package/dist/adapters/alignment/worker.js +1 -1
  7. package/dist/adapters/explain.js +10 -9
  8. package/dist/adapters/host-cli/index.js +2 -1
  9. package/dist/adapters/host-cli/transport.js +2 -1
  10. package/dist/adapters/image/bytes.js +2 -1
  11. package/dist/adapters/image/codex.js +6 -5
  12. package/dist/adapters/image/fal.js +4 -3
  13. package/dist/adapters/image/google.js +3 -2
  14. package/dist/adapters/image/models.js +2 -2
  15. package/dist/adapters/image/openai.js +2 -1
  16. package/dist/adapters/image/replicate.js +3 -2
  17. package/dist/adapters/image/video.js +2 -1
  18. package/dist/adapters/key-probes.js +1 -1
  19. package/dist/adapters/llm/antigravity-models.js +1 -1
  20. package/dist/adapters/llm/antigravity.js +7 -6
  21. package/dist/adapters/llm/assistant-cli.js +1 -1
  22. package/dist/adapters/llm/claude-code-models.js +1 -1
  23. package/dist/adapters/llm/claude-code.js +3 -2
  24. package/dist/adapters/llm/codex-models.js +1 -1
  25. package/dist/adapters/llm/document-workspace.js +3 -2
  26. package/dist/adapters/llm/image-workspace.js +3 -2
  27. package/dist/adapters/llm/openrouter.js +2 -1
  28. package/dist/adapters/llm/run-cli.js +3 -2
  29. package/dist/adapters/tts/gemini.js +2 -1
  30. package/dist/adapters/tts/inworld-async.js +2 -1
  31. package/dist/adapters/tts/inworld.js +3 -2
  32. package/dist/adapters/tts/system.js +2 -1
  33. package/dist/catalog/registry.js +20 -13
  34. package/dist/catalog/schema.js +2 -1
  35. package/dist/catalog/validate.js +5 -2
  36. package/dist/edge/http/actions.js +7 -7
  37. package/dist/edge/http/app.js +5 -3
  38. package/dist/edge/http/assistant.js +3 -1
  39. package/dist/edge/http/backups.js +1 -1
  40. package/dist/edge/http/channel-memory.js +2 -2
  41. package/dist/edge/http/channels.js +1 -1
  42. package/dist/edge/http/checkpoints.js +7 -5
  43. package/dist/edge/http/design-templates.js +3 -3
  44. package/dist/edge/http/designs.js +1 -1
  45. package/dist/edge/http/document-themes.js +3 -3
  46. package/dist/edge/http/draft-problem.js +1 -1
  47. package/dist/edge/http/extension-auth.js +1 -1
  48. package/dist/edge/http/home.js +9 -1
  49. package/dist/edge/http/model-checks.js +4 -4
  50. package/dist/edge/http/onboarding.js +29 -12
  51. package/dist/edge/http/outputs.js +3 -2
  52. package/dist/edge/http/patch-notes.js +2 -2
  53. package/dist/edge/http/planning.js +1 -1
  54. package/dist/edge/http/project-create.js +1 -1
  55. package/dist/edge/http/project-templates.js +2 -2
  56. package/dist/edge/http/projects.js +22 -4
  57. package/dist/edge/http/prompts.js +2 -2
  58. package/dist/edge/http/pronunciation-check.js +133 -0
  59. package/dist/edge/http/pronunciations.js +26 -0
  60. package/dist/edge/http/providers.js +9 -10
  61. package/dist/edge/http/refusal.js +1 -1
  62. package/dist/edge/http/remote-access.js +4 -4
  63. package/dist/edge/http/remote-guard.js +2 -2
  64. package/dist/edge/http/reviews.js +1 -1
  65. package/dist/edge/http/revision-files.js +1 -1
  66. package/dist/edge/http/revisions.js +4 -4
  67. package/dist/edge/http/schedules.js +13 -11
  68. package/dist/edge/http/settings.js +6 -2
  69. package/dist/edge/http/social.js +5 -4
  70. package/dist/edge/http/staging.js +1 -1
  71. package/dist/edge/http/storage.js +12 -4
  72. package/dist/edge/http/studio.js +71 -19
  73. package/dist/edge/http/style-preview.js +2 -2
  74. package/dist/edge/http/template-studio.js +12 -9
  75. package/dist/edge/http/trash.js +1 -1
  76. package/dist/edge/http/youtube-edits.js +1 -1
  77. package/dist/edge/mcp/excluded-routes.js +4 -3
  78. package/dist/edge/mcp/instructions.js +3 -3
  79. package/dist/edge/mcp/library-tools.js +8 -5
  80. package/dist/edge/mcp/remake-tools.js +7 -4
  81. package/dist/edge/mcp/server.js +1 -1
  82. package/dist/edge/mcp/tools-channels.js +9 -9
  83. package/dist/edge/mcp/tools-designs.js +9 -9
  84. package/dist/edge/mcp/tools-library.js +31 -7
  85. package/dist/edge/mcp/tools-planning.js +18 -18
  86. package/dist/edge/mcp/tools-projects.js +10 -10
  87. package/dist/edge/mcp/tools-publishing.js +9 -9
  88. package/dist/edge/mcp/tools-runs.js +9 -9
  89. package/dist/edge/mcp/tools-schedules.js +6 -6
  90. package/dist/edge/mcp/tools-setup.js +20 -14
  91. package/dist/edge/mcp/tools-social.js +5 -4
  92. package/dist/edge/mcp/tools-storage.js +3 -3
  93. package/dist/edge/mcp/tools-template-studio.js +18 -18
  94. package/dist/edge/remote-access/model.js +1 -1
  95. package/dist/extension/slopify-studio-chrome.zip +0 -0
  96. package/dist/extension/slopify-studio-firefox.zip +0 -0
  97. package/dist/kernel/db/migrations/0078-uploaded-from-links.sql +7 -0
  98. package/dist/kernel/pipeline.js +12 -0
  99. package/dist/kernel/ports/settings-places.js +31 -0
  100. package/dist/kernel/ports/system-speech.js +31 -3
  101. package/dist/kernel/runner/attempt.js +11 -3
  102. package/dist/kernel/runner/providers.js +3 -2
  103. package/dist/kernel/runner/standalone.js +2 -2
  104. package/dist/main.js +5 -3
  105. package/dist/model-catalog.js +20 -0
  106. package/dist/patch-notes/4.0.0.md +13 -13
  107. package/dist/patch-notes/4.1.0.md +42 -0
  108. package/dist/patch-notes/4.2.0.md +28 -0
  109. package/dist/patch-notes/index.json +12 -0
  110. package/dist/slices/admission/listing-facts.js +95 -0
  111. package/dist/slices/admission/repo.js +9 -6
  112. package/dist/slices/admission/rules.js +7 -7
  113. package/dist/slices/admission/schema.js +2 -0
  114. package/dist/slices/admission/start.js +7 -0
  115. package/dist/slices/admission/state-words.js +34 -5
  116. package/dist/slices/assistant/cost.js +1 -1
  117. package/dist/slices/assistant/gate.js +1 -0
  118. package/dist/slices/assistant/model.js +10 -3
  119. package/dist/slices/assistant/turn.js +5 -3
  120. package/dist/slices/autopilot/warnings.js +1 -1
  121. package/dist/slices/backups/service.js +5 -5
  122. package/dist/slices/channels/cast-images.js +1 -1
  123. package/dist/slices/channels/schema.js +1 -1
  124. package/dist/slices/channels/videos.js +1 -1
  125. package/dist/slices/control/providers.js +2 -2
  126. package/dist/slices/designs/budget.js +1 -1
  127. package/dist/slices/designs/calls.js +2 -2
  128. package/dist/slices/designs/check-context.js +4 -4
  129. package/dist/slices/designs/fields.js +4 -4
  130. package/dist/slices/designs/gate.js +7 -5
  131. package/dist/slices/designs/render-input.js +1 -1
  132. package/dist/slices/designs/requests.js +1 -1
  133. package/dist/slices/designs/runner.js +1 -1
  134. package/dist/slices/designs/sample.js +2 -1
  135. package/dist/slices/designs/service.js +1 -1
  136. package/dist/slices/designs/template-checks.js +2 -2
  137. package/dist/slices/designs/template-make.js +3 -3
  138. package/dist/slices/designs/templates.js +3 -3
  139. package/dist/slices/document/fonts.js +1 -1
  140. package/dist/slices/document/model.js +7 -4
  141. package/dist/slices/document/render.js +2 -1
  142. package/dist/slices/document/theme-schema.js +1 -1
  143. package/dist/slices/document/theme.js +49 -3
  144. package/dist/slices/episodes/summarize.js +2 -2
  145. package/dist/slices/estimate/index.js +28 -22
  146. package/dist/slices/estimate/requests.js +4 -4
  147. package/dist/slices/fixes/rules.js +3 -1
  148. package/dist/slices/fonts/catalog.js +2 -1
  149. package/dist/slices/fonts/coverage.js +2 -1
  150. package/dist/slices/images/appearance.js +2 -1
  151. package/dist/slices/images/scenes.js +2 -1
  152. package/dist/slices/keywords/digest.js +2 -1
  153. package/dist/slices/keywords/rules.js +2 -2
  154. package/dist/slices/keywords/specs.js +5 -5
  155. package/dist/slices/keywords/values.js +1 -1
  156. package/dist/slices/library/transfer.js +3 -3
  157. package/dist/slices/loudness/loudnorm.js +2 -1
  158. package/dist/slices/loudness/model.js +3 -2
  159. package/dist/slices/loudness/sentence-level.js +2 -1
  160. package/dist/slices/model-checks/rules.js +13 -0
  161. package/dist/slices/model-upkeep/model.js +1 -1
  162. package/dist/slices/model-upkeep/switch.js +3 -3
  163. package/dist/slices/model-upkeep/usage.js +13 -2
  164. package/dist/slices/narration/breaths.js +2 -1
  165. package/dist/slices/narration/clean-pieces.js +2 -1
  166. package/dist/slices/narration/pauses-model.js +3 -2
  167. package/dist/slices/narration/pronunciation-check.js +226 -0
  168. package/dist/slices/narration/pronunciation.js +7 -2
  169. package/dist/slices/narration/pronunciations-library.js +94 -0
  170. package/dist/slices/notifications/subject.js +2 -2
  171. package/dist/slices/onboarding/copy.js +19 -2
  172. package/dist/slices/onboarding/first-run.js +13 -38
  173. package/dist/slices/onboarding/install.js +2 -1
  174. package/dist/slices/onboarding/model.js +26 -21
  175. package/dist/slices/onboarding/preferred-model.js +14 -0
  176. package/dist/slices/onboarding/quick-short.js +103 -64
  177. package/dist/slices/onboarding/sample.js +4 -1
  178. package/dist/slices/onboarding/state.js +7 -0
  179. package/dist/slices/onboarding/template.js +6 -5
  180. package/dist/slices/outputs/add.js +3 -2
  181. package/dist/slices/outputs/service.js +2 -2
  182. package/dist/slices/patch-notes/library.js +1 -1
  183. package/dist/slices/play-drafts/readiness.js +3 -3
  184. package/dist/slices/play-drafts/review-inputs.js +1 -1
  185. package/dist/slices/play-drafts/service.js +17 -7
  186. package/dist/slices/project-templates/next-chapter.js +2 -1
  187. package/dist/slices/project-templates/provider-defaults.js +22 -0
  188. package/dist/slices/project-templates/setup-sections.js +26 -0
  189. package/dist/slices/project-templates/setup.js +6 -1
  190. package/dist/slices/rebuild/preview-details.js +5 -5
  191. package/dist/slices/rebuild/recipe-preparation.js +1 -1
  192. package/dist/slices/rebuild/recipe-save.js +2 -2
  193. package/dist/slices/rebuild/recipe-text.js +16 -4
  194. package/dist/slices/rebuild/recipe-validation.js +5 -4
  195. package/dist/slices/rebuild/recipe-voices.js +3 -2
  196. package/dist/slices/rebuild/recipe-work.js +4 -4
  197. package/dist/slices/rebuild/recovery.js +6 -6
  198. package/dist/slices/rebuild/remake-outdated.js +5 -5
  199. package/dist/slices/rebuild/review-redo.js +1 -1
  200. package/dist/slices/rebuild/runtime-animate.js +2 -2
  201. package/dist/slices/rebuild/runtime-article.js +4 -3
  202. package/dist/slices/rebuild/runtime-document.js +5 -4
  203. package/dist/slices/rebuild/runtime-export-bed.js +2 -1
  204. package/dist/slices/rebuild/runtime-export-edit.js +2 -1
  205. package/dist/slices/rebuild/runtime-export-inputs.js +5 -4
  206. package/dist/slices/rebuild/runtime-export-short.js +1 -1
  207. package/dist/slices/rebuild/runtime-export.js +4 -3
  208. package/dist/slices/rebuild/runtime-image.js +4 -3
  209. package/dist/slices/rebuild/runtime-local.js +3 -2
  210. package/dist/slices/rebuild/runtime-narration-text.js +3 -2
  211. package/dist/slices/rebuild/runtime-provider.js +7 -6
  212. package/dist/slices/rebuild/runtime-review.js +6 -5
  213. package/dist/slices/rebuild/runtime-shorts.js +6 -5
  214. package/dist/slices/rebuild/runtime-store.js +17 -2
  215. package/dist/slices/rebuild/runtime-subtitles.js +13 -12
  216. package/dist/slices/rebuild/runtime-voices.js +2 -1
  217. package/dist/slices/rebuild/runtime-youtube.js +3 -2
  218. package/dist/slices/rebuild/service-readiness.js +11 -3
  219. package/dist/slices/research/synthesis.js +3 -2
  220. package/dist/slices/reviews/external-model.js +1 -1
  221. package/dist/slices/reviews/holds.js +5 -4
  222. package/dist/slices/reviews/model.js +8 -5
  223. package/dist/slices/reviews/rules.js +3 -3
  224. package/dist/slices/reviews/verdict.js +2 -1
  225. package/dist/slices/revisions/image-plan.js +1 -1
  226. package/dist/slices/revisions/mutation-assets.js +2 -1
  227. package/dist/slices/revisions/mutations.js +3 -2
  228. package/dist/slices/schedules/agenda.js +7 -5
  229. package/dist/slices/schedules/design-check.js +4 -4
  230. package/dist/slices/schedules/design-run.js +3 -3
  231. package/dist/slices/schedules/repo.js +6 -5
  232. package/dist/slices/schedules/schema.js +3 -0
  233. package/dist/slices/schedules/topics.js +5 -5
  234. package/dist/slices/settings/first-run.js +6 -32
  235. package/dist/slices/settings/health.js +30 -15
  236. package/dist/slices/settings/key-test.js +1 -1
  237. package/dist/slices/settings/model.js +4 -2
  238. package/dist/slices/settings/playback.js +2 -2
  239. package/dist/slices/shorts/keep.js +2 -1
  240. package/dist/slices/shorts/pick.js +4 -3
  241. package/dist/slices/shorts/prompts.js +2 -1
  242. package/dist/slices/shorts/render.js +3 -2
  243. package/dist/slices/social/media.js +5 -4
  244. package/dist/slices/social/pack.js +1 -1
  245. package/dist/slices/social/post-prompt.js +2 -1
  246. package/dist/slices/social/reshape.js +2 -2
  247. package/dist/slices/social/serve.js +1 -1
  248. package/dist/slices/social/service.js +3 -2
  249. package/dist/slices/social/state.js +1 -1
  250. package/dist/slices/storage/backup-import.js +2 -2
  251. package/dist/slices/storage/portable.js +1 -1
  252. package/dist/slices/storage/trim.js +23 -13
  253. package/dist/slices/studio/calendar.js +3 -1
  254. package/dist/slices/studio/disclosure.js +4 -4
  255. package/dist/slices/studio/model.js +1 -1
  256. package/dist/slices/studio/pack.js +9 -8
  257. package/dist/slices/studio/plan.js +1 -1
  258. package/dist/slices/studio/settings.js +6 -6
  259. package/dist/slices/studio/videos.js +23 -4
  260. package/dist/slices/style-preview/render.js +3 -3
  261. package/dist/slices/style-preview/schema.js +1 -1
  262. package/dist/slices/subtitles/captions.js +1 -1
  263. package/dist/slices/template-studio/anatomy-view.js +46 -3
  264. package/dist/slices/template-studio/bakeoff.js +3 -3
  265. package/dist/slices/template-studio/budget.js +6 -3
  266. package/dist/slices/template-studio/cards.js +78 -0
  267. package/dist/slices/template-studio/checks.js +99 -50
  268. package/dist/slices/template-studio/for-all.js +5 -5
  269. package/dist/slices/template-studio/free-video.js +1 -1
  270. package/dist/slices/template-studio/free.js +5 -5
  271. package/dist/slices/template-studio/model.js +19 -15
  272. package/dist/slices/template-studio/pack-import.js +14 -14
  273. package/dist/slices/template-studio/pack.js +9 -7
  274. package/dist/slices/template-studio/paid.js +12 -5
  275. package/dist/slices/template-studio/quote.js +18 -11
  276. package/dist/slices/template-studio/ready.js +7 -7
  277. package/dist/slices/template-studio/runner.js +1 -1
  278. package/dist/slices/template-studio/save.js +12 -12
  279. package/dist/slices/template-studio/say-it-as.js +3 -3
  280. package/dist/slices/template-studio/schedule-gate.js +1 -1
  281. package/dist/slices/template-studio/schedule-price.js +3 -1
  282. package/dist/slices/template-studio/schedule-sample.js +5 -1
  283. package/dist/slices/template-studio/schema.js +25 -0
  284. package/dist/slices/template-studio/service.js +3 -1
  285. package/dist/slices/template-studio/status.js +26 -9
  286. package/dist/slices/template-studio/topic.js +3 -3
  287. package/dist/slices/thumbnail/by-llm.js +1 -1
  288. package/dist/slices/uploads/repo.js +37 -1
  289. package/dist/slices/uploads/rules.js +3 -2
  290. package/dist/slices/video/edit-list.js +2 -2
  291. package/dist/slices/video/edit-settings.js +1 -1
  292. package/dist/slices/video/encoding.js +14 -5
  293. package/dist/slices/video/ffmpeg.js +2 -2
  294. package/dist/slices/video/plan.js +2 -1
  295. package/dist/slices/video/slideshow.js +1 -1
  296. package/dist/slices/voices/attribution.js +3 -2
  297. package/dist/slices/voices/model.js +9 -8
  298. package/dist/slices/voices/script.js +2 -1
  299. package/dist/slices/youtube/answer.js +2 -1
  300. package/dist/slices/youtube/edits-repo.js +1 -1
  301. package/dist/tutorials/AI-CLIs.md +25 -25
  302. package/dist/tutorials/Agents-MCP.md +32 -32
  303. package/dist/tutorials/Assistant.md +5 -5
  304. package/dist/tutorials/Backups.md +7 -7
  305. package/dist/tutorials/Calendar.md +17 -25
  306. package/dist/tutorials/Cast-Library.md +19 -19
  307. package/dist/tutorials/Channels.md +40 -35
  308. package/dist/tutorials/Costs-and-Run-Cost.md +38 -40
  309. package/dist/tutorials/Create-Article.md +114 -0
  310. package/dist/tutorials/Create-Extras.md +112 -0
  311. package/dist/tutorials/Create-Images.md +165 -0
  312. package/dist/tutorials/Create-Narration.md +178 -0
  313. package/dist/tutorials/Create-Overview.md +244 -0
  314. package/dist/tutorials/Create-Video-and-Style.md +144 -0
  315. package/dist/tutorials/Docker.md +3 -3
  316. package/dist/tutorials/Document-Themes.md +32 -32
  317. package/dist/tutorials/Editing-a-Project.md +95 -94
  318. package/dist/tutorials/FAQ.md +18 -18
  319. package/dist/tutorials/First-Launch-and-Welcome.md +50 -64
  320. package/dist/tutorials/Home-and-Projects.md +101 -76
  321. package/dist/tutorials/Home.md +33 -33
  322. package/dist/tutorials/Install.md +13 -13
  323. package/dist/tutorials/Intros-and-Outros.md +33 -34
  324. package/dist/tutorials/Keyboard-Shortcuts-and-Command-Palette.md +62 -58
  325. package/dist/tutorials/Keywords-Slopify-Fills.md +21 -21
  326. package/dist/tutorials/Models.md +27 -27
  327. package/dist/tutorials/Multiple-Voices.md +41 -40
  328. package/dist/tutorials/Narration-Aliases-and-Glossary.md +101 -19
  329. package/dist/tutorials/Notifications.md +21 -17
  330. package/dist/tutorials/Other-Languages.md +15 -15
  331. package/dist/tutorials/PDF-Documents.md +38 -29
  332. package/dist/tutorials/Posting-to-Social-Sites.md +12 -12
  333. package/dist/tutorials/Project-Page.md +118 -120
  334. package/dist/tutorials/Prompts-and-Templates.md +84 -0
  335. package/dist/tutorials/Prompts.md +45 -45
  336. package/dist/tutorials/Providers-and-Keys.md +105 -98
  337. package/dist/tutorials/Publishing-to-YouTube.md +31 -31
  338. package/dist/tutorials/Recovery-and-Retries.md +31 -31
  339. package/dist/tutorials/Remote-Access.md +2 -2
  340. package/dist/tutorials/Reviews-and-Checkpoints.md +90 -93
  341. package/dist/tutorials/Schedules.md +27 -28
  342. package/dist/tutorials/Settings-Reference.md +183 -204
  343. package/dist/tutorials/Shorts.md +34 -33
  344. package/dist/tutorials/Start-at-Login.md +3 -3
  345. package/dist/tutorials/Studio-Extension.md +22 -24
  346. package/dist/tutorials/Template-Studio.md +45 -42
  347. package/dist/tutorials/Templates.md +50 -79
  348. package/dist/tutorials/Trash.md +4 -4
  349. package/dist/tutorials/Troubleshooting.md +44 -44
  350. package/dist/tutorials/Uninstalling-and-Moving.md +5 -5
  351. package/dist/tutorials/Updating-and-Patch-Notes.md +18 -18
  352. package/dist/tutorials/Video-Editing.md +34 -34
  353. package/dist/tutorials/Where-Your-Files-Live.md +10 -10
  354. package/dist/tutorials/YouTube-Description.md +26 -26
  355. package/dist/tutorials/Your-First-Short.md +35 -35
  356. package/dist/tutorials/_Sidebar.md +15 -15
  357. package/dist/web/assets/index-BNftKQrA.css +1 -0
  358. package/dist/web/assets/index-CQASqwjT.js +460 -0
  359. package/dist/web/assets/pdf-BKh8f7R6.js +56 -0
  360. package/dist/web/assets/pdf.worker.min-BmVo14Nb.mjs +28 -0
  361. package/dist/web/assets/pdf.worker.min-D7i8o3wR.js +1 -0
  362. package/dist/web/index.html +2 -2
  363. package/package.json +2 -2
  364. package/dist/tutorials/Library-Overview.md +0 -76
  365. package/dist/tutorials/Play-Images.md +0 -165
  366. package/dist/tutorials/Play-Narration.md +0 -167
  367. package/dist/tutorials/Play-Outputs.md +0 -109
  368. package/dist/tutorials/Play-Overview.md +0 -227
  369. package/dist/tutorials/Play-Title-and-Article.md +0 -136
  370. package/dist/tutorials/Play-Video-and-Style.md +0 -143
  371. package/dist/web/assets/index-CkAI_2E7.css +0 -1
  372. package/dist/web/assets/index-DcD0cdfo.js +0 -334
  373. package/dist/web/assets/pdf-TODRwF31.js +0 -54
  374. package/dist/web/assets/pdf.worker.min-Dswkl-cV.mjs +0 -29
  375. package/dist/web/assets/pdf.worker.min-zC6nfbxG.js +0 -1
@@ -1,14 +1,61 @@
1
1
  # Narration Aliases and Glossary
2
2
 
3
- Two tools control how the narrator says words without changing what is written. **Narration aliases** swap a written form for a spoken one, such as `Dr.` said as "Doctor", with any generated voice. The **Pronunciation Glossary** gives exact IPA pronunciations for names, such as `Arda: /ˈɑɹdə/`, with Inworld's TTS-2 voices. In both cases the article, the transcript and the captions keep the written words; only the audio changes.
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 **Library → Narration aliases**. Both switches are on Play under **Narration → Change → More audio settings**, and in **Edit project**. A project's glossary is shown on its **Article** section, in the **Pronunciation** tab.
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 **Library → Narration aliases**.
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 Preparation** reads, so its cues match what is said.
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 Play, open the **Narration** row with **Change**, then **More audio settings**.
49
- 2. Keep **Use narration aliases** on (the default for new drafts).
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 the Library's aliases when it starts. Editing the Library later never changes a started project until you open **Edit project** and press **Update from Library** beside the aliases switch. Only the parts of the narration where a changed alias appears are made again.
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 text-model call. The glossary itself is never narrated.
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 providers or models the switch is greyed out and says "Unavailable for this provider or model. Your saved preference is retained."
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 Play, open **Narration → Change → More audio settings**.
90
- 2. Keep **Use Pronunciation Glossary** on (the default).
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 project → Article**, then save. See [Editing a project](Editing-a-Project).
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
- ## Aliases or glossary?
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 provider | Alias |
114
- | A made-up or foreign name said exactly right, on Inworld TTS-2 | Glossary |
115
- | Pronunciations that come with each article automatically | Glossary |
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](Play-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
- - [Providers and keys](Providers-and-Keys)
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 review, your checkpoint, or a prepared run's day. See [Step failed](#step-failed). |
15
- | A run **stops to wait for you** | "Waiting for you: *title*": a review checkpoint is holding the next step, or the work left is waiting for **Continue the run** |
16
- | An agent's review **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 automatic review **needs a decision** | "Review needs a decision: <title>", when an automatic review 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. |
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 review](Agents-MCP#the-external-agent-reviewer), or a prepared run 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.
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 review ends with **· by agent**.
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 review, your checkpoint, or a prepared run's day). 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.
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, in any section, even in the background.
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 **Browser notifications** on. The browser asks for permission now (never when the page loads). Allow it.
42
- 3. Press **Send test notification** to check. You should see "Test notification sent to this browser."
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 **Browser notifications** on again.
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
- ## Run sounds
66
+ ## Sounds when a run starts and ends
63
67
 
64
- **Settings → Notifications → Run sounds** (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. **Play start** and **Play end** let you hear them.
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 **Browser notifications** on too, a run's start also shows "Started: *title*".
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, a review 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:
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 [Reviews and checkpoints](Reviews-and-Checkpoints) so a run that waits for your review tells you right away.
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
- - [Reviews and checkpoints](Reviews-and-Checkpoints)
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 text model 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.
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:** Play → **Channel** row → **Language**. On a finished project: Edit project → **Providers** → **Language**. For a channel's default: Channels → the channel → **Brand** → **Language of new projects**.
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 Play, open the **Channel** row.
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 **Brand** tab.
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 project**.
27
- 2. Open **Providers** and pick the new **Language**.
28
- 3. Save. Changing the language re-writes the project's text and re-times its captions; the rebuild review shows what will be remade and what it costs.
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** blank and Slopify asks ElevenLabs, Cartesia or Inworld which languages the voice speaks, or type codes yourself, such as `es, de`.
65
- 3. Press **Edit** in the Languages column to change them later.
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 Play, 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, Play 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).
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 (Play → **Video and style**, or Edit project → **Subtitles**), choose it, then press **Try again**. Noto Sans JP, KR or SC from fonts.google.com work.
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 render with exactly the font you chose.
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 providers list languages incorrectly; use Show all voices if the voice you want is missing.
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
- - [Play-Narration](Play-Narration)
104
- - [Play-Video-and-Style](Play-Video-and-Style)
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 theme you pick, needs no provider and costs nothing.
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:** Play → **Outputs** row → **Document**. On a finished project: the **Document** section of the project page, and Edit project → **Inputs** → **Stages** → **Document theme**.
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 Play, open the **Outputs** row.
10
- 2. In the **Document** rail, switch the source from **Off** to **Generate**.
11
- 3. Pick a **Theme**: the built-in **Plain**, or one of your own themes from Library → PDF themes.
12
- 4. Start the run.
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 project → Article.
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
- | **Document** source | **Generate** lays out a PDF of the article and title on this computer, in the theme you pick. It needs no provider and costs nothing. | Off |
21
- | **Theme** | How the PDF looks: the built-in **Plain** theme, or one of yours from **Library → PDF themes**. **Edit themes** opens the list. | Plain, or the channel's document theme |
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 theme of yours is copied into the project when you pick it. Editing the theme 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 **Document theme** for its videos whose template picks none; see [Channels](Channels).
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 theme's brand name and tagline (if the theme 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 theme sets (two levels in Plain), with page numbers. |
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 theme's own lines, the document's details (written on, total words, total pages), a link and a closing line. Off in Plain. |
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 theme's cover setting is on (it is in Plain).
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 theme'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 remake it with the cover. If the thumbnail file can't be read, the Document stage stops and asks you to regenerate or upload the thumbnail again, then use **Try again** on Document.
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 Plain theme
65
+ ## The ready looks
66
66
 
67
- Plain is the one built-in theme: an unbranded A4 page on a warm off-white background, headings in dark blue, the Cinzel typeface for body and headings, a three-line drop cap after headings, a table of contents and a sources page, no closing page.
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
- To change fonts, colours, paper size (A4 or Letter), page parts and the closing page, make your own theme. See [Document-Themes](Document-Themes).
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 **Document** section shows the theme's name (for example **Plain theme**) and, once the PDF is made:
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 rendering finishes." The file lives in the project's folder; see [Where-Your-Files-Live](Where-Your-Files-Live).
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 theme of a finished project
89
+ ## Change the look of a finished project
81
90
 
82
- 1. Open the project and press **Edit project**.
83
- 2. Open **Inputs**. Under **Stages**, set the Document source to Generate if it was Off.
84
- 3. Pick a **Document theme**.
85
- 4. Save. The rebuild review lists the PDF to be made again; it costs nothing.
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 Library → PDF themes' live preview to try a theme on a sample article before you pick it for a project.
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
- - [Play-Outputs](Play-Outputs)
105
+ - [Create: Extras](Create-Extras)
97
106
  - [Channels](Channels)
98
107
  - [Project-Page](Project-Page)
99
108
  - [Editing-a-Project](Editing-a-Project)
100
- - [Play-Title-and-Article](Play-Title-and-Article)
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 → **Prepare upload** → **Where** (shown once the project posts to at least one site). A template's sites are set in **Library → Templates → Open studio → Upload pack**, or on Play under **Outputs**. Each channel's **Brand** tab holds its account names and X subscription.
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 in **Template Studio** and go to **Upload pack**.
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 under **Fine-tune**.
12
- 4. Press **Save**. A site whose words come from a post prompt is a paid step, so Save shows its price like any other (the **Posts** line).
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: Prepare upload shows YouTube alone.
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 Prepare upload
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 a Library prompt of kind Post (or the built-in one) | One text-model call per site; it shows in the estimate as **Posts** |
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 the template's Upload pack (or Play), where Save shows its cost. Prepare upload can switch a site between the free sources.
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 designs from **Library → Designs** kept in the project (its **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.
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 → **Brand** → **Posting**:
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 **Library → Prompts**, kind **Post** (**Use Built-in Starter** fills in Slopify's own wording). 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 Template Studio's Upload pack by choosing **Written by a post prompt** as its text.
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
- - [Template studio](Template-Studio)
119
+ - [Edit template](Template-Studio)
120
120
  - [Channels](Channels)
121
121
  - [Prompts](Prompts)