@gentbajko/slopify 3.0.5 → 3.0.7

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 (50) hide show
  1. package/dist/adapters/tts/elevenlabs.js +2 -0
  2. package/dist/assets/document/fonts/Literata-Italic.ttf +0 -0
  3. package/dist/assets/document/fonts/Literata-OFL.txt +93 -0
  4. package/dist/assets/document/fonts/Literata-Regular.ttf +0 -0
  5. package/dist/assets/document/fonts/Literata-SemiBold.ttf +0 -0
  6. package/dist/assets/document/fonts/Literata-SemiBoldItalic.ttf +0 -0
  7. package/dist/assets/document/fonts/SOURCE.txt +13 -1
  8. package/dist/assets/models.yaml +26 -0
  9. package/dist/edge/http/studio.js +32 -11
  10. package/dist/extension/slopify-studio-chrome.zip +0 -0
  11. package/dist/extension/slopify-studio-firefox.zip +0 -0
  12. package/dist/main.js +1 -1
  13. package/dist/patch-notes/3.0.6.md +34 -0
  14. package/dist/patch-notes/3.0.7.md +33 -0
  15. package/dist/patch-notes/index.json +12 -0
  16. package/dist/slices/document/fonts.js +29 -11
  17. package/dist/slices/document/render.js +1 -1
  18. package/dist/slices/document/theme.js +3 -3
  19. package/dist/slices/rebuild/recipe-legacy.js +2 -0
  20. package/dist/slices/rebuild/runtime-youtube.js +15 -4
  21. package/dist/slices/schedules/agenda.js +1 -1
  22. package/dist/slices/schedules/scheduler.js +3 -2
  23. package/dist/slices/schedules/service.js +11 -8
  24. package/dist/slices/schedules/topics.js +3 -3
  25. package/dist/slices/storage/downloads.js +14 -3
  26. package/dist/slices/storage/layout.js +4 -0
  27. package/dist/slices/storage/model.js +5 -0
  28. package/dist/slices/storage/portable.js +4 -4
  29. package/dist/slices/storage/trim.js +2 -0
  30. package/dist/slices/studio/pack.js +16 -5
  31. package/dist/slices/studio/settings.js +89 -24
  32. package/dist/slices/youtube/answer.js +54 -5
  33. package/dist/slices/youtube/edits-repo.js +8 -2
  34. package/dist/slices/youtube/edits.js +18 -4
  35. package/dist/slices/youtube/model.js +9 -1
  36. package/dist/tutorials/Document-Themes.md +1 -1
  37. package/dist/tutorials/Home-and-Projects.md +4 -4
  38. package/dist/tutorials/Keyboard-Shortcuts-and-Command-Palette.md +3 -3
  39. package/dist/tutorials/Play-Overview.md +1 -1
  40. package/dist/tutorials/Publishing-to-YouTube.md +4 -4
  41. package/dist/tutorials/Schedules.md +2 -2
  42. package/dist/tutorials/Settings-Reference.md +3 -3
  43. package/dist/tutorials/Studio-Extension.md +2 -2
  44. package/dist/tutorials/YouTube-Description.md +13 -5
  45. package/dist/web/assets/{index-KWtMGqKB.css → index-C-Ib18Ec.css} +1 -1
  46. package/dist/web/assets/index-Cdb0Jh3P.js +310 -0
  47. package/dist/web/assets/{pdf-CkHBkfTB.js → pdf-BhFuoBjr.js} +1 -1
  48. package/dist/web/index.html +2 -2
  49. package/package.json +1 -1
  50. package/dist/web/assets/index-QDLAjCSW.js +0 -307
@@ -2,7 +2,7 @@
2
2
 
3
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
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?**
5
+ **Where to find it:** **New project** in the sidebar, **New project** on Home or Projects, `Ctrl+K` → **New project**, or press `C` anywhere. The page header reads **What's the video about?**
6
6
 
7
7
  ## How Play is laid out
8
8
 
@@ -2,11 +2,11 @@
2
2
 
3
3
  Slopify never uploads or publishes for you: there is no YouTube sign-in and no upload API. Instead, **Prepare upload** lists everything YouTube Studio asks for, in the order it asks, with a Copy button for each value, for the long video and for every short. You upload in Studio in your own browser and press Publish yourself. The optional [Studio-Extension](Studio-Extension) can fill Studio's upload dialog from the same list.
4
4
 
5
- **Where to find it:** a finished project → **Prepare upload** (the next action, and in the **YouTube** section), Home → **Ready to upload** → **Prepare upload**, or the Calendar's **Needs you** → **Prepare upload**. Settings → **YouTube Studio** holds the playlist, and each channel's **Brand** tab holds the links it uses.
5
+ **Where to find it:** a finished project → **Prepare upload** (the next action, and in the **YouTube** section), Home → **Ready to upload** → **Prepare upload**, or the Calendar's **Needs you** → **Prepare upload**. Settings → **YouTube Studio** holds the playlists, and each channel's **Brand** tab holds the links it uses.
6
6
 
7
7
  ## Before your first upload
8
8
 
9
- 1. Open **Settings → YouTube Studio** and type your **Playlist** name exactly as it is called in Studio (up to 150 characters), then press **Save**. It is the default for every channel; pick a channel in the list above the field to give that channel its own playlist. Leave it empty for no playlist.
9
+ 1. Open **Settings → YouTube Studio**, press **Add playlist** and type each playlist exactly as it is called in Studio (up to 150 characters). Tick **On by default** for the ones every video goes into, then press **Save playlists**. The list is the default for every channel; pick a channel above it to give that channel its own list.
10
10
  2. Open **Channels** → your channel → **Brand** and, under **Channel links**, add any links your descriptions use, such as `Patreon` or `Discord`. See [Channels](Channels#channel-links).
11
11
  3. In **Settings → Voices**, turn on **Real person** for any voice cloned from, or made to sound like, a real person.
12
12
  4. In **Library → Prompts**, turn on **Draws photorealistic pictures** for any Image prompt whose style looks like real photos or film.
@@ -27,7 +27,7 @@ Steps 3 and 4 decide the AI use answer; see [AI use disclosure](#ai-use-disclosu
27
27
  | **Title** | The project's title (up to 100 characters), or the short's title. **Copy**. |
28
28
  | **Description** | The description with chapters and hashtags, links filled in. For a short: its description, the "Watch the full video:" line and its hashtags. **Copy**. |
29
29
  | **Thumbnail** | The thumbnail file, with **Open folder**. With three thumbnails: "The first under Thumbnail; all 3 in A/B Testing (beside the title)." Shorts have no thumbnail step, since Studio shows a frame of a short. |
30
- | **Playlist** | The project's channel's playlist from Settings → YouTube Studio (or the default one), or "None set". **Copy**. |
30
+ | **Playlist** | The project's channel's playlists from Settings → YouTube Studio (or the default list), or "None set". With more than one, each has a tick: tick the ones this project goes into (saved for this project; the others keep the defaults). **Copy**. |
31
31
  | **Audience** | "No, it's not made for kids". |
32
32
  | **AI use (under Show more)** | **Yes** or **No**, with the reason. |
33
33
  | **Tags (under Show more)** | The tags, comma-separated. For a short, its hashtags without the `#`. **Copy**. |
@@ -119,7 +119,7 @@ Slopify does not check YouTube, so it can't know when you've published. After yo
119
119
 
120
120
  ## Tips
121
121
 
122
- - Set the playlist once in Settings (per channel if your channels upload to different playlists); every upload pack names it.
122
+ - Set the playlists once in Settings (per channel if your channels upload to different playlists), and tick the few a single video joins in its Prepare upload.
123
123
  - Upload the long video first, then paste its link as the shorts' **Full video link** so each short's description points to it.
124
124
  - If the AI use answer surprises you, read its reason: it names the voice, footage or prompt that made it Yes.
125
125
 
@@ -134,9 +134,9 @@ Pick a schedule in the list to see its detail: **When**, **Timezone**, **Next ru
134
134
 
135
135
  **Run history** lists each run with its status (running, done, failed, skipped and so on), the time it was due, and either the project it made or the reason it didn't run. Deleted schedules are listed under **Deleted schedules** at the bottom; pick one to see its history.
136
136
 
137
- ## Use a newer template version
137
+ ## When you edit the template
138
138
 
139
- A schedule keeps the template version it was set up with, so saving a newer template doesn't change what the schedule makes. To switch, edit the schedule, pick the template again in **Template**, and save.
139
+ A schedule always uses its template as it is now: save a change to the template and the next run, the Calendar and topic generation use it. If the change adds a keyword the schedule has no value for, fill it in under the schedule's topics or every-run values.
140
140
 
141
141
  ## Tips
142
142
 
@@ -15,7 +15,7 @@ Every section of Settings, what each control does and its default. Sections with
15
15
  | [Playback & appearance](#playback--appearance) | Silence gap, light or dark, volume levelling | This page |
16
16
  | [Notifications](#notifications) | Browser and phone notifications | [Notifications](Notifications) |
17
17
  | [Channel links](#channel-links) | A pointer to each channel's own links | [Channels](Channels#channel-links) |
18
- | [YouTube Studio](#youtube-studio) | Playlist per channel, the Studio extension's download and pairing | [Studio-Extension](Studio-Extension) |
18
+ | [YouTube Studio](#youtube-studio) | Playlists per channel, the Studio extension's download and pairing | [Studio-Extension](Studio-Extension) |
19
19
  | [Backup & storage](#backup--storage) | Your files folder, export and import, disk space, samples | [Where-Your-Files-Live](Where-Your-Files-Live) |
20
20
  | [Backups](#backups) | The daily automatic backup | [Backups](Backups) |
21
21
  | [Trash](#trash) | Deleted items, kept 30 days | [Trash](Trash) |
@@ -140,12 +140,12 @@ Each channel now keeps its own links, on its **Brand** tab under **Channel links
140
140
 
141
141
  ## YouTube Studio
142
142
 
143
- "The playlist upload packs name, and the Studio extension's pairing."
143
+ "The playlists upload packs offer, and the Studio extension's pairing."
144
144
 
145
145
  | Control | What it does | Default / limit |
146
146
  |---|---|---|
147
147
  | **Upload pack and extension** | Explains that Slopify never uploads or publishes: **Prepare upload** on a finished project lists everything Studio asks for, and the optional extension fills Studio's upload dialog from it. | |
148
- | **Playlist** | The YouTube playlist upload packs name, typed exactly as it is called in Studio. Pick **Every channel (default)** or one channel first: the default is used by every channel without its own. **Save** stores it. Empty means no playlist (or, for a channel, the default). | Empty; up to 150 characters |
148
+ | **Playlists** | The YouTube playlists upload packs offer, each typed exactly as it is called in Studio. Pick **Every channel (default)** or one channel first: the default list is used by every channel without its own. **Add playlist** adds a row; **On by default** puts every project into it; **Remove** drops it; **Save playlists** stores the list. A project's **Prepare upload** changes which ones it goes into. | None; up to 20, each up to 150 characters |
149
149
  | **Extension pairing token** | A secret the Slopify Studio extension needs before it may read your upload packs. **Copy** it into the extension's options and press Pair there. | |
150
150
  | **New pairing token** | Makes a fresh token, unpairs the extension until you paste the new one, and clears the uploads waiting for Studio. | |
151
151
  | **Install the Studio extension** | **Chrome, Edge, Brave** or **Firefox**, then **Download for Chrome** or **Download for Firefox**, with the three install steps. | |
@@ -58,7 +58,7 @@ The section is headed **Upload pack and extension**.
58
58
 
59
59
  | Option | What it does | Default / range |
60
60
  |---|---|---|
61
- | **Playlist** | The YouTube playlist upload packs name, so the extension ticks it in Studio's dialog. Pick **Every channel (default)** or one channel in the channel list, type the playlist exactly as it is called in Studio, and press **Save**. The default is used by every channel without its own; a channel's own playlist wins for its videos. Leave it empty for no playlist. | Empty; up to 150 characters |
61
+ | **Playlists** | The YouTube playlists upload packs offer, so the extension ticks them in Studio's dialog. Pick **Every channel (default)** or one channel, **Add playlist** for each, type it exactly as it is called in Studio, tick **On by default** for the ones every video joins, and press **Save playlists**. A channel's own list wins for its videos; Prepare upload changes the ticks for one project. | None; up to 20, each up to 150 characters |
62
62
  | **Extension pairing token** | The secret the extension needs before it may read your upload packs. **Copy** copies it; **New pairing token** makes a new one and unpairs the extension. | Made for you |
63
63
  | **Install the Studio extension** | The download and install steps (see [Get the extension](#get-the-extension)). | |
64
64
 
@@ -89,7 +89,7 @@ Each press of **Fill in YouTube Studio** adds the item to **Waiting for Studio**
89
89
  | **Title** | Types the title (up to 100 characters for the video, the short's own title for a short). |
90
90
  | **Description** | Types the description line by line, so line breaks are kept. |
91
91
  | **Thumbnail** | Sets the first thumbnail. With three thumbnails, it looks for Studio's **A/B Testing** button beside the title and puts all three in. If the button isn't there or its dialog can't be filled, it sets the first and asks you to add the others in A/B Testing by hand. Shorts get no thumbnail. |
92
- | **Playlists** | Opens the dropdown, ticks the playlist named in Settings → YouTube Studio, and closes it. |
92
+ | **Playlists** | Opens the dropdown, ticks every playlist the project goes into (Settings → YouTube Studio, and the project's own ticks in Prepare upload), and closes it. |
93
93
  | **Audience** | Picks "No, it's not made for kids". |
94
94
  | **Show more** | Presses it once, to reach the advanced settings. |
95
95
  | **AI use** | Picks Yes or No, as Prepare upload worked it out. See [AI use disclosure](Publishing-to-YouTube#ai-use-disclosure). |
@@ -2,7 +2,7 @@
2
2
 
3
3
  Slopify can write your video's YouTube description for you: a short summary, chapters at the narration's real times, hashtags, and a separate list of search tags. Each part has a Copy button and can be edited in place, and your edits survive when the description is written again.
4
4
 
5
- **Where to find it:** Play → **Outputs** row → **YouTube description**. On a finished project: the **YouTube** section (Description and Tags), and Edit project → **Prompts**.
5
+ **Where to find it:** Play → **Outputs** row → **YouTube description**. On a finished project: the **YouTube** section (Description, Tags, Pinned comment and Other titles), and Edit project → **Prompts**.
6
6
 
7
7
  ## What you get
8
8
 
@@ -12,8 +12,10 @@ Slopify can write your video's YouTube description for you: a short summary, cha
12
12
  | **Chapters** | Timestamped lines such as `0:00 Introduction`, at the narration's real times. YouTube turns them into chapters. |
13
13
  | **Hashtags** | The hashtags at the end of the description. YouTube shows the first three above the title. |
14
14
  | **Tags** | Search tags for YouTube Studio's **Tags** field, kept separate from the description. Viewers don't see them. |
15
+ | **Pinned comment** | A comment to post under the video and pin: a line or two asking viewers a question they can answer from their own experience, and what to cover next. Your Description prompt can say how you want it. |
16
+ | **Other titles** | Two more titles for YouTube's **A/B Testing** (Test & compare), beside the project's own title: each a different angle on the same video, one per line. |
15
17
 
16
- Slopify lays out the description itself (summary, blank line, one chapter per line, blank line, hashtags), so the layout YouTube needs never depends on the model's spacing. The files are saved in the project as `description.txt` and `tags.txt`.
18
+ Slopify lays out the description itself (summary, blank line, one chapter per line, blank line, hashtags), so the layout YouTube needs never depends on the model's spacing. The files are saved in the project as `description.txt`, `tags.txt`, `pinned-comment.txt` and `titles.txt`.
17
19
 
18
20
  ## Turn it on
19
21
 
@@ -42,20 +44,22 @@ To change the tone or add your own links, write a prompt of the kind **YouTube D
42
44
 
43
45
  ## Read and copy it
44
46
 
45
- When the step has run, the project page's **YouTube** section shows two parts. A finished project with a written description opens on this section, so copying it is one press:
47
+ When the step has run, the project page's **YouTube** section shows four parts. A finished project with a written description opens on this section, so copying it is one press:
46
48
 
47
49
  - **Description**, with the Summary, Chapters and Hashtags, a character count such as `1,240 / 5000 characters`, and **Copy**.
48
50
  - **Tags**, shown as chips, with a count against YouTube's 500-character limit and **Copy**.
51
+ - **Pinned comment**, below the tags, with **Copy**. YouTube pins comments only on a published video: once it is live, post the comment from your channel and choose **Pin** in its menu.
52
+ - **Other titles**, below the pinned comment, with **Copy**. In Studio, press **A/B Testing** beside the title and add them next to the video's own title. Prepare upload lists them in its Title step with **Copy others**.
49
53
 
50
54
  **Copy** on Description copies the whole description, placeholders filled in. **Copy** on Tags copies them comma-separated, ready to paste. A count over YouTube's limit turns red and says "over YouTube's limit".
51
55
 
52
- You can also run **Copy description** (`Shift+D`) and **Copy tags** from the command palette (`Ctrl+K`) while the project is open. The **YouTube description (.txt)** and **YouTube tags (.txt)** downloads are the text exactly as the page shows it: your edits, the fitted chapters and the filled links. See [Keyboard-Shortcuts-and-Command-Palette](Keyboard-Shortcuts-and-Command-Palette).
56
+ You can also run **Copy description** (`Shift+D`), **Copy tags** and **Copy pinned comment** from the command palette (`Ctrl+K`) while the project is open. The **YouTube description (.txt)** and **YouTube tags (.txt)** downloads are the text exactly as the page shows it: your edits, the fitted chapters and the filled links. See [Keyboard-Shortcuts-and-Command-Palette](Keyboard-Shortcuts-and-Command-Palette).
53
57
 
54
58
  While the stage is running the parts say "Written after the subtitle timing."; before it starts they say "Not written yet. It is made with the video."
55
59
 
56
60
  ## Edit a part
57
61
 
58
- 1. In the project's YouTube section, press **Edit** beside Summary, Chapters, Hashtags or Tags.
62
+ 1. In the project's YouTube section, press **Edit** beside Summary, Chapters, Hashtags, Tags, Pinned comment or Other titles.
59
63
  2. Change the text and save.
60
64
 
61
65
  Your text is now marked **Your edit**. It is kept as yours:
@@ -103,6 +107,10 @@ Because placeholders are filled when shown or copied, changing a channel's link
103
107
 
104
108
  ## Write it again, or turn it on later
105
109
 
110
+ To write a description again, press **Write again** beside **Description** in the project's YouTube section, then confirm. Only this step runs. A description written before pinned comments and other titles existed shows neither until it is written again this way.
111
+
112
+ To turn it on, or to change its prompt first:
113
+
106
114
  1. Open the project and press **Edit project**.
107
115
  2. Open **Prompts**. Tick **YouTube description** if it was off, and pick a **Description prompt**.
108
116
  3. To replace a description that is already written, press **Write the description again after review**. **Keep the current description** cancels it.