@gentbajko/slopify 3.0.0 → 3.0.2

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 (198) hide show
  1. package/README.md +6 -4
  2. package/dist/adapter-registry.js +28 -0
  3. package/dist/adapters/alignment/text.js +3 -1
  4. package/dist/adapters/key-probes.js +57 -8
  5. package/dist/adapters/tts/gemini.js +206 -0
  6. package/dist/adapters/tts/pcm-mp3.js +62 -0
  7. package/dist/adapters/tts/system.js +147 -0
  8. package/dist/assets/models.yaml +38 -0
  9. package/dist/assets/style-preview/narration.mp3 +0 -0
  10. package/dist/assets/style-preview/tall-1.jpg +0 -0
  11. package/dist/assets/style-preview/tall-2.jpg +0 -0
  12. package/dist/assets/style-preview/tall-3.jpg +0 -0
  13. package/dist/assets/style-preview/wide-1.jpg +0 -0
  14. package/dist/assets/style-preview/wide-2.jpg +0 -0
  15. package/dist/assets/style-preview/wide-3.jpg +0 -0
  16. package/dist/catalog/registry.js +4 -1
  17. package/dist/catalog/validate.js +2 -2
  18. package/dist/edge/autostart/docker-record.js +2 -2
  19. package/dist/edge/autostart/docker.js +68 -0
  20. package/dist/edge/autostart/prompt.js +7 -1
  21. package/dist/edge/autostart/service.js +18 -9
  22. package/dist/edge/cli-args.js +71 -0
  23. package/dist/edge/cli.js +11 -16
  24. package/dist/edge/docker-install/run.js +7 -1
  25. package/dist/edge/events/hub.js +3 -1
  26. package/dist/edge/http/actions.js +6 -1
  27. package/dist/edge/http/app.js +2 -0
  28. package/dist/edge/http/byte-range.js +42 -0
  29. package/dist/edge/http/diagnostics.js +1 -0
  30. package/dist/edge/http/draft-files.js +2 -4
  31. package/dist/edge/http/files.js +10 -6
  32. package/dist/edge/http/onboarding.js +64 -4
  33. package/dist/edge/http/project-templates.js +19 -2
  34. package/dist/edge/http/projects.js +6 -1
  35. package/dist/edge/http/providers.js +39 -9
  36. package/dist/edge/http/reviews.js +18 -8
  37. package/dist/edge/http/revision-files.js +2 -4
  38. package/dist/edge/http/schedules.js +9 -5
  39. package/dist/edge/http/storage.js +16 -2
  40. package/dist/edge/http/studio.js +111 -31
  41. package/dist/edge/http/style-preview.js +3 -42
  42. package/dist/edge/http/tutorials.js +59 -0
  43. package/dist/edge/http/youtube-edits.js +11 -2
  44. package/dist/extension/slopify-studio-chrome.zip +0 -0
  45. package/dist/extension/slopify-studio-firefox.zip +0 -0
  46. package/dist/host-cli/gemini-login.js +83 -0
  47. package/dist/host-cli/status.js +4 -2
  48. package/dist/kernel/db/migrations/0041-cast-hosts.sql +3 -0
  49. package/dist/kernel/ports/model.js +5 -3
  50. package/dist/kernel/ports/system-speech.js +203 -0
  51. package/dist/kernel/runner/graph.js +17 -1
  52. package/dist/kernel/runner/index.js +4 -4
  53. package/dist/kernel/runner/providers.js +1 -1
  54. package/dist/main.js +5 -0
  55. package/dist/model-catalog.js +2 -0
  56. package/dist/patch-notes/3.0.1.md +105 -0
  57. package/dist/patch-notes/3.0.2.md +20 -0
  58. package/dist/patch-notes/index.json +12 -0
  59. package/dist/slices/admission/rules.js +3 -3
  60. package/dist/slices/admission/start.js +1 -1
  61. package/dist/slices/channels/cast-match.js +1 -1
  62. package/dist/slices/channels/repo.js +3 -0
  63. package/dist/slices/channels/schema.js +23 -0
  64. package/dist/slices/channels/service.js +6 -6
  65. package/dist/slices/control/index.js +3 -1
  66. package/dist/slices/control/providers.js +4 -1
  67. package/dist/slices/episodes/related.js +2 -2
  68. package/dist/slices/estimate/requests.js +9 -1
  69. package/dist/slices/eta/history.js +56 -0
  70. package/dist/slices/eta/model.js +63 -0
  71. package/dist/slices/eta/view.js +25 -0
  72. package/dist/slices/fixes/rules.js +1 -1
  73. package/dist/slices/fonts/coverage.js +1 -1
  74. package/dist/slices/loudness/model.js +1 -1
  75. package/dist/slices/model-upkeep/usage.js +4 -2
  76. package/dist/slices/narration/pauses-model.js +1 -1
  77. package/dist/slices/narration/pronunciation.js +2 -2
  78. package/dist/slices/notifications/notifier.js +28 -2
  79. package/dist/slices/notifications/rules.js +26 -2
  80. package/dist/slices/onboarding/first-run.js +40 -14
  81. package/dist/slices/onboarding/full-video.js +81 -0
  82. package/dist/slices/onboarding/model.js +21 -0
  83. package/dist/slices/onboarding/quick-short.js +25 -10
  84. package/dist/slices/play-drafts/convert.js +3 -3
  85. package/dist/slices/play-drafts/readiness.js +1 -1
  86. package/dist/slices/project-templates/from-project.js +10 -3
  87. package/dist/slices/project-templates/next-chapter.js +94 -0
  88. package/dist/slices/project-templates/one-off.js +1 -1
  89. package/dist/slices/project-templates/schema.js +7 -1
  90. package/dist/slices/rebuild/recipe-exports.js +5 -0
  91. package/dist/slices/rebuild/recipe-save.js +1 -1
  92. package/dist/slices/rebuild/recipe-voices.js +1 -1
  93. package/dist/slices/rebuild/review-redo.js +15 -0
  94. package/dist/slices/rebuild/runtime-export-bed.js +1 -1
  95. package/dist/slices/rebuild/runtime-review.js +35 -5
  96. package/dist/slices/rebuild/runtime-store.js +23 -1
  97. package/dist/slices/rebuild/runtime-voices.js +2 -2
  98. package/dist/slices/rebuild/service-readiness.js +3 -3
  99. package/dist/slices/reviews/repo.js +16 -4
  100. package/dist/slices/run-cost/panel.js +30 -8
  101. package/dist/slices/run-cost/pricing.js +4 -1
  102. package/dist/slices/schedules/agenda.js +66 -2
  103. package/dist/slices/schedules/repo.js +1 -1
  104. package/dist/slices/schedules/scheduler.js +1 -1
  105. package/dist/slices/schedules/schema.js +43 -2
  106. package/dist/slices/schedules/similar.js +41 -3
  107. package/dist/slices/schedules/topic-list.js +2 -2
  108. package/dist/slices/schedules/topics.js +118 -17
  109. package/dist/slices/settings/first-run.js +5 -1
  110. package/dist/slices/settings/health.js +64 -7
  111. package/dist/slices/settings/key-guides.js +17 -7
  112. package/dist/slices/settings/key-test.js +12 -4
  113. package/dist/slices/settings/keys.js +10 -5
  114. package/dist/slices/settings/model-reach.js +52 -0
  115. package/dist/slices/settings/model.js +49 -0
  116. package/dist/slices/settings/models.js +5 -1
  117. package/dist/slices/settings/readiness.js +14 -2
  118. package/dist/slices/settings/tutorial-schema.js +5 -0
  119. package/dist/slices/shorts/render.js +18 -17
  120. package/dist/slices/storage/documents.js +11 -3
  121. package/dist/slices/storage/downloads.js +33 -1
  122. package/dist/slices/storage/portable.js +4 -2
  123. package/dist/slices/studio/model.js +2 -0
  124. package/dist/slices/studio/pack.js +6 -4
  125. package/dist/slices/studio/queue.js +69 -0
  126. package/dist/slices/studio/settings.js +42 -5
  127. package/dist/slices/style-preview/narration.js +33 -0
  128. package/dist/slices/style-preview/render.js +43 -56
  129. package/dist/slices/style-preview/schema.js +17 -3
  130. package/dist/slices/style-preview/service.js +3 -4
  131. package/dist/slices/style-preview/settings.js +75 -25
  132. package/dist/slices/tutorials/anchors.js +57 -0
  133. package/dist/slices/tutorials/library.js +185 -0
  134. package/dist/slices/voices/audio-files.js +7 -2
  135. package/dist/slices/voices/cast.js +26 -8
  136. package/dist/slices/voices/grouping.js +10 -0
  137. package/dist/slices/voices/model.js +49 -10
  138. package/dist/slices/voices/script.js +1 -1
  139. package/dist/slices/youtube/edits-repo.js +19 -4
  140. package/dist/slices/youtube/placeholders.js +2 -2
  141. package/dist/tutorials/AI-CLIs.md +146 -0
  142. package/dist/tutorials/Backups.md +121 -0
  143. package/dist/tutorials/Calendar.md +103 -0
  144. package/dist/tutorials/Cast-Library.md +112 -0
  145. package/dist/tutorials/Channels.md +148 -0
  146. package/dist/tutorials/Costs-and-Run-Cost.md +136 -0
  147. package/dist/tutorials/Docker.md +171 -0
  148. package/dist/tutorials/Document-Themes.md +207 -0
  149. package/dist/tutorials/Editing-a-Project.md +204 -0
  150. package/dist/tutorials/FAQ.md +134 -0
  151. package/dist/tutorials/First-Launch-and-Welcome.md +153 -0
  152. package/dist/tutorials/Home-and-Projects.md +174 -0
  153. package/dist/tutorials/Home.md +119 -0
  154. package/dist/tutorials/Install.md +154 -0
  155. package/dist/tutorials/Intros-and-Outros.md +86 -0
  156. package/dist/tutorials/Keyboard-Shortcuts-and-Command-Palette.md +215 -0
  157. package/dist/tutorials/Library-Overview.md +75 -0
  158. package/dist/tutorials/Models.md +133 -0
  159. package/dist/tutorials/Multiple-Voices.md +161 -0
  160. package/dist/tutorials/Narration-Aliases-and-Glossary.md +129 -0
  161. package/dist/tutorials/Notifications.md +86 -0
  162. package/dist/tutorials/Other-Languages.md +110 -0
  163. package/dist/tutorials/PDF-Documents.md +100 -0
  164. package/dist/tutorials/Play-Images.md +135 -0
  165. package/dist/tutorials/Play-Narration.md +167 -0
  166. package/dist/tutorials/Play-Outputs.md +109 -0
  167. package/dist/tutorials/Play-Overview.md +216 -0
  168. package/dist/tutorials/Play-Title-and-Article.md +135 -0
  169. package/dist/tutorials/Play-Video-and-Style.md +143 -0
  170. package/dist/tutorials/Project-Page.md +228 -0
  171. package/dist/tutorials/Prompts.md +136 -0
  172. package/dist/tutorials/Providers-and-Keys.md +290 -0
  173. package/dist/tutorials/Publishing-to-YouTube.md +135 -0
  174. package/dist/tutorials/Recovery-and-Retries.md +141 -0
  175. package/dist/tutorials/Reviews-and-Checkpoints.md +143 -0
  176. package/dist/tutorials/Schedules.md +154 -0
  177. package/dist/tutorials/Settings-Reference.md +258 -0
  178. package/dist/tutorials/Shorts.md +116 -0
  179. package/dist/tutorials/Start-at-Login.md +126 -0
  180. package/dist/tutorials/Studio-Extension.md +146 -0
  181. package/dist/tutorials/Templates.md +146 -0
  182. package/dist/tutorials/Trash.md +87 -0
  183. package/dist/tutorials/Troubleshooting.md +149 -0
  184. package/dist/tutorials/Uninstalling-and-Moving.md +113 -0
  185. package/dist/tutorials/Updating-and-Patch-Notes.md +120 -0
  186. package/dist/tutorials/Video-Editing.md +135 -0
  187. package/dist/tutorials/Where-Your-Files-Live.md +149 -0
  188. package/dist/tutorials/YouTube-Description.md +132 -0
  189. package/dist/tutorials/Your-First-Short.md +125 -0
  190. package/dist/tutorials/_Footer.md +1 -0
  191. package/dist/tutorials/_Sidebar.md +69 -0
  192. package/dist/web/assets/index-C4McGNke.js +307 -0
  193. package/dist/web/assets/index-DBLSfqA-.css +1 -0
  194. package/dist/web/assets/{pdf-BG8n_uc5.js → pdf-COowcLcz.js} +1 -1
  195. package/dist/web/index.html +2 -2
  196. package/package.json +2 -2
  197. package/dist/web/assets/index-CUA2sUxU.css +0 -1
  198. package/dist/web/assets/index-CX590kE-.js +0 -303
@@ -0,0 +1,167 @@
1
+ # Play Narration
2
+
3
+ The narration is the article read aloud by a text-to-speech (TTS) voice. On Play you pick the service, model and voice, and fine-tune how the text is prepared, split, paced and levelled. You get a narration track that the captions, cuts, chapters and shorts are all timed from.
4
+
5
+ **Where to find it:** Play → **Narration** row → **Change**. The pauses, the volume levelling and the silences sit in Play → **Video and style**, and **Show tables and figures on screen** sits in Play → **Outputs**; they are described here because they shape the narration.
6
+
7
+ ## Choose where the narration comes from
8
+
9
+ The Narration row starts with a **Source** switch:
10
+
11
+ | Source | What happens | Cost |
12
+ | --- | --- | --- |
13
+ | **Generate** (default) | A TTS voice reads the article aloud. | Charged by the provider per character |
14
+ | **Provide** | Uses an audio file you upload (**Narration file**), as it is. | None |
15
+ | **Off** | Makes a silent video with no captions, YouTube description or shorts. The row reads "Off, a silent video". | None |
16
+
17
+ With **Provide**, the file is used as is: "Uploaded narration is used as-is; include any intro and outro in that file." It is never levelled piece by piece; only the final master reaches it when **Level the volume** is on.
18
+
19
+ ## Pick a voice
20
+
21
+ 1. Open the **Narration** row and leave **Source** on **Generate**.
22
+ 2. Pick the **TTS** provider. A greyed provider says why it cannot be used; add its key under Settings.
23
+ 3. Pick the **TTS model**.
24
+ 4. Pick a **Voice**. If the list says "No voices. Add one in Settings.", add a voice first (see [Add a voice](#add-a-voice-under-settings--voices)).
25
+
26
+ | Option | What it does | Default |
27
+ | --- | --- | --- |
28
+ | **TTS** | The text-to-speech service, charged per character of text: ElevenLabs, OpenAI, Cartesia, Inworld, Google Gemini, or **System voice**, your computer's own speech, which is free (greyed as **Speech Program Missing** when none is found; see [the system voice](Providers-and-Keys#the-system-voice)). Changing it clears the model and voice. | Your Settings default |
29
+ | **TTS model** | The provider's speech model. Models differ in quality, languages, speed and price per character. Narration Preparation needs Inworld TTS-2. The refresh button asks the provider for its current list; **Custom ID** lets you type one. | Your Settings default |
30
+ | **Voice** | Who reads the narration: the voices you added under Settings → Voices for this provider, filtered to the project's language. With several speakers, this voice reads the intro and outro. | None |
31
+ | **Show all voices** | The voice list hides voices listed for other languages than the project's. Tick this to pick one anyway, for example a multilingual voice whose languages are listed wrong. The label says how many are hidden. A voice with unknown languages is always shown. | Off |
32
+
33
+ ### Several speakers
34
+
35
+ Under the voice is a **Speakers** disclosure. It reads "Narration, one voice" by default. Open it to pick an audiobook, podcast, radio drama or interview format with several speakers, each with their own voice. See [Multiple Voices](Multiple-Voices) for every speaker setting, and [Other Languages](Other-Languages) for narrating in another language.
36
+
37
+ ## Audio Advanced
38
+
39
+ **Audio Advanced** is a disclosure under the voice. Its line says what is not at the default, for example `words · intro Welcome · glossary on`.
40
+
41
+ ### Chunking
42
+
43
+ How the narration is split into TTS requests. Split it when a provider refuses long text. It changes the number of requests, not the characters charged.
44
+
45
+ | Option | What it does | Default |
46
+ | --- | --- | --- |
47
+ | **Chunking** | **Whole** sends the narration in one request. **Paragraph** sends one per paragraph. **Every N words** or **Every N characters** ends each request at a sentence end. | **Whole** |
48
+ | **Words** / **Characters** (chunk size) | How long each request may be. Each request ends at the last whole sentence that fits, so a single longer sentence stays whole. Characters count spaces. | 500 words, or 3000 characters |
49
+
50
+ Up to 10,000 words or 1,000,000 characters per chunk.
51
+
52
+ ### Intro and outro
53
+
54
+ **Intro** and **Outro** pick Library entries read before and after the article. See [Play Title and Article](Play-Title-and-Article#intro-and-outro) and [Intros and Outros](Intros-and-Outros).
55
+
56
+ ### Narration Preparation
57
+
58
+ Has the text model add delivery directions and sounds, such as a sigh or a laugh, following the Library narration prompt you pick. The article and captions stay unchanged.
59
+
60
+ | Option | What it does | Default |
61
+ | --- | --- | --- |
62
+ | **Narration Preparation** | Pick a narration prompt from the Library, or **Off**. One text-model call per narration chunk and per intro or outro entry. | Off |
63
+
64
+ It needs the Inworld TTS-2 model. With another model, the field says "Choose Inworld TTS-2 or turn preparation Off." With several speakers it works per speaker: each turn of a speaker on Inworld TTS-2 is prepared on its own, with the speaker's name and role, so every voice gets its own cues. At least one speaker must use TTS-2; turns of speakers on other voices are spoken as written. See [Multiple Voices](Multiple-Voices). When preparation is on, the row offers **Choose text generation under Article** to jump to the text model.
65
+
66
+ ### Pronunciation Glossary
67
+
68
+ | Option | What it does | Default |
69
+ | --- | --- | --- |
70
+ | **Use Pronunciation Glossary** | Reads names with the IPA in the article's Pronunciation Glossary, such as `Arda: /ˈɑɹdə/`, with no extra text-model call. Works with Inworld TTS-2 and TTS-2 Flash. The written text stays unchanged. | On |
71
+ | **Also use pronunciations from my other projects** | 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. | On |
72
+
73
+ With another provider or model the switch is greyed and says "Unavailable for this provider or model. Your saved preference is retained."
74
+
75
+ To get a glossary, ask for one in your article prompt: a section in slash-delimited standard-English IPA, one `Term: /IPA/` per line, with an English approximation for foreign names. A line with sounds English lacks is read as plain text. The glossary is never narrated itself. See [Narration Aliases and Glossary](Narration-Aliases-and-Glossary).
76
+
77
+ ### Narration aliases
78
+
79
+ | Option | What it does | Default |
80
+ | --- | --- | --- |
81
+ | **Use narration aliases** | Says the words listed in Library → Aliases the way they are written there, such as `Dr.` as `Doctor`, with any generated voice. They are copied when the project starts. The article and captions keep the written words. | On |
82
+
83
+ Manage the list in [Narration Aliases and Glossary](Narration-Aliases-and-Glossary).
84
+
85
+ ### Tables, figures and code
86
+
87
+ An article written to be read can contain tables, pictures, equations and code. Read aloud cell by cell or symbol by symbol, they are noise.
88
+
89
+ | Option | What it does | Default |
90
+ | --- | --- | --- |
91
+ | **Describe tables and figures in the narration** | The text model writes a short spoken passage for each table, picture, equation and code block (a table's pattern, what a figure or equation means, what code does), and the narration says it in its place. One extra text-model call per block, in the estimate and kept for reuse. The article and PDF keep the real table; captions show what is said. Needs a text model. | On |
92
+ | **Leave code out** | Shown under the switch above. Drops code blocks from the narration instead of summarising each in a sentence or two. Tables, figures and equations are still described. | Off |
93
+ | **Show tables and figures on screen** (in the **Outputs** row) | Each block the narration describes is also shown in the video while it is described: the article's own picture for a figure, a card drawn in your brand kit's title font and colour for the rest. The images take turns around them, and Shorts that include one show it upright. Drawn on this computer at no cost. Offered while the narration describes tables and figures. | On |
94
+
95
+ Even with the switch off, some things are handled for you: links are read without their address, and footnote markers, the Sources Consulted section and the Pronunciation Glossary are never narrated.
96
+
97
+ ## Pauses between sentences and paragraphs
98
+
99
+ Some voices run one sentence into the next with barely a breath. These settings add quiet where the voice's own pause is shorter. They never shorten a pause or cut a word, and the captions follow. They are in the **Video and style** row, beside **Level the volume**, and only show while the narration is generated.
100
+
101
+ | Option | What it does | Default / range |
102
+ | --- | --- | --- |
103
+ | **Pause between sentences (seconds)** | The least quiet after each sentence. About 0.25 s is brisk, 0.35 to 0.45 natural or documentary, 0.5 to 0.8 an audiobook's relaxed pace, 0.8 and up sleep content. 0 keeps the voice's own. | 0.4; 0 to 2 in steps of 0.05 |
104
+ | **Pause between paragraphs (seconds)** | The least quiet at the end of a paragraph, when you want more than between sentences. Try 0.8 to 1.2 for a slower read. 0 gives paragraphs the sentence pause. | 0; 0 to 2 in steps of 0.05 |
105
+
106
+ The pauses are added on this computer before the word timing, so the captions, cuts, shorts and YouTube chapters stay in step. With several speakers, the gap between turns is **Gap between turns** under Speakers instead.
107
+
108
+ ## Level the volume
109
+
110
+ TTS comes back at a different loudness for every voice and even every request, so a joined narration can jump between quiet and loud. **Level the volume** brings every narration piece (each chunk, each intro and outro, each speaker's turn) to one loudness before they are joined, then sets the finished video, shorts and audio files to a target loudness. It runs on this computer with no API calls. It is in the **Video and style** row and shows whenever there is narration.
111
+
112
+ | Option | What it does | Default / range |
113
+ | --- | --- | --- |
114
+ | **Level the volume** | Turns levelling on or off for this run. A draft that never changed it follows Settings → General. | On |
115
+ | **Video volume** | How loud the finished video and shorts are. 0 dB is −14 LUFS, what YouTube and Spotify play everything at. Peaks always stay under −1.5 dBTP. | 0 dB; −10 to +4 dB in steps of 0.5 |
116
+ | **Audio files volume** | How loud the audio-only WAV and an audiobook's MP3 and M4B are. 0 dB is −18 LUFS, the level audiobook shops ask for. Peaks always stay under −3 dBTP. | 0 dB; −10 to +4 dB in steps of 0.5 |
117
+
118
+ Type each volume in **dB** or as a **%** of the recommended level; the other box follows. −6 dB is about 50% and +4 dB about 158%. The help line under each field says the LUFS it stands for. LUFS is how loud a file sounds on average, measured the way ears hear it.
119
+
120
+ ## Silence at the edges and between segments
121
+
122
+ Both are in the **Video and style** row and only show while there is narration.
123
+
124
+ | Option | What it does | Default / range |
125
+ | --- | --- | --- |
126
+ | **Silence at start and end (seconds)** | Quiet time before the narration starts and after it ends. | 2; 0 to 30 |
127
+ | **Silence between segments (seconds)** | Quiet between the intro and the narration, and between the narration and the outro. Only matters when an intro or outro is set. Leave it empty to use the gap set in Settings. | Settings value (3 unless changed); 0 to 30 |
128
+
129
+ ## Add a voice under Settings → Voices
130
+
131
+ The **Voice** list on Play only offers voices you have added.
132
+
133
+ 1. Open Settings → **Voices**.
134
+ 2. Fill in **Voice name**, **Provider**, **Voice ID** and, optionally, **Languages**.
135
+ 3. Press **Add voice**. The voice joins the table above the form.
136
+ 4. Optional: tick **Real person** on the voice's row in the table if it imitates a real person.
137
+
138
+ | Field | What it does |
139
+ | --- | --- |
140
+ | **Voice name** | The name you pick this voice by on Play and in Edit project. Only you see it. |
141
+ | **Provider** | The TTS service the voice ID belongs to. Only providers set up under Settings are listed. |
142
+ | **Voice ID** | The provider's own id for the voice, copied from its voice library. It is not checked now; a wrong id fails when a run's narration uses it. |
143
+ | **Languages** | The languages the voice speaks, as codes such as `es`, `de`. Play lists the voice only for projects in these languages. Blank asks the provider when it can say; a voice with unknown languages is offered for every language. |
144
+ | **Real person** | Turn on for a voice cloned from, or made to sound like, a real person. Prepare upload then answers Yes to YouTube's AI use question for videos it narrates. An AI voice that imitates no one stays off. |
145
+
146
+ See [Settings Reference](Settings-Reference) and [Publishing to YouTube](Publishing-to-YouTube).
147
+
148
+ ## What the row summary says
149
+
150
+ Folded, the Narration row shows the provider and voice (or the speakers format and count), and any preparation prompt, intro and outro, for example `Inworld · Ada · intro Welcome`. With Provide it shows your file's name.
151
+
152
+ ## Tips
153
+
154
+ - If a provider refuses long requests, switch **Chunking** to **Paragraph** or **Every 500 words**. The characters charged stay the same.
155
+ - Listen to the narration on the project page before publishing, in Slopify's own player (see [Project Page](Project-Page#the-players)). Fix a single chunk there instead of re-running everything. See [Editing a Project](Editing-a-Project).
156
+ - An automatic review can check the narration for missing or garbled passages. See [Reviews and Checkpoints](Reviews-and-Checkpoints).
157
+
158
+ ## Related pages
159
+
160
+ - [Play Overview](Play-Overview)
161
+ - [Multiple Voices](Multiple-Voices)
162
+ - [Other Languages](Other-Languages)
163
+ - [Narration Aliases and Glossary](Narration-Aliases-and-Glossary)
164
+ - [Intros and Outros](Intros-and-Outros)
165
+ - [Prompts](Prompts)
166
+ - [Providers and Keys](Providers-and-Keys)
167
+ - [Play Video and Style](Play-Video-and-Style)
@@ -0,0 +1,109 @@
1
+ # Play Outputs
2
+
3
+ Besides the long video, a run can make a thumbnail (or three), a YouTube description with chapters, a set of vertical shorts and a PDF of the article. Audio-only runs give you a WAV, and multi-voice runs can add an MP3 and an M4B audiobook. This page lists every output, what it costs and where to set it. The formats with more to them have their own pages.
4
+
5
+ **Where to find it:** Play → **Outputs** row → **Change**. The row's summary lists what the run will make, for example `1 thumbnail · 3 shorts · YouTube description · PDF (Plain)`, or **Only the video**.
6
+
7
+ ## Every output at a glance
8
+
9
+ | Output | Where to set it | Default | Cost |
10
+ | --- | --- | --- | --- |
11
+ | Long video (MP4) | **Video and style** → Source **Generate** | On | None, rendered on this computer |
12
+ | Thumbnail | **Outputs** → Thumbnail | Off | One image call per thumbnail (plus one text call with **Prompt by LLM**) |
13
+ | YouTube description | **Outputs** → **YouTube description** | Off | One text-model call |
14
+ | Shorts | **Outputs** → **Shorts** | Off | One text call to pick them, plus new images for each |
15
+ | Tables and figures on screen | **Outputs** → **Show tables and figures on screen** | On (when described) | None |
16
+ | PDF document | **Outputs** → Document | Off | None, laid out on this computer |
17
+ | Subtitle files (.srt, .vtt) | **Video and style** → **Subtitles** | Off | None |
18
+ | Narration WAV | **Video and style** → Source **Off**, with narration on | | None |
19
+ | MP3 and M4B audiobook | **Narration** → **Speakers** | Off | None |
20
+
21
+ ## Thumbnail
22
+
23
+ The Thumbnail part has its own **Source** switch:
24
+
25
+ | Source | What happens | Cost |
26
+ | --- | --- | --- |
27
+ | **Off** (default) | No thumbnail. | None |
28
+ | **From prompt** | Draws the thumbnail straight from the thumbnail prompt. | One image call |
29
+ | **Prompt by LLM** | The text model first writes the image prompt from yours, the title and the article, then the image model draws it. | One text call, then one image call |
30
+ | **Provide** | Uses your own PNG, JPEG or WebP (**Thumbnail image**). | None |
31
+
32
+ | Option | What it does | Default |
33
+ | --- | --- | --- |
34
+ | **Thumbnail prompt** | The Library thumbnail prompt, keywords filled in. **From prompt** sends it to the image model as it is; **Prompt by LLM** gives it to the text model with the title and article to write the image prompt. | None |
35
+ | **Thumbnails** (**1** or **3**) | **3** makes two more thumbnails from the same prompt with different compositions, for YouTube's Test & compare. Each costs one more image, so 3 thumbnails are 3 image calls. | 1 |
36
+
37
+ ### Make three thumbnails for Test & compare
38
+
39
+ 1. Set the Thumbnail **Source** to **From prompt** or **Prompt by LLM**.
40
+ 2. Pick a **Thumbnail prompt**. Write one in [Prompts](Prompts) if you have none.
41
+ 3. Set **Thumbnails** to **3**.
42
+
43
+ You can remake each thumbnail on its own on the project page. The thumbnail uses the Images row's provider and model; if the video's images are not generated, the Thumbnail part shows its own **Provider**, **Model** and **Effort**. With an establishing image and **Draw the thumbnail from it too** ticked, the thumbnail is drawn with it as a reference, and it also takes cast members the title mentions. See [Play Images](Play-Images#establishing-image).
44
+
45
+ ## YouTube description
46
+
47
+ After subtitle timing, the text model writes a description with chapters at the narration's real times, hashtags at the end, and a separate list of tags, ready to copy. It runs beside the render. It needs narration; without it the switch is disabled and says "Needs narration."
48
+
49
+ | Option | What it does | Default |
50
+ | --- | --- | --- |
51
+ | **YouTube description** | Turns the step on. One text-model call. | Off |
52
+ | **Description prompt** | The Library prompt the description is written from. **Built-in** asks for a short summary, 5 to 12 chapters, 3 to 5 hashtags and 15 to 25 tags. Write your own description prompt on Prompts to change the tone or add links. | Built-in |
53
+
54
+ See [YouTube Description](YouTube-Description) for the result and the copy buttons.
55
+
56
+ ## Shorts
57
+
58
+ After subtitle timing, the text model picks the best self-contained moments of the narration. Each becomes a vertical 1080×1920 clip with new images, big word-by-word captions and its own title, description and hashtags. It runs beside the render, and its images are charged like any other. It needs narration.
59
+
60
+ | Option | What it does | Default / range |
61
+ | --- | --- | --- |
62
+ | **Shorts** | Turns shorts on. | Off |
63
+ | **How many** | How many shorts to cut from this video. Each needs its own new images. | 3; 1 to 10 |
64
+ | **Length** | The shortest and longest a short may run, in seconds. | 60 to 120; 15 to 180 |
65
+ | **Shorts prompt** | The Library prompt the text model follows to pick the moments and write each short's title, description and hashtags. | Built-in |
66
+ | **Image style** | The Library image prompt the shorts' new vertical images are drawn from. | Built-in |
67
+ | **Title on screen** (under **More shorts options**) | Keeps the short's title at the top for the whole clip, large and bold in the caption font. | On |
68
+ | **Speed** | Plays each short faster than the narration, with the pitch kept. | 1.00×; 1.00× to 1.25× in steps of 0.05 |
69
+ | **Music volume** | How loud the background music plays under every short; it dips while the narrator speaks. Only used with a music file. | 15; 0 to 100% |
70
+ | **Full video link** | Each short's description ends with a line pointing to the full video. Without a link, the line says `[PASTE THE FULL VIDEO LINK HERE]`. | Empty |
71
+ | **Background music (optional)** | An audio file, looped if shorter than a short. | None |
72
+
73
+ See [Shorts](Shorts) for how moments are picked and how to remake a short.
74
+
75
+ ## Show tables and figures on screen
76
+
77
+ Shown while the narration describes tables and figures. Each described table, figure, equation and code block is also shown in the video while it is described. On by default. See [Play Narration](Play-Narration#tables-figures-and-code).
78
+
79
+ ## PDF document
80
+
81
+ The Document part lays out a PDF of the article and title on this computer, in the theme you pick. It needs no provider and costs nothing.
82
+
83
+ | Option | What it does | Default |
84
+ | --- | --- | --- |
85
+ | Document **Source** | **Off** or **Generate**. | Off |
86
+ | **Theme** | How the PDF looks: the built-in **Plain** theme, or one of yours from Library → Documents. A theme of yours is copied into the project, so editing it later leaves this project alone until you pick it again. **Edit themes** opens the list. | Plain, or the channel's brand kit theme |
87
+
88
+ See [PDF Documents](PDF-Documents) and [Document Themes](Document-Themes).
89
+
90
+ ## Audio files
91
+
92
+ - **Narration WAV.** Set the video **Source** to **Off** in **Video and style** while narration is on. The line beside the switch reads "Combined WAV export with narration and segment gaps". The WAV is mastered to the **Audio files volume** when **Level the volume** is on.
93
+ - **MP3 and M4B.** With several speakers, tick **Also make MP3 and M4B files with chapter markers** under **Narration** → **Speakers**. The M4B is an audiobook file with a chapter marker at each chapter. Both are made on this computer at no provider cost. See [Multiple Voices](Multiple-Voices).
94
+
95
+ ## Tips
96
+
97
+ - The YouTube description and shorts need subtitle timing but not burned-in captions; you can leave **Subtitles** Off.
98
+ - Automatic reviews can check the thumbnail at phone size and each short's images. See [Reviews and Checkpoints](Reviews-and-Checkpoints).
99
+ - A PDF is free, so switch it on whenever the article is worth reading on its own.
100
+
101
+ ## Related pages
102
+
103
+ - [Play Overview](Play-Overview)
104
+ - [Shorts](Shorts)
105
+ - [YouTube Description](YouTube-Description)
106
+ - [PDF Documents](PDF-Documents)
107
+ - [Document Themes](Document-Themes)
108
+ - [Multiple Voices](Multiple-Voices)
109
+ - [Publishing to YouTube](Publishing-to-YouTube)
@@ -0,0 +1,216 @@
1
+ # Play Overview
2
+
3
+ Play is the screen where you set up a new video and start it. You pick a template (or none), type what the video is about, check the setup rows, and press the Play key. You get a project that writes the article, records the narration, draws the images and renders the video, plus any extra outputs you switched on.
4
+
5
+ **Where to find it:** **New video** in the sidebar, **New video** on Home or Projects, `Ctrl+K` → **New video**, or press `C` anywhere. The page header reads **What's the video about?**
6
+
7
+ ## How Play is laid out
8
+
9
+ Play is one path from topic to queue:
10
+
11
+ 1. **Template** and the topic fields at the top.
12
+ 2. **More videos from the same setup**: extra topics that run with the same settings.
13
+ 3. **The setup rows**: one line each for Title and keywords, Article, Narration, Images, Video and style, Outputs, Reviews and Channel. Each line says what the run will do. **Change** opens the row's editor under it, and **Done** folds it again.
14
+ 4. **The right rail**: the style preview, the number of videos, the estimated cost, the Play key, and the buttons **Refresh review**, **Review the whole setup** and **Save as template**.
15
+
16
+ Nothing starts until you press the Play key. Every change is saved to the current draft as you make it.
17
+
18
+ ## Start a video
19
+
20
+ 1. Open Play.
21
+ 2. Optional: pick a **Template**. Picking one opens a fresh draft made from it, and the topic you already typed comes along.
22
+ 3. Type the **Title**, or the topic if the title is a pattern (see below).
23
+ 4. Look over the setup rows. A row that needs something shows **Needs setup** and says what is missing. Press **Change** to fix it.
24
+ 5. Check the estimate in the right rail.
25
+ 6. Press **Start run** (or **Queue N videos** if you added more topics).
26
+
27
+ Slopify opens the new project page as soon as the run is created. When the Play key cannot start, the reason is written right under it, with **Go to the field** beside it to jump to the field that needs fixing.
28
+
29
+ ## Template
30
+
31
+ | Option | What it does | Default |
32
+ | --- | --- | --- |
33
+ | **Template** | Starts this video from a saved setup: prompts, voice, images, style, outputs and reviews. Picking one opens a fresh draft made from it and carries the topic you typed. | **No template**, the default setup |
34
+
35
+ Under the picker you see the template's channel and version. If the template was deleted since you picked it, the picker says **Template no longer saved**. With no templates yet, it says to set up a video and press **Save as template**. See [Templates](Templates) for managing them.
36
+
37
+ ## Title, title pattern and topic
38
+
39
+ The **Title** is the video's name, shown on the project and in Projects. Up to 200 characters.
40
+
41
+ Write a keyword in double braces and the title becomes a pattern. For example, `History: {{Topic}}`:
42
+
43
+ - The top of Play then asks for **Topic** instead of the whole title, and shows the title it makes underneath (**Title: History: The Lost City**).
44
+ - The pattern itself moves to **Title and keywords → Title pattern**, where you can change it.
45
+ - Each keyword the title names is a topic you type once per video. Templates save it empty.
46
+ - A topic value is up to 200 characters, on a single line.
47
+
48
+ A title without braces is typed as is.
49
+
50
+ ### Already made on this channel
51
+
52
+ As you type, a quiet line under the topic fields says when the picked channel already has a video on it, using the same near-duplicate rule as [schedules](Schedules#how-generation-works):
53
+
54
+ - `This channel already has a video on this: "<title>" (in Projects). Start anyway if you want another take.`
55
+ - `This channel already uploaded "<title>" (Channel → Existing videos). Start anyway if you want another take.`
56
+
57
+ It never stops you; it is there so you don't make the same video twice by accident.
58
+
59
+ ## Keywords
60
+
61
+ A keyword is a value that a picked prompt or the title asks for with `{{name}}`. You type it once, and it fills every place that names it. The line under each keyword lists where it is used.
62
+
63
+ Keywords live in the **Title and keywords** row. Topic keywords (the ones the title names) are typed at the top of Play instead. If there are none, the row says: "No keywords. A prompt or the title that names {{a keyword}} adds one here."
64
+
65
+ | Option | What it does | Limit |
66
+ | --- | --- | --- |
67
+ | **Keyword** | Fills every `{{name}}` in the title and the picked prompts. A keyword the title does not name is saved with a template. | 200 characters, single line |
68
+
69
+ ## More videos from the same setup
70
+
71
+ **Add topic** queues another video with everything else the same. Only its title and keywords differ.
72
+
73
+ 1. Press **Add topic** under the topic fields.
74
+ 2. Type the new topic (or the new title, if the title has no keywords) and press **Add**. Add as many as you like, then press **Done** or `Esc`.
75
+ 3. Each extra video shows as a chip. Its name is a button with a pencil (**Change the keywords of …**): press it to open a side panel where you can change that video's **Title** and keywords. Everything else comes from the setup of the first video.
76
+ 4. Press the **x** on a chip to remove that video.
77
+
78
+ One Start queues at most 50 videos: this setup and 49 more. The Play key reads **Queue N videos**, and the videos run one at a time, in order.
79
+
80
+ ### The video queue
81
+
82
+ Videos started together wait in the queue, shown on the Calendar under **Batch queue** (see [Calendar](Calendar#the-batch-queue)) and behind the **Queue · N** button in a project page's right rail. Projects has a **Queued** filter for them. Pausing a project holds the queue. When one fails or is cancelled, the next one starts.
83
+
84
+ ## Drafts
85
+
86
+ Play saves every change to the current draft on its own. The status beside **Drafts** in the page header says **Unsaved**, **Saving…**, **Saved**, **Couldn't save** or **Changed elsewhere**.
87
+
88
+ - **Drafts** lists your saved setups with their last edit time. Press anywhere on a draft's row to open it, or **Discard** to delete it (it asks you to confirm, and this cannot be undone).
89
+ - **New draft** starts an empty draft and keeps the current one in the list.
90
+ - If saving fails, press **Retry**.
91
+ - A draft the app cannot read is marked "Unsupported or corrupt draft". Try opening it to recover it, or discard it.
92
+
93
+ ### When a draft was changed elsewhere
94
+
95
+ If you have the same draft open in another tab or window and it was saved there, the status says **Changed elsewhere** and offers two buttons:
96
+
97
+ | Button | What it does |
98
+ | --- | --- |
99
+ | **Reload saved draft** | Shows the version saved elsewhere and drops your unsaved change. |
100
+ | **Save as a new draft** | Keeps your version as a separate draft and leaves the other one alone. |
101
+
102
+ ## The setup rows at a glance
103
+
104
+ | Row | What it holds | Details |
105
+ | --- | --- | --- |
106
+ | **Title and keywords** | The title pattern and every keyword value | This page |
107
+ | **Article** | Article source, article prompt, text generation (LLM, model, thinking), research | [Play Title and Article](Play-Title-and-Article) |
108
+ | **Narration** | Narration source, TTS, model, voice, speakers, Audio Advanced (chunking, intro, outro, preparation, glossary, aliases, tables and figures) | [Play Narration](Play-Narration) |
109
+ | **Images** | Images source, provider, model, effort, image prompts, establishing image, more images for long videos | [Play Images](Play-Images) |
110
+ | **Video and style** | Video source, seconds per image, zoom, motion, cuts, the Look, ambient sound, pauses and volume, silence, frame format, captions, preview text | [Play Video and Style](Play-Video-and-Style) |
111
+ | **Outputs** | Thumbnail, YouTube description, Shorts, tables and figures on screen, PDF document | [Play Outputs](Play-Outputs) |
112
+ | **Reviews** | Review checkpoints and automatic reviews (opens the side panel) | [Reviews and Checkpoints](Reviews-and-Checkpoints) |
113
+ | **Channel** | Channel, brand kit, language | This page, [Channels](Channels), [Other Languages](Other-Languages) |
114
+
115
+ When you open a draft, rows that need attention start open. The others stay folded until you press **Change**.
116
+
117
+ ## Channel row
118
+
119
+ | Option | What it does | Default |
120
+ | --- | --- | --- |
121
+ | **Channel** | The channel this video belongs to. Its brand kit fills what this setup leaves at its default, and its cast of characters goes with the images. The list shows how many are in each channel's cast. | The template's channel, or the default channel |
122
+ | **Use the channel's brand kit** | Fills what this setup leaves at its default from the channel: the caption font, intro, outro, document theme and ambient sound. What you set on Play wins. Off takes none of it; the cast and language still apply. | On |
123
+ | **Language** | The language the article, narration, YouTube description and shorts titles are written in. Blank uses the channel's language. | Channel's language |
124
+
125
+ The row has an **Edit** link to the channel's page. For the language, voices and caption timing in other languages, see [Other Languages](Other-Languages). For the cast, see [Cast Library](Cast-Library).
126
+
127
+ ## The right rail
128
+
129
+ ### Style preview
130
+
131
+ When the video is generated from images, the rail shows **Style preview**: six seconds of the bundled sample project, its real narration over three of its pictures, rendered by the real renderer with your captions, Look and motion, and the captions timed to the narration. See [Play Video and Style](Play-Video-and-Style#style-preview).
132
+
133
+ ### Estimated cost
134
+
135
+ What the providers are likely to charge for this run, in US dollars, from their published prices. Actual usage can differ, and the estimate does not cap spending.
136
+
137
+ - The total shows as **Estimated total** (a low to high range when it can vary). If some prices are unknown, it shows **Known subtotal** and says how many stage charges have unavailable pricing.
138
+ - **Cost by stage** folds out the price of each stage, what each assumes, and the date the price catalogue was checked. With several videos, the rows show combined costs.
139
+ - Steps run through a command-line tool you are signed in to (such as Claude Code or Codex) show **$0 on your plan**, with the approximate API price beside them for comparison.
140
+
141
+ The estimate refreshes on its own a moment after you stop typing. Press **Refresh review** to check the setup and recalculate now, for example after changing a prompt in the Library.
142
+
143
+ See [Costs and Run Cost](Costs-and-Run-Cost) for how prices are worked out.
144
+
145
+ ### Expected article words per video
146
+
147
+ How long you expect each generated article to be. It drives the cost estimate and how many images **More images for long videos** adds. Once the article is written, its real length is used. About 150 words is one minute of narration.
148
+
149
+ | Option | Default | Range |
150
+ | --- | --- | --- |
151
+ | **Expected article words per video** | 1500 | 1 to 100,000 |
152
+
153
+ ### The Play key
154
+
155
+ | Label | When |
156
+ | --- | --- |
157
+ | **Start run** | One video |
158
+ | **Queue N videos** | You added more topics |
159
+ | **Starting…** | The start is being sent |
160
+ | **Check Start result** | Slopify didn't confirm the last start. Press it to find out before starting again. |
161
+
162
+ The line under the key says why it can't start yet (a missing field, an upload still running, the estimate still being checked), or "Nothing starts until you press it."
163
+
164
+ ### Review the whole setup
165
+
166
+ Opens the **Review** side panel: every setting of the run in words, any setup errors (press one to jump to it), the review checkpoints, the automatic reviews, and **Read the resolved prompt**, which shows each prompt exactly as it will be sent, with keywords filled in. `Ctrl+Enter` anywhere on Play opens the same panel. See [Reviews and Checkpoints](Reviews-and-Checkpoints).
167
+
168
+ ## Save as template
169
+
170
+ **Save as template** in the right rail keeps this setup's prompts, voice, images, style, outputs and reviews so you can start the next video from it.
171
+
172
+ 1. Press **Save as template**.
173
+ 2. Type a **Template name** (up to 120 characters). This is the name the template is listed under on Play and Templates.
174
+ 3. Read the list of what is left out, then press **Save template**.
175
+
176
+ What a template keeps and leaves out:
177
+
178
+ - Keywords the title names (like `{{Topic}}`) are saved empty. The dialog names each one, and the value you typed for this video.
179
+ - Other keywords (a word count, a style) keep their values. If the title names no keywords, the dialog says every keyword keeps its value.
180
+ - The other videos you queued with **Add topic** are not saved.
181
+ - The template belongs to the draft's channel.
182
+
183
+ You can also save a template from Templates → **Save a setup**, which picks a saved Play draft (**Saved Play draft**), a **Template name** of up to 120 characters and a **Channel**. The same keyword rule applies there, and queued extra videos and uploaded fonts are left out. See [Templates](Templates).
184
+
185
+ ## Command palette
186
+
187
+ Every Play action is in the command palette (`Ctrl+K`):
188
+
189
+ | Command | What it does |
190
+ | --- | --- |
191
+ | **Start run** / **Queue N videos** | Starts, or jumps to what holds it back |
192
+ | **Add a topic for another video** | Opens the Add topic field |
193
+ | **Save as template** | Opens the Save as template dialog |
194
+ | **Review the whole setup** (`Ctrl+Enter`) | Opens the Review panel |
195
+ | **Pick a template** | Focuses the Template picker |
196
+ | **Change title and keywords**, **Change article**, and one per row | Opens that row and scrolls to it |
197
+
198
+ ## Tips
199
+
200
+ - A long video on the same topic as a finished short is one press away: **Make the full video on this topic** on the short's project page opens Play set up for it. See [Your First Short](Your-First-Short#make-the-full-video-next).
201
+ - Start with a template and only change the rows you need. The row summaries tell you what each one will do without opening it.
202
+ - Use a title pattern and **Add topic** to queue a series in one go.
203
+ - If a template refers to a prompt you have since deleted, the Article or Images row shows **Needs setup**. Pick another prompt.
204
+
205
+ ## Related pages
206
+
207
+ - [Your First Short](Your-First-Short)
208
+ - [Play Title and Article](Play-Title-and-Article)
209
+ - [Play Narration](Play-Narration)
210
+ - [Play Images](Play-Images)
211
+ - [Play Video and Style](Play-Video-and-Style)
212
+ - [Play Outputs](Play-Outputs)
213
+ - [Reviews and Checkpoints](Reviews-and-Checkpoints)
214
+ - [Templates](Templates)
215
+ - [Costs and Run Cost](Costs-and-Run-Cost)
216
+ - [Keyboard Shortcuts and Command Palette](Keyboard-Shortcuts-and-Command-Palette)
@@ -0,0 +1,135 @@
1
+ # Play Title and Article
2
+
3
+ The article is the script of your video: the narration reads it, the captions show it, the chapters come from its headings and the PDF lays it out. On Play you either have a text model write it from a prompt, or paste your own. This page covers the **Title and keywords** row, the **Article** row (article source, prompt, text generation and research) and the intro and outro that wrap the article.
4
+
5
+ **Where to find it:** Play → **Title and keywords** row and **Article** row → **Change**. The intro and outro are under Play → **Narration** → **Change** → **Audio Advanced**.
6
+
7
+ ## Title and keywords
8
+
9
+ The title and the topic are typed at the top of Play. The **Title and keywords** row holds the rest:
10
+
11
+ | Field | What it does | Limit |
12
+ | --- | --- | --- |
13
+ | **Title pattern** | Shown when the title names a keyword in double braces, like `History: {{Topic}}`. Change the pattern here; the topic values stay at the top of Play. | 200 characters |
14
+ | Each keyword | A value a picked prompt or the title asks for with `{{name}}`. Typed once, it fills every place that names it; the line under it lists where. | 200 characters, one line |
15
+
16
+ The row's summary says how many keywords the setup has. Keywords come from the title and from every prompt you pick (article prompt, image prompts, thumbnail prompt and so on), so the list grows as you pick prompts. Every keyword must be filled before the run can start ("Fill in this field.").
17
+
18
+ For title patterns, topics and queuing more videos, see [Play Overview](Play-Overview#title-title-pattern-and-topic).
19
+
20
+ ## Choose where the article comes from
21
+
22
+ The Article row starts with a **Source** switch:
23
+
24
+ | Source | What happens | Cost |
25
+ | --- | --- | --- |
26
+ | **Generate** (default) | The text model writes the article from the article prompt, in one call. | One text-model call |
27
+ | **Provide** | Slopify narrates the text you paste, word for word. No text model writes one. | No text-model cost for the article |
28
+
29
+ The article is what the narration reads and what the PDF lays out.
30
+
31
+ ### Generate an article from a prompt
32
+
33
+ 1. Open the **Article** row and leave **Source** on **Generate**.
34
+ 2. Pick an **Article prompt**. These are the article prompts saved in the Library, with their keywords filled in.
35
+ 3. Optional: press **View prompt** to read the prompt's text.
36
+ 4. Fill in any keywords the prompt asks for in the **Title and keywords** row.
37
+ 5. Pick the text model under **Text generation** (below).
38
+
39
+ If you have no article prompts yet, the row says "No article prompts saved. Create a prompt to begin." Press **Create prompt** to open a new article prompt in the Library. Your draft is saved first. See [Prompts](Prompts).
40
+
41
+ When the narration uses several speakers with **Write a script**, the field becomes **Script prompt**: a Script prompt asks for speaker turns instead of a plain article. See [Multiple Voices](Multiple-Voices).
42
+
43
+ ### Paste your own article
44
+
45
+ 1. Open the **Article** row and set **Source** to **Provide**.
46
+ 2. Paste the text into **Article text**.
47
+ 3. Check the count under it (words and characters). About 150 words is one minute of narration.
48
+
49
+ Include everything that should be read, headings too. Headings become chapters. Research is turned off when the article is provided: the row says "Research is Off because the article is provided."
50
+
51
+ ## Text generation
52
+
53
+ One text model writes everything this run needs in words: the article, the research, the thumbnail's image prompt, intro and outro entries set to LLM, Narration Preparation, table and figure descriptions, the YouTube description and picking shorts. Each is a separate call, counted in usage.
54
+
55
+ The **Text generation** section appears under the Article row whenever the run needs a text model. **Settings** beside it opens Settings, where you set the default for new drafts.
56
+
57
+ | Option | What it does | Default |
58
+ | --- | --- | --- |
59
+ | **LLM** | Who runs the text model: a command-line tool you are signed in to, such as Claude Code or Codex, or a keyed service such as OpenRouter, billed per token. A greyed provider says why it cannot be used; fix it under Settings. | Your Settings default |
60
+ | **Text model** | The model the provider runs for every text step. Bigger models write better and cost more per token. | Your Settings default |
61
+ | **Thinking** | How long the model reasons before it answers, for models that offer it. Higher levels can write more carefully but take longer and use more tokens. | **Model default** |
62
+
63
+ Notes on the pickers:
64
+
65
+ - Changing **LLM** clears the model, so pick a model again.
66
+ - The refresh button beside **Text model** asks the provider for its current list.
67
+ - **Custom ID** lets you type a model the list does not show. **Use list** goes back to the list.
68
+ - **Thinking** only appears when the model offers levels. It lists **Model default** and the levels the model supports, from **Off**, **Low**, **Medium**, **High**, **Xhigh**, **Max** and **Ultra**.
69
+
70
+ If no text model is picked but the run needs one, the row shows "Choose a text (LLM) provider and model." See [Providers and Keys](Providers-and-Keys), [AI CLIs](AI-CLIs) and [Models](Models).
71
+
72
+ ## Research
73
+
74
+ Research gives the text model notes to write from, beyond what it already knows. It has its own **Source** switch under the Article row:
75
+
76
+ | Source | What happens | Cost |
77
+ | --- | --- | --- |
78
+ | **Off** (default) | The article is written from the prompt alone. | Nothing extra |
79
+ | **Generate** | The text model plans chapters, researches each one on the web and combines the notes before the article is written. The row reads "Runs through the LLM, one agent per chapter". | One call to plan, one per chapter, one to combine |
80
+ | **Provide** | Uses notes you paste in **Research notes**. Nothing is looked up. | Nothing extra |
81
+
82
+ ### Research on the web
83
+
84
+ 1. Set the Research **Source** to **Generate**.
85
+ 2. Make sure the text model can search the web. A model that cannot fails the Research stage straight away, rather than falling back to what it already knows.
86
+ 3. Start the run. You can watch the notes being written on the project page's live view.
87
+
88
+ ### Give your own research notes
89
+
90
+ 1. Set the Research **Source** to **Provide**.
91
+ 2. Paste facts, sources and quotes the article should draw on into **Research notes**.
92
+
93
+ The notes are given to the text model with the article prompt, in place of web research.
94
+
95
+ ## Expected article words
96
+
97
+ **Expected article words per video** sits in the right rail under the estimate. It tells Slopify how long you expect each generated article to be, which drives the cost estimate and how many images **More images for long videos** adds. Once the article is written, its real length is used. Default 1500, range 1 to 100,000. Set it to roughly what your article prompt asks for.
98
+
99
+ ## Intro and outro
100
+
101
+ An intro is read before the article and an outro after it. Both are Library entries, picked in the Narration row under **Audio Advanced**.
102
+
103
+ | Option | What it does | Default |
104
+ | --- | --- | --- |
105
+ | **Intro** | A Library entry read before the article. A text entry is read as written; an LLM entry is written by the text model for each video, one extra call. | Off |
106
+ | **Outro** | A Library entry read after the article, such as a sign-off. Text or LLM, as above. | Off |
107
+
108
+ 1. Open the **Narration** row and press **Change**.
109
+ 2. Open **Audio Advanced**.
110
+ 3. Pick an **Intro** and an **Outro**, or leave them **Off**.
111
+ 4. Optional: set **Silence between segments** in the **Video and style** row to change the quiet between the intro, the article and the outro (Settings has the default, 3 seconds).
112
+
113
+ The channel's brand kit can fill the intro and outro when you leave them at their default. With several speakers, the main **Voice** in the Narration row reads the intro and outro. Uploaded narration (**Provide**) must already include any intro and outro. Write entries in the Library; see [Intros and Outros](Intros-and-Outros).
114
+
115
+ ## What the row summary says
116
+
117
+ Folded, the Article row shows the prompt, the provider and model, and the research source, for example `History article · Claude Code · sonnet · research off`, or **Your article** when you pasted one. A row that is missing something shows **Needs setup** and the reason, such as "Pick an article prompt." or "Paste the article."
118
+
119
+ ## Tips
120
+
121
+ - Ask for a Pronunciation Glossary at the end of your article prompt if the topic has unusual names. See [Play Narration](Play-Narration#pronunciation-glossary).
122
+ - Use **Review the whole setup** → **Read the resolved prompt** to see the article prompt exactly as it will be sent, keywords filled in.
123
+ - A Review prompt can check the article after it is written. See [Reviews and Checkpoints](Reviews-and-Checkpoints).
124
+ - To change the article after the run, edit it on the project page. See [Editing a Project](Editing-a-Project).
125
+
126
+ ## Related pages
127
+
128
+ - [Play Overview](Play-Overview)
129
+ - [Prompts](Prompts)
130
+ - [Intros and Outros](Intros-and-Outros)
131
+ - [Models](Models)
132
+ - [Providers and Keys](Providers-and-Keys)
133
+ - [AI CLIs](AI-CLIs)
134
+ - [Multiple Voices](Multiple-Voices)
135
+ - [Other Languages](Other-Languages)