Redditology / Assets / System 02 of 03
2023Recorded work
Creator · experimental side project
Reusable generation and linked media assets
Create the voiceover and visual for each part of a discussion, then arrange the clips in the right order.
- Noah’s contribution
- Noah configured reusable generation scenarios, template mappings, replacement tables and relationship-based ordering.
- Historical stage
- Historical generated assets and architecture walkthroughs; format and concurrency changes remained iterative.
- Part of the business
- Redditology overview ↗
- Make
- Airtable
- Google Slides
- Google Sheets
- Play.ht
- CloudConvert
- Transloadit
Inside this system
The workflow
The handoffs
inside the work.
Follow the main path and its branches. Select a step for context; the account below explains what was built, tested or planned.
- Selected discussion records
Start with source text and the post/comment/immediate-parent relationships. - Spoken replacement table
Maintain recognized terms and the equivalents used for narration. - Voice and avatar state
Keep configured identities, chosen voice and last-used rotation state. - Prepare narration text
Apply the reusable text-replacement stage to the selected material. - Reusable audio generation
Generate narration with the selected or supplied voice. - Discussion-level slide generation
Choose the post/comment/reply template and fill text and avatar placeholders. - Convert slide to graphic
Export the slide and convert the result into its image resource. - Record the voice’s latest use
Update the last-used field so subsequent selections rotate through the configured voices. - Combine narration and graphic
Use the paired resources to produce the short clip. - Linked asset records
Retain generated files, voice/avatar and source/parent IDs in Airtable. - Traverse relationships and assign order
Follow post-to-comment-to-reply links so each clip receives an assembly position. - Track accumulated clip duration
Sum clip lengths as an input to how much material is added. - Ordered assembly resources
Pass ordered clips and duration context into the later assembly step.
Key records
The information
that carries forward.
| Record | Information | Purpose |
|---|---|---|
| Asset | Post ID, comment ID, parent ID, resource type and generated files | Keep the components of one discussion together. |
| Replacement table | Recognized terms and spoken replacements | Make abbreviations and other text more suitable for narration. |
| Voice/avatar record | Selected identity, last-used state and voice settings | Vary speakers while retaining continuity within a reply chain. |
| Assembly position | Ordered asset references | Arrange the original post and nested comments in a readable sequence. |
Inside the system / 01
Reuse the work that repeats
Posts, comments and replies all needed the same core work: clean the text, generate audio, build a graphic and combine them into a short clip. Noah made those recurring steps reusable across the production process.
A Google Sheets replacement table supplied spoken equivalents for abbreviations and other terms. A voice could be passed explicitly for a stage; otherwise the recorded selection logic chose from the configured voice records. Last-used fields rotated voices and avatars, reducing adjacent reuse.
Inside the system / 02
Templates change with the level of the discussion
A post, first comment and nested reply used different slide templates. Replacement tags carried source text and display values into each layout. Image placeholders identified where an avatar belonged. The chosen voice and avatar were stored against the asset so a returning speaker could remain consistent.
One recorded conversion path exported the generated slide as a PDF and used CloudConvert to produce the graphic. Audio and graphic references then fed Transloadit to produce a clip. Those resource references accumulated in Airtable alongside the IDs connecting each asset to the discussion.
Inside the system / 03
Order is a data relationship
The assembly process began with the post, found comments with that post as their parent, then followed comment IDs into the reply levels. Assigning positions during this traversal allowed the clips to be concatenated in discussion order. A completed collection of clips was insufficient if those clips appeared in the wrong sequence.
Audio duration supplied another production input. The system summed clip lengths to guide when to stop adding material. Historical thresholds and delays changed during development; their presence does not establish consistent finished duration or a production throughput figure.
Inside the system / 04
Concurrency remained a design question
A later configuration session described shared mobile and desktop triggers and the need to separate variants. It also introduced a last-used row mechanism for the text-processing tables. Selecting the oldest row and updating its timestamp was intended to reduce interference between runs.
The recording proposed trying multiple items together. It did not establish that this mechanism safely isolated every concurrent run. The useful implementation detail is the explicit management of shared state, with the limits of the recorded test preserved.
Within Redditology