# Autogen Show Notes with Jenn Junod

> Anthony Campolo and Jenn Junod explore an automated workflow for generating show notes, transcripts, and markdown pages for Teach Jenn Tech.

- **Collection:** Video
- **Published:** 2024-04-10
- **Author:** Anthony Campolo
- **Canonical URL:** https://ajcwebdev.com/videos/autogen-shownotes-jenn-junod/
- **Markdown URL:** https://ajcwebdev.com/videos/autogen-shownotes-jenn-junod/index.md
- **JSON URL:** https://ajcwebdev.com/videos/autogen-shownotes-jenn-junod/index.json
- **Channel:** [Anthony Campolo](https://www.youtube.com/@ajcwebdev)
- **Original URL:** https://www.youtube.com/@ajcwebdev
- **Original Label:** Watch original

---

## Episode Description

Anthony Campolo joins Jenn Junod to map out a lightweight pipeline for auto-generating transcripts, show notes, and markdown pages from video content.

## Episode Summary

Anthony Campolo and Jenn Junod reconnect after a break from regular livestreaming and use the session to revisit two long-running problems: creator burnout and the tedious manual work required to publish usable show notes. Jenn explains why maintaining transcripts, summaries, thumbnails, and cross-posted uploads across Teach Jenn Tech and her other projects became unsustainable, while Anthony describes his evolving AutoShow workflow built around yt-dlp, Whisper, markdown prompts, and Claude. Rather than fully rebuilding Jenn's site on stream, they inspect her old Astro repos, decide to split her projects into simpler separate properties, choose a fresh Astro starter, and then focus on the automation pipeline itself. Anthony demos how he extracts audio, transcribes it locally, pulls YouTube playlist metadata into JSON, generates markdown frontmatter, and feeds cleaned transcripts to an LLM for descriptions, summaries, and chapters. By the end, they have a clearer plan for reviving Teach Jenn Tech with a more sustainable publishing process and a future path toward making the workflow usable for non-technical creators through a web UI.

## Chapters

### 00:00:00 - Catching Up and Returning to Livestreaming

Anthony and Jenn open by talking about how long it has been since either of them regularly streamed on their own channels. Both frame the break as necessary rather than accidental, with Jenn describing the pressure she had put on herself to keep a rigid schedule and Anthony reflecting on how perfectionism made his own content harder to sustain over time.

That leads into a broader conversation about what changed in their work. Anthony explains how StepZen, QuickNode, JavaScript Jam, and later freelance work for Dash reshaped where his time and energy went, while Jenn talks about focusing more deeply on work and technical learning. The opening section establishes that the stream is as much about rebuilding a healthy process as it is about rebuilding a website.

### 00:11:09 - Astro, Databases, and Coding in Codespaces

Once they shift into the day's goal, Anthony revisits the problem that had stalled Jenn's earlier Teach Jenn Tech site: she wanted Astro to work cleanly with a database-backed workflow before Astro had a good database story. Jenn adds that her own stack and priorities also changed, including a stronger focus on Python and browser-based development through Codespaces.

From there they branch into a short but useful tangent on coding in the browser. Anthony argues that cloud development environments are still the long-term direction for a lot of people, especially when local Python setup remains frustrating, while Jenn notes that Codespaces has made learning and experimentation more manageable. That context helps explain why they decide not to force the old architecture back into place.

### 00:17:15 - Why Manual Show Notes Broke the Workflow

Jenn shares her current site and walks through the publishing routine she had been trying to maintain for Teach Jenn Tech and Shit You Don't Want to Talk About. The process involved generating transcripts in Parrot, embedding videos, copying text into ChatGPT for summaries and links, uploading separately to YouTube, and then repeating the same cleanup across multiple platforms.

Anthony immediately recognizes this as the exact pain point his automation work is meant to solve. Jenn explains that even after spending weeks processing dozens of episodes, the workflow was still too expensive and too repetitive to keep up with. That makes the stream's theme concrete: they are not chasing automation for novelty, but to remove the manual overhead that kept the site from ever feeling finished.

### 00:27:07 - Starting Fresh with an Astro Template

After reviewing old repos and abandoned experiments, they decide the best move is to stop trying to salvage every earlier version of Jenn's site. Anthony recommends starting from a maintained Astro starter instead of rebuilding the visual and structural foundation from scratch, and the pair compare options like AstroPaper before settling on AstroWind.

The discussion stays grounded in practical tradeoffs rather than design preferences alone. Anthony emphasizes that a static site starter is useful because Jenn's markdown content can survive visual redesigns later, and Jenn agrees that professional-looking defaults matter more right now than reinventing the entire stack. This chapter marks the point where the stream stops mourning unfinished work and starts choosing a workable path forward.

### 00:34:58 - Introducing yt-dlp and the AutoShow Pipeline

Anthony pivots from site design to the automation system itself and introduces the blog post and scripts behind his show-note workflow. He explains that yt-dlp does more than download media: it can pull useful metadata from individual videos or entire playlists, giving him a structured source for titles, dates, URLs, thumbnails, and other information needed to generate markdown pages.

Jenn adds what she normally expects from show notes, including summaries, chapters, and link extraction from chat, which gives Anthony a clear checklist for the tool. He frames the current project as two connected pieces that are not fully wired together yet: one path creates markdown and metadata, while another path transcribes audio and prepares the prompt that an LLM can turn into polished written output.

### 00:40:17 - Local Transcription and Playlist Metadata

As Whisper runs in the background, Anthony explains the realities of local transcription. Large models have to be downloaded ahead of time, silent sections can produce weird hallucinated output, and the tool still needs post-processing before the text is pleasant to read. Even so, he sees the local-first approach as worthwhile because it keeps costs near zero and makes bulk processing possible.

He then shows how playlist-level metadata extraction works. Every YouTube channel has an uploads playlist, and once he has the playlist ID he can use yt-dlp to create JSON files for every video with clean, date-prefixed filenames. That moves the conversation from one-off automation toward a repeatable publishing system that could eventually process an entire catalog instead of a single episode.

### 00:48:02 - Turning Metadata into Markdown with Scripts and Regex

Anthony walks Jenn through the Node script that converts raw video metadata into markdown frontmatter. He explains why he avoids using raw video titles as filenames, how he normalizes upload dates, and why regular expressions matter in this workflow even if they are not a tool he feels fully fluent in writing from scratch without help.

Jenn asks for a refresher on what regex actually does, which gives Anthony a chance to explain the pattern-matching role it plays in sanitizing titles and reshaping dates. The exchange keeps the stream aligned with Jenn's audience: instead of assuming prior familiarity, they pause on the scripting details that make the automation useful and understandable for someone still building confidence with these tools.

### 00:54:59 - Prompting Claude for Descriptions, Summaries, and Chapters

With the transcript prepared, Anthony shows the prompt template he uses to ask an LLM for a short description, a longer summary, and timestamped chapters. He points out a practical limitation he has discovered through experimentation: long episodes often confuse the model unless he explicitly tells it where the final timestamp is, so part of the workflow is designing the prompt to keep the model grounded.

He also compares Claude and ChatGPT, noting that Claude 3 is giving him the best output at the moment. When a generated summary misspells Jenn's name, he uses that mistake to highlight an important principle: if the transcript is wrong, the show notes will inherit those errors. The value of the system depends on cleaning the transcript well enough before the LLM ever sees it.

### 01:00:46 - Importing the Output into Astro

In the last stretch of the stream, Anthony demonstrates how the generated markdown can be dropped into an Astro content collection. They work through a frontmatter mismatch, add a little structure for headings, and confirm that even a rough first pass already looks far more usable than the ad hoc publishing process Jenn had been fighting with by hand.

This chapter brings the technical pieces together. The markdown files exist, the LLM output looks usable, and the remaining work is mainly about joining the two halves of the pipeline more cleanly. Instead of ending with a vague idea, the stream closes with a concrete architecture for how Teach Jenn Tech content could be published in a repeatable way.

### 01:04:11 - Accessibility, Product Direction, and Wrapping Up

As they wrap, Jenn reflects on why the topic matters: generating show notes is not just a convenience issue for her, but a communication and accessibility issue. Anthony describes how he already uses the same tooling to help his wife with video-based work by producing transcripts, chapters, and takeaways she can build on in her own writing.

They end by talking about where the project has to go next. Right now the CLI makes the workflow powerful but still too technical for most creators, so the natural next step is a website with a simple input box that hides the complexity behind the scenes. That would require paid APIs and some kind of product model, but both of them leave the stream seeing a realistic path from personal automation script to creator-facing tool.

## Transcript

[00:00:01] - Anthony Campolo

Hello, my YouTube error. Oh no, what?

[00:00:05] - Jenn Junod

No YouTube error. It's, it started on the Twitch though, I think. I think to start on Twitch. Is it working?

[00:00:14] - Anthony Campolo

No, it did start on everything except YouTube. I've never, I've never seen this happen before.

[00:00:19] - Jenn Junod

Yay, it is, it is live. It is doing the things. We made it. When's the last time you livestreamed?

[00:00:30] - Anthony Campolo

Apparently a long time since it's broken. Well, I've been doing some livestreaming for Dash actually, so I've done a bunch of livestreaming these last couple weeks, but the last time I did AJC and the WebDevs, which is where we are— hello everyone, welcome to AJC and the WebDevs with Jenn Junod— over a year ago, like a year and a half or so ago.

[00:00:52] - Jenn Junod

Okay.

[00:00:52] - Anthony Campolo

Yeah, it's been a while. I think it was probably last summer actually, because I had— I was streaming still past when I had stopped. I stopped doing FS Jam like a year and a half ago, and then the streaming— let's see, the last one was with, yeah, Brandon 10 months ago.

[00:01:11] - Jenn Junod

Okay.

[00:01:13] - Anthony Campolo

Yeah, I did a couple, uh, I guess, a couple streams here and there. Um, I got to be on Ryan Carniato's stream, which was like the last like really good big stream I hadn't been on that I really wanted to be on. So I got to show him Redwood, do like a 5-hour marathon stream with him, which was epic. And then I went on Dev's stream. I went on Ben Holmes's stream. I'm about to be on Ben Holmes's stream again. So yeah, I've been doing kind of stuff here and there, but haven't been kind of doing my own thing. And you're in a similar boat. You kind of taken a break from Teach Jenn Tech, which we are also streaming to right now, I believe. So, oh yeah, let me go there. Yes, we have Ben!

[00:01:53] - Jenn Junod

Oh my God, what's up, Ben?

[00:01:55] - Anthony Campolo

Someone else who had the epic stream that he took a hiatus from. Some Antics hasn't done anything in a while.

[00:02:02] - Jenn Junod

It's needed, it's needed.

[00:02:05] - Anthony Campolo

The gang all back together. Oh, that makes me so happy. Yeah, thank you for being here.

[00:02:09] - Jenn Junod

Do you want to come stream with us, Ben?

[00:02:11] - Anthony Campolo

Like, I'm just gonna volunteer you, like, if you want to come on stream, like Um, yeah, I'm gonna keep saying it's on hiatus so I can keep pretending like one day it'll come back.

[00:02:23] - Jenn Junod

I totally get that. I totally get that.

[00:02:25] - Anthony Campolo

Yeah, and no worries, no worries, man.

[00:02:27] - Jenn Junod

Yeah, I get that.

[00:02:28] - Anthony Campolo

But, um, yeah, so what's up? What's up in your life, Jen?

[00:02:33] - Jenn Junod

Uh, wow, okay, it's been 5 months since I streamed. I think it's been a hot minute. I was planning— it was kind of funny— I was planning on going back pretty like, oh, okay, I'll take, you know, Christmas off, the holidays, things are stressful. And then I was like, okay, I really want to restart my podcast. I'm going to put Teach Jenn Tech on the sidelines. Like, I'll get there. And it was just, we were talking about this offline, but I was putting way too much pressure on myself more than like anybody else was. And because I was like, to be successful, you have to do it at the same time every single week.

[00:03:13] - Anthony Campolo

And do you know this person?

[00:03:17] - Jenn Junod

Yes, yes. Hello, Sarah. Uh, and welcome. I think your husband just messaged me. Yes, if I'm on the CT dimension.

[00:03:33] - Anthony Campolo

Um, I was going through my—

[00:03:36] - Jenn Junod

yeah, so it was It was a lot of like, I couldn't keep— I was also not as focused with Teach Jenn Tech as I was with work because with work I was very getting into a very, very technical field and I still am and trying to balance that with things that don't necessarily relate to it and learn two different tracks. I wasn't able to keep up with both at the same time. That, yeah, I had to kind of go, what am I going to work on? What am I going to focus on for 2024? And I— it's weird. I was like, I'm never going to livestream again. And then I'm like, I'm actually kind of excited to livestream.

[00:04:28] - Anthony Campolo

I haven't livestreamed in a long time.

[00:04:30] - Jenn Junod

And it brought the fun.

[00:04:31] - Anthony Campolo

It is fun.

[00:04:32] - Jenn Junod

Yeah.

[00:04:33] - Anthony Campolo

Yeah.

[00:04:33] - Jenn Junod

It is, it is, it is, it is a lot of fun.

[00:04:37] - Anthony Campolo

So it's fun when you, like you say, don't put too much pressure and stress on yourself because when you're doing it just for you, and that's what I was telling you, you know, you gotta just keep doing it, but do it for you. That's like the good balance to strike. Cause you know, we, we, it's good to have like high expectations and it's like in one sense put pressure on yourself cause that's really what like any high level achiever the reason why they're a high-level achiever is usually because they are way more critical of their own output than most people. But that also can lead to like a lot of neuroses, which is not healthy either. Like with FS Jam, I would spend so long editing the episodes, just make them like so perfect.

[00:05:18] - Jenn Junod

And then really quick, I'm going to be so rude and I need to interrupt and I need to tell you this, especially Sarah is still here. Sarah and Jen need to be friends.

[00:05:28] - Anthony Campolo

Okay, uh, this is other Jen. For people who don't know, my wife's name is Jen.

[00:05:34] - Jenn Junod

His wife's name is Jen. And so she sent me a Discord message, so I remember. Yes, and I really need to say that. And Sarah, I will introduce you guys because you definitely need to be friends. They're both writers.

[00:05:47] - Anthony Campolo

Oh great.

[00:05:48] - Jenn Junod

And, uh, they do really cool writing. Anyway, please continue. Yes, no, thank you.

[00:05:53] - Anthony Campolo

No, thank you for interrupting. Always looking for more friends for Jen. So that's great. But yeah, I mean, I had started FS Jam back in 2020 and then had done it all throughout while I had my StepZen job and was able to balance those pretty well. And then once I joined QuickNode, it's like in your situation where you're having to learn a lot of really specific technical stuff, and I'm sure you didn't want to just bring on database people every single day to Teach Jenn Tech because I kind of did, but not everybody wanted to watch that. Exactly. So I didn't want to just bring a bunch of blockchain people onto FS Jam. I knew that no one would really appreciate that or enjoy it, even me. So I ended up kind of falling off on a lot of things. And then I joined Edgio at the beginning of 2023, kind of with the idea of tying all these things back together. But what ended up happening is basically all of the energy and time and brain space I would have put into FS Jam then went into JavaScript Jam, which ended up being very similar in terms of the content we created and the guests we interviewed and stuff like that. So that was cool. And I did that for all of 2023 basically. But then JavaScript Jam got kind of canceled by the company because the company went off a cliff and we weren't really, admittedly, able to show a whole lot of direct value in terms of what we were bringing to Edgio, who brought a lot of value to the JavaScript community. That's for sure. But not so much translating that directly into business dollars. So they decided to kind of de-invest, whatever the term is. And Scott had been laid off, so he was the person I was kind of running the whole thing with. And I kept doing it up until when the company went under, up until when I quit. So I quit then. It's the next part of that story. But still talking to Ishan about possibly continuing it if, um, Edgio wants to like pay me a contract role. But anyway, this is all minutia stuff. So yeah, so I quit Edgio about a month ago because I just wasn't very happy there. I wasn't really getting to work on anything that interested me or I felt was even within my skill set because they were kind of pivoting to security. So I'm going solo now and doing freelance contract kind of work for Dash. So their DAO is paying me to create stuff for Dash, which is a cryptocurrency. So that's pretty cool. And then I'm writing blog posts for Everfund, which is Chris, my co-host from FSJam, his company. They want to write some articles about nonprofits and AI and stuff like that. So yeah, so I've got some things I'm kind of doing. And that also means I have kind of more free time now and just mental space to do things like streaming again and bring FSJam back and trying to reconnect with all the people I used to hang out with and stream and make content with back in 2021, 2022 that I've kind of fallen off on.

[00:08:47] - Jenn Junod

Wow.

[00:08:48] - Anthony Campolo

So Ben, even though you're not doing semantics anymore, I would like to have you as a guest back here sometime if you want. I don't even know what we were talking about, but we could always— I could always throw websites at you and have you make me do better accessibility on them. That's always fun.

[00:09:05] - Jenn Junod

Todd Libby was on my podcast, Shit You Don't Want to Talk About. Oh, you know, uh, I'm going to the website and grabbing it for you. Um, it was, it was really good. It was a, um, I will say that is a, I feel like a big thing that I did not There's things I've learned after being in DevRel for a year now and like working in a, uh, at a company for a year is making content can be a lot of fun. Making content can also take away the fun of it.

[00:09:51] - Anthony Campolo

Uh, I think especially if you have to create content you're not interested in.

[00:09:56] - Jenn Junod

I'm like, I'm interested in it. It's more of, again, I was putting way too much pressure on myself for it, and, um, which made it really difficult to keep up with. And but it was, uh, from the stream that we did, um, Ben— or Ben, you were around for it, that's why I keep saying to you, because Ben was the original OG that did accessibility stream with me. Um, but it was the one with Graham that Todd listen in on, and then was like, yeah, I want to be on the show. And I was like— he told me he listened to all of the episodes, and I was like, you listened to the entire—

[00:10:39] - Anthony Campolo

what, how many are there, really?

[00:10:42] - Jenn Junod

60 plus?

[00:10:44] - Anthony Campolo

Yeah, it was a good amount.

[00:10:45] - Jenn Junod

And I was just like, oh my God, it's so cool. So it was, uh, yeah, yeah. But again, because Ben introduced me to so many random people— and thank you, Ben—

[00:10:55] - Anthony Campolo

Totally. Yeah, he was definitely a huge force in helping get the word out on a lot of those type of people.

[00:11:04] - Jenn Junod

Yeah. Yay. So what are we gonna do today, Anthony?

[00:11:09] - Anthony Campolo

So we are going to— you never finished the Teach Jenn Tech website. And so I wanna kind of work on that because I think you were pretty close, but the problem was you wanted to use a database with Astro. There was no way to do that. But guess what? Astro has a database now. Also, Learner's here. What's up, Learner?

[00:11:31] - Jenn Junod

Long time no see. What up, Learner? Yeah, it was more of I wanted— I specifically wanted Astro to work with Postgres for Aiven. Aiven for Postgres is probably what I'm saying.

[00:11:47] - Anthony Campolo

Postgres with Aiven, that wasn't even the issue. It could have been if you wanted to do MySQL with PlanetScale, it would have been the exact same thing.

[00:11:52] - Jenn Junod

It wouldn't have worked. Exactly. Exactly.

[00:11:53] - Anthony Campolo

They just didn't have a good way of working with a database.

[00:11:56] - Jenn Junod

Yeah, exactly. Yeah. So, and I haven't— also, as an update, I started focusing more on Python, and so that's been a fun, uh, change too.

[00:12:07] - Anthony Campolo

And how do you set up your virtual environments? I need to know.

[00:12:13] - Jenn Junod

Codespaces.

[00:12:16] - Anthony Campolo

So you code Python through the browser? Yeah, that's really smart because using Python locally is Pure nightmare fuel.

[00:12:26] - Jenn Junod

Yeah, it's, I mean, it's, it's had its, it's, it's had its challenges. It's had its challenges in learning all of that. But yeah.

[00:12:35] - Anthony Campolo

No, that's great. I've been, I was saying like 2 years ago, I interviewed a bunch of people who are working at companies like Gitpod and other things like Codespaces. And I was saying, this is the future. Like everyone's gonna code in the browser all the time. People are gonna learn to code through the browser. And I still think that's true. I think we're there for some people who code specific things and have specifically good internet connections. So it's kind of like small group of people are able to actually really do that effectively today. But more and more people will be able to do that in the future. The NASA music on stream was so phenomenal. Do you know what this is referring to?

[00:13:16] - Jenn Junod

It's a stream. Learner is like the best at watching streams is what I've decided. I'm like, dude, I do not keep up with people.

[00:13:29] - Anthony Campolo

Be One Mind, other long time fan here. Yeah, no, I see Learner in most of the streams I go to. I try and still watch some streams. I still check out Nicki T's. I still check out, um, who else was I watching recently? Um, yeah, she's in Light Source every now and then, but I'm less interested in kind of like what's the new tool.

[00:13:58] - Jenn Junod

I just ignore everybody. I'm like, y'all, I'm playing, uh, Dragon Age and putting together puzzles when I'm not working.

[00:14:06] - Anthony Campolo

Yeah, usually I have it on the background while I'm doing actual work. That's how I can still kind of keep it balanced. But if you were to actually sit down and watch all these streams, especially like a year or two ago when it was really popping off, it would have taken you like 5 or 6 hours a day and that would have been the only thing you were doing. So it's like, yeah, at a certain point you have to choose how you use it. Say like Discord servers, you know, I mean, I took a huge, huge step back from Discord and, and watching Twitch streams. And, um, yeah, it was, it was good, it was necessary, but also that was kind of how I was getting all of my social connections. Like all of my friends I was like making through those kind of things. And once I kind of stepped back from those, kind of felt like I had lost touch with a lot of my friends as well. So trying to figure out that balance is kind of what I'm working on now. But anyway, go ahead.

[00:14:54] - Jenn Junod

Yes, yes, go ahead, go ahead. I'm ready for whatever you're bringing next.

[00:14:59] - Anthony Campolo

Yeah, so we're probably not going to do the Astro database stuff today. That will be a kind of later thing. But that's one of the things I was like, I just want an excuse to learn Astro database. So we'll use your website as a test case for that as well. And then I have this basically workflow I've been creating that does a transcription and then like ChatGPT kind of like prompting thing to create show notes for either podcasts or videos like this. Cause, you know, I have so much content that I've created that's just kind of sitting around on different parts of the internet and most of it had not been transcribed. And this is something that, you know, Ben was really good about with Some Antics. He transcribed every single one of his episodes. Those, which I know took him a lot of time. So unfortunately, that's something that has always been hard to do unless you just want to fork out the money for a transcription service. But there's open source way to do that pretty well enough now. You still need to make corrections and they still don't really put a whole lot of punctuation in and they don't separate speakers, but it gives you just like a raw dump that can be analyzed for other things. So I showed you how to use this on your stream actually. So we did the episode on Whisper. Do you remember that?

[00:16:12] - Jenn Junod

Yes, I'll see if I can, uh, find— oh, you got it? You got it already? Because that is, um, just as an update for everybody who has been like, Jen, you've rebuilt your website like 20 million times on stream specifically, uh, I actually took a step back and put it all on Squarespace. I took, I took away all of the coding and I was like, yeah, no.

[00:16:45] - Anthony Campolo

And that is because I know that's for Shit You Don't Want to Talk About, but is that also for Teach Jenn Tech? Are there links to old episodes?

[00:16:51] - Jenn Junod

It, it, so I, I feel like this might make a bit more sense on what the process is so you can see where it needs help because y'all, it, it needs some love. We'll definitely go with that. So give me a second, share my screen. Um, okay. Um, will you please share my screen, sir?

[00:17:14] - Anthony Campolo

Yes.

[00:17:15] - Jenn Junod

Yay! Hey, it's my website and my face. Um, the way it started is I went through and I was like, I don't, I don't even know what to do with my website, but I started doing every single episode of Shit You Don't Want to Talk About. And I would go through— there are 60+ episodes, and I auto-generated the show notes and then embedded the— or their— the transcript. I auto-generated that from a tool called Parrot, and then I embedded it, and that, that was it. And I did all like 60+ episodes. It took me like 2 weeks to get this done. It was exhausting. And I was like, this is the same time— this was the end of November when I was like, oh, I'm gonna do this for Teach Jenn Tech while I, uh, and I'll take a break while I get this done. And it, it's a lot of updating because I was updating all of my thumbnails, I was updating all of the transcripts.

[00:18:20] - Anthony Campolo

And if I go here Yeah, this is why this is such a perfect use case for what I'm trying to do. Is I'm trying to create a workflow to automate the vast majority of this process.

[00:18:31] - Jenn Junod

So it, it like, I got the first one done and-ish where I embedded the YouTube video and I put it all the transcript in there and stuff like that. But my YouTube still kind of struggled. Is everything that's done in these was— and let me show you Parrot because this was like so many different steps. Like this took many, many, many, many steps and it's expensive. It wasn't, um, so you have to like—

[00:19:06] - Anthony Campolo

this will involve hopefully one step. You just give a URL and it will be free.

[00:19:11] - Jenn Junod

You have to upload it and then you have to wait and then you have to like copy and paste it and, and like do so much of it. And then I had to paste it in here, and then I had to go back to YouTube and be like, oh, okay, let me— I'll go to a recent one, more recent. Like, this is— no, November 20th was apparently the last ones. And then I had to put it all in— oh, then I had to put it into ChatGPT.

[00:19:41] - Anthony Campolo

And what were you put all using that for— what did you have it out for?

[00:19:45] - Jenn Junod

The summary. For the summary and links. And then I had to upload it to YouTube because I was just streaming to Twitch, because that was like an added complication on it of YouTube gets better views if you upload it to YouTube instead of just stream to YouTube. And yeah, and then trying to share it and social media this shit, it just— it was— I know No, it's a lot.

[00:20:11] - Anthony Campolo

Yeah.

[00:20:12] - Jenn Junod

So I, that's, that's where we landed of it never really got done. Some of the transcripts got done and I never built the website out for it because it was too much.

[00:20:25] - Anthony Campolo

So I guess a couple of questions for me that will help guide this is do you want there to be Teach Jenn Tech and Shit You Don't Want to Talk About both under the banner of JenJenod.com or would you want a separate website for Teach Jenn Tech?

[00:20:39] - Jenn Junod

I thought I wanted them all under the banner of Jenn Junod, and I'm like, I don't. I want Jenn Junod to just be a landing page that can link out shit.

[00:20:48] - Anthony Campolo

And I need to create— you don't want to talk about— and Teach Jenn Tech to both be different websites and Jenn Junod be a third one?

[00:20:55] - Jenn Junod

Yeah, yeah. I'm not excited about that, but after doing it so many different ways, it's like, that's basically— it's gonna be the best bet. Because Jenn Junod is never like, that website's barely ever gonna change. It's gonna be a simple one-page landing page. And then Teach Jenn Tech will do all my tech stuff and then Shit You Don't Wanna Talk About will do all its stuff. But yeah, it needs to not be all under one.

[00:21:22] - Anthony Campolo

So do you still have the last Astro site you were building for Teach Jenn Tech? If we pull that up. It should still be on your GitHub.

[00:21:34] - Jenn Junod

I was going to say it's probably still on my GitHub.

[00:21:37] - Anthony Campolo

I don't think you delete things from your GitHub very often.

[00:21:41] - Jenn Junod

I don't. That is—

[00:21:42] - Anthony Campolo

You're not supposed to. People will tell you not to, but I've deleted so much stuff from my GitHub because otherwise I would just have 500 repos.

[00:21:50] - Jenn Junod

Oh, hello.

[00:21:52] - Anthony Campolo

Ben Myers.dev being redesigned. Exciting. No way, it looks so good though. Are you getting rid of the purple? Is that it? Do you decide you hate purple?

[00:22:02] - Jenn Junod

Ben, don't, don't get rid of the purple. Look, we're both like— he's wearing purple, I have purple hair. Like, you can't get rid of the purple. Okay, you really can, like, do what you want. Um, so let me say that.

[00:22:14] - Anthony Campolo

Is it like purple? Yeah, called it. That's amazing.

[00:22:20] - Jenn Junod

That's funny.

[00:22:22] - Anthony Campolo

It's literally just gonna be a purple square. With purple text. And he's like, yeah, I've decided purple is more important to me than accessibility. I've created the hierarchy: purple than accessibility. So the text in the background needs to be purple. Don't do that, people.

[00:22:38] - Jenn Junod

What is this one from? I think this is still live, but I don't think it can—

[00:22:44] - Anthony Campolo

do you share your screen?

[00:22:48] - Jenn Junod

Yeah, I can. Uh, and I think that's been a big part of it too, is I was like, I'm gonna make this the coolest thing possible. And I'm like, trying to learn that and make it— trying to create content while you're learning is not like the easiest thing to do. Like, Roy and I worked on this really hard.

[00:23:11] - Anthony Campolo

Um, yeah. There we go. So this is Jenn Junod forward slash site.

[00:23:21] - Jenn Junod

Um, yeah, but I don't— oh, it had— it has some stuff.

[00:23:27] - Anthony Campolo

Oh, this is not what I was talking about. You had another one. You had an Astro site.

[00:23:32] - Jenn Junod

I know, I have a lot of— that's why we're—

[00:23:35] - Anthony Campolo

I, I refuse to use Next.js to build a static site.

[00:23:39] - Jenn Junod

Was it this Oh yeah, it was this one.

[00:23:45] - Anthony Campolo

This is one— this is what I was thinking of.

[00:23:47] - Jenn Junod

It didn't get very far. It has more details coming soon.

[00:23:51] - Anthony Campolo

Go back to the GitHub real quick. So this is website instead of site. Uh, clever.

[00:23:56] - Jenn Junod

Yeah, because naming is one of the hardest things about being a developer, is what I've decided.

[00:24:01] - Anthony Campolo

I would call it TJT, Teach Jenn Tech. That's what the repo should be called.

[00:24:06] - Jenn Junod

Um, let's see. Let me see. Let me— hold on, hold on. Let's go home.

[00:24:10] - Anthony Campolo

Just type in your URL and you can see if it's already taken.

[00:24:15] - Jenn Junod

I know, I was like, I have so many different variations.

[00:24:18] - Anthony Campolo

No, not taken. You also didn't— do you still have the teachden GitHub? Uh, yeah, yeah, that I would recommend probably getting rid of. There you go.

[00:24:35] - Jenn Junod

And it's on org. It's cool. It's fine. We'll go back to me.

[00:24:40] - Anthony Campolo

There's also a website on here. Oh yeah, here we go. You have a whole separate one here.

[00:24:49] - Jenn Junod

What is that one?

[00:24:50] - Anthony Campolo

Yeah, because, uh, teach-jazz-gen-tech forward slash website. Well, I think actually this might have been the one I was thinking of.

[00:25:03] - Jenn Junod

Let's see, this might have been the first one I was working on. Oh yeah, this is all— I loved this. This one I worked so hard on, y'all. Like, I worked—

[00:25:15] - Anthony Campolo

I'm in here so hard on this one.

[00:25:20] - Jenn Junod

Like, I worked so hard on this one. I was I just didn't like the way it looked. I wanted it to look like this one, so I started from scratch. All right, and we're very grateful for you, Lerner.

[00:25:37] - Anthony Campolo

I think they're both Astro sites.

[00:25:39] - Jenn Junod

They are both Astro sites.

[00:25:40] - Anthony Campolo

Yeah, so under the hood they're going to be fairly simple, or similar, I mean. At all.

[00:25:50] - Jenn Junod

Baby Jen doing stuff. So cute. Anyway, don't mind me, y'all. These are down memory lane.

[00:26:00] - Anthony Campolo

Yeah, so this is from— this was March 2023. Yeah, last commit on this.

[00:26:07] - Jenn Junod

Oh yeah, because I got my job at Aiven, and then I also got really, really sick at that point. I got pneumonia and bronchitis and COVID and got stuck in Finland. It wasn't pretty. So, uh, I'm, I'm down to do— I'm down with starting from scratch, by the way. Like, if we want to just like—

[00:26:31] - Anthony Campolo

yeah, that's what I'm trying to figure out, whether we should, because it looks like you were going off of this brutal, um, Astro starter. I do think going with Astro starters is a lot of times a good way to go. That's how I built my website. And then I kind of slowly tweaked it to make it look slightly different. So, and I mean, a couple people now use the same template. So I guess the question is, do you still like the look of the, the Brutal one? So let's go, let's go to the theme itself real quick and see if we want to just— I would say we should either restart with this theme or pick a different theme.

[00:27:07] - Jenn Junod

I'm gonna say let's pick a different theme. We're gonna— let's just Start from scratch. So, I guess that means I have to go to Astro and look at some themes.

[00:27:20] - Anthony Campolo

Yeah, I've looked at them a whole bunch of times. Some of the ones that are more popular— actually, try Astro Wind first. It's gonna be Astro and Tailwind.

[00:27:35] - Jenn Junod

I'm just gonna look at them all.

[00:27:42] - Anthony Campolo

Astro Paper is pretty good, but it just looks like a blog. I don't think that's really what you want.

[00:27:48] - Jenn Junod

I don't, I don't know. There's so many. There's so many. What, what do y'all think we should use?

[00:27:55] - Anthony Campolo

So this is what, this is why if I use a starter or a template from this, usually I'll look at what are the most popular, most starred ones, because that means a lot of people probably contributed to it and it may still be actively maintained. So just Google real quick AstroWind, one word.

[00:28:12] - Jenn Junod

Okay, let's get AstroWind.

[00:28:17] - Anthony Campolo

Yeah, and the good thing with Astro is that because it's just like a static site generator, if you end up building something out, you don't really like the look of it, you probably just have like markdown files that you can, you can, uh, switch out. So it looks kind of like a tech site, obviously, but it does look— it looks professional, right?

[00:28:36] - Jenn Junod

Yeah, yeah, I'd be down for this because I feel like this has a lot to do with what I was trying to do with my very, very first site, right? Yeah, way back when. Oh, okay, well, let's get this template. Here we go. And let's see, let's fork it.

[00:28:57] - Anthony Campolo

Yay! So you can click use the template, I think, is what you want to do, not fork it, I'm guessing. Let me go back real quick to the GitHub. Let's see where it says use this template.

[00:29:11] - Jenn Junod

Is this like this? I feel like we don't want to do open in Codespace.

[00:29:15] - Anthony Campolo

I mean, like, we could. Well, let's do the— let's make the repo first, and then we can do that.

[00:29:21] - Jenn Junod

Okay, fine. We're going to call this TJT.

[00:29:24] - Anthony Campolo

Yes. Okay.

[00:29:26] - Jenn Junod

It's going to be public. Generating. Here, y'all. I will put it— I'll put it in the chat. Look at that. Oh, my gosh. We have— oh, I have to go set it up with Vercel and stuff now.

[00:29:53] - Anthony Campolo

You don't have to. You can deploy Astro wherever you want. It's just going to be configured for that. Out of the box, but it doesn't matter where—

[00:30:01] - Jenn Junod

if you—

[00:30:02] - Anthony Campolo

so I guess you have any— I guess since you have Squarespace, you probably don't have any just like general sites running on something like a hosting service anywhere. I know I showed you how to use Vercel. Have you used Netlify yet? Have you?

[00:30:14] - Jenn Junod

Yeah.

[00:30:14] - Anthony Campolo

So you have used Cloudflare?

[00:30:17] - Jenn Junod

No.

[00:30:18] - Anthony Campolo

Yeah, so, so here's, here's why I, I use Cloudflare. I don't use Netlify or Vercel. The reason why is because Cloudflare, uh, is just more built out for like everything you can, especially like hosting your, your DNS. So you can host domains, or you can, you can connect with domains on Netlify or Vercel, and I think you can even host them too. But those are just like very small pieces, and the main thing is about like deploying the site for that. So I just find that it's a lot, like, just working. If you have a whole bunch of websites, then Cloudflare is kind of the way to go. If you just have one site, it really doesn't make that big of a difference. So if we want to host this on like Netlify or Vercel, yeah, it's kind of whatever either way. But, um, we don't need to worry about any of that right now.

[00:31:09] - Jenn Junod

Fair enough.

[00:31:10] - Anthony Campolo

I feel like I need to do this in like, uh, Codespace though, because you can just put your name in there, kind of get rid of the boilerplate.

[00:31:20] - Jenn Junod

Yeah, the setting up your code thing.

[00:31:24] - Anthony Campolo

Because this template comes with a whole bunch of extra crap, some of which is not even built out yet. Like, they have all these extra pages that are like for different SaaS type stuff. If you click it, it just says coming soon.

[00:31:36] - Jenn Junod

And, uh, I will say this is like a big thing about like being on the more of the infrastructure side is I'm like Dude, I haven't touched this stuff in forever. Am I going to even remember how to do any of it? We'll see.

[00:31:51] - Anthony Campolo

Let's just go to the homepage first.

[00:31:55] - Jenn Junod

I'm going to do all the installs really quick.

[00:31:59] - Anthony Campolo

Stop, stop.

[00:32:00] - Jenn Junod

All the recommended.

[00:32:01] - Anthony Campolo

Are you installing all of them? You definitely want the Astro one. That's one of those that I use.

[00:32:06] - Jenn Junod

Okay, go to the homepage. Is that what you said?

[00:32:12] - Anthony Campolo

Just go to the homepage? Yeah, so src. And then it should be index.astro under pages. Yep. Index.astro. And then in your terminal, npm run dev. You can X out that other thing in the bottom right, too. Oh, sorry. npm i first.

[00:32:43] - Jenn Junod

Npm i run dev?

[00:32:44] - Anthony Campolo

Yeah, just npm i. That's it. Just the single, just in it with a space in between for that's installing your dependencies. npm space i. Yeah.

[00:32:54] - Jenn Junod

Here we go.

[00:32:55] - Anthony Campolo

I can tell you've been doing Python for a while.

[00:32:58] - Jenn Junod

I'm like, what am I doing again? Huh? Wait, what?

[00:33:01] - Anthony Campolo

What? Totally. Yeah. The, I, I have all my stuff configured. So when I open my terminal, I press letter A and that aliases to going into my my blog directory, opening the terminal, and installing my dependencies all at the same time. So I just do one letter and then I'm in. Now npm run dev. Yep.

[00:33:20] - Jenn Junod

I will say I don't remember, like, why do people not just use Codespaces for everything?

[00:33:31] - Anthony Campolo

A couple reasons. It's the internet latency makes things go slower. And if you have a large enough project, it just won't work at all.

[00:33:42] - Jenn Junod

Let's go look at Ben's stuff. I'm getting distracted.

[00:33:47] - Anthony Campolo

That's cool. He's talking about aliasing your directories the Unix way. Yeah, this is fancy. You should have bumped your font up. Yeah. Do you have any aliases set? Yeah. What Ben does is exactly the thing I have. CD into it. Remember, you always have to go to your code thing, which is like on your desktop or something.

[00:34:08] - Jenn Junod

Oh yeah, I set it up that it doesn't do that now. Yeah, like it does that, but I mean, it took a while and yeah, but all right, where did my Codespace go?

[00:34:20] - Anthony Campolo

Yeah, I started to make more aliases and just like work on like scripting and with ChatGPT I can have it generate all sorts of scripts. I can do all sorts of useful stuff for me. Before that I would have struggled to just like sit down and write myself. There are things I could have figured out, but the length of time it would take would almost not make it worth it. But now I have a way of kind of like getting better at scripting by working through scripts with ChatGPT. It's really nice, actually. I've learned a ton.

[00:34:48] - Jenn Junod

Nice. All right, so I got it open. This is what it looks like. Very exciting stuff. So many things to update.

[00:34:58] - Anthony Campolo

Cool. So we should actually stop here because, um, I want to do just in the last 20 minutes we have. I'm gonna share my screen and show how we're gonna kind of bootstrap this thing real quick. I'm just gonna close out all my stuff. A lot of stuff open. And there's this really cool tool called yt-dlp, I think it is. It's for downloading stuff from YouTube. So, if you're someone who has a YouTube channel at all, especially a dev YouTube channel that has a website, this thing is crazy useful. So, let me share my screen. And hopefully all my things work. Cool. Okay. This is a tool that lets you— I mean, like, the— this README is like so massive, and if you look at the options, it just like goes on and on and on and on forever. So it's like pretty intimidating when you first start learning it. But just let me just show kind of like a simple thing you can do. So I have this blog post that we're going to be using: Auto-generate podcast show notes with YTDLP, ChatGPT, and Whisper. And this is the part of the flow that takes a video, transcribes it, creates a prompt for you, and then that will generate your, your show notes as well. And there's a separate part that I have mostly built out that's not in the blog post yet that shows how to do this for a whole playlist. Channel, and because you— every channel has a base playlist that is every video they have. So if you take that, you can take the playlist and you could generate a markdown page for every video, and then that will take the information from YouTube, the metadata, to do that. And then I'm gonna combine that with the part I have in the blog post and then just have it run that process on every single video instead of just running it on a single video. That you feed it. So that may have been super confusing. So I'm just going to walk through a couple, a couple things so you can see what I mean. The— let me actually take that link that you, you gave me. Um, can you drop that?

[00:37:36] - Jenn Junod

It's such a—

[00:37:38] - Anthony Campolo

in the private chat, actually, the, the YouTube one that you wanted me to start with. From your channel.

[00:37:46] - Jenn Junod

Yeah, the video. Hold on, hold please. I'm not a robot, bro.

[00:37:53] - Anthony Campolo

No, it's fine, take your time.

[00:37:56] - Jenn Junod

Share. I'm gonna put it in the regular chat, but I'll also put it in the private chat so that way people know what we're working on today.

[00:38:08] - Anthony Campolo

Yeah, I just needed that because you can't copy paste things if they're here, so I try and click it.

[00:38:11] - Jenn Junod

I know, it's so dumb. It's so dumb. StreamYard, come on.

[00:38:16] - Anthony Campolo

So this is— we've been friends for a long time. And what we're gonna do is we're gonna run my thing on it. So this is going to take the YouTube video and just extract out the audio because you only need the audio to run the transcription. So I'm going to copy paste some things. And then after that, this is the Whisper command, which runs the transcription. This will take a while. So after I run that, I'm going to show how to create the whole thing from the playlist. Okay, let's let that go for a while. And I don't think I shared this in the chat yet. So here's a question. When you have show notes for your streams or your podcasts, what information usually goes in there? I would say summary chapters, things like that.

[00:39:35] - Jenn Junod

Yeah, summary, any links that are mentioned during the show. And, um, because that's another thing— oh, that actually, that's a great call out. I was using a tool for Twitch chat downloader. Um, which I just pasted as well. And, um, because that would take all the links and then I would put it in there as well. Um, I don't know, what else do I put in them? It's been a hot minute. Let me look.

[00:40:17] - Anthony Campolo

Okay, I just had to do a couple things real quick because, um For this Whisper command to run, you need to clone the repo down, download the whole giant model, which is like 3 gigabytes, and that all takes a while. I just plop this into my folder for where I have this living on my computer, which I just use when I need something on the fly. If we look here, we're going to see it start transcribing real quick. That going. You, you, you, if you have like music or something at the beginning or just silence, sometimes it doesn't know what to do, so it just plops that in. Yeah, so yeah, yeah, so because you have thought it, it not, it could be anything, it just, it hallucinates, so it needs to, it just like needs to put some word in because it can't, or so if it knows it's music, it'll put audio or something like that, but if it can't figure that out, it'll just kind of throw some random some random word in. Like sometimes at the end of the video, if there's silence, it'll just repeat the last line like 6 times in a row or something.

[00:41:22] - Jenn Junod

Okay, okay, that's fine.

[00:41:25] - Anthony Campolo

So this won't put out— oh, it looks like you hopped in before I go live.

[00:41:34] - Jenn Junod

Before I—

[00:41:37] - Anthony Campolo

okay, that's, that's cool. So I'm gonna let that keep going. Now, this is still using YT-DLP, but what this is gonna do instead of downloading the video and turning it into audio or downloading anything at all, we're just going to analyze the metadata of the videos. And I need your playlist ID though, which I'm assuming is something you wouldn't know how to find offhand, but I've got— I know where it is because I was using— I already transcribed a couple of your episodes.

[00:42:19] - Jenn Junod

Oh, geez.

[00:42:21] - Anthony Campolo

This is not what I want, though. I have, I think, here. Okay, cool. Yeah. So I'm going to walk through this whole process of how this stuff came about real quick. So I'm not really gonna show any of this, but I just need the, the playlist id. Let's see. There we go. So every channel has a channel ID and every playlist has a playlist id. And once you have that, you can use YT DLP to do stuff. So there. So this is going to create— it says write info.json. That's going to create a bunch of JSON files. And then the -o, this is an output template. So what it's going to do is it's going to take the upload date and add the video ID after. And this is just because you want them to have unique names. but you don't just want it to do the default behavior, which is take the title of the video and make up the file. Cause then you have spaces, you have emojis, you have all this stuff in there like you don't want in your, in your titles. So this just gives you a nice clean sanitized title that also can then be, ordered chronologically because it starts with the upload date. So that's pretty, pretty useful.

[00:43:53] - Jenn Junod

So I'm gonna take this learner, learner just put, It's, uh, they think it's not hallucinating but just fabricating fake stories. In their opinion, it's like, uh, deep, uh, actual magic. Possibly, possibly. We will, we will find out.

[00:44:25] - Anthony Campolo

So hopefully this works. So you have 112 videos. It says 113 because for some reason the very last one shows a live thing. It's just like you're about to go live, but you're actually not about to go live.

[00:44:39] - Jenn Junod

Oh, okay. Well, that's fun.

[00:44:43] - Anthony Campolo

Yeah, let me, let me show you what I'm talking about. So if we go to this link that we just gave it, this is the, the playlists here. And if you go all the way to the bottom, you see this thing, Teach Jenn Tech livestream. I'm not sure why that's there. It just says livestream off. This may be if just people have livestreamed before, this is just always on afterwards, but I'm not sure. Or maybe someone's been waiting forever. They're just waiting there for you.

[00:45:14] - Jenn Junod

Is that on one of the Playlist or—

[00:45:18] - Anthony Campolo

so the playlist I'm looking at right now is called Uploads from Jenn Junod. So every channel has this by default. I don't really know how to find it though, aside from literally just figuring out the channel ID or the playlist ID and then putting in this URL here. The way I originally got the playlist ID was by having to use the YouTube API to basically query for the playlist ID from your channel, which I needed to find the channel ID Which I forget how I even found that in the first place. Some people, if they don't have a custom name, it will be their actual URL. But, um, if you do have a custom name, it takes that over. So this is all like YouTube under the hood kind of stuff. And the great thing about yt-dlp is that it lets you not have to figure all this stuff out. You just use a CLI tool that can help you get all this information without having to mess with it.

[00:46:11] - Jenn Junod

Put in the chat that, uh, that link.

[00:46:16] - Anthony Campolo

Really?

[00:46:19] - Jenn Junod

No, the, uh, the playlist.

[00:46:22] - Anthony Campolo

Yeah, yeah, because now I'm like, who's, um, whose channel is this message?

[00:46:31] - Jenn Junod

It was on mine and I forgot how to block people, so it's just gonna sit there. But am I being able to, or like, I blocked them, but I was like I think you are a mod. I was like, I don't remember how to kick someone and all that, so yeah, I gotta do mod view right now. Oh yay, thanks Ben! Yeah, Ben's a mod too.

[00:46:57] - Anthony Campolo

Oh great, awesome.

[00:46:58] - Jenn Junod

I don't, I don't, uh, it's like we're all mods here. I was like, there, yeah. I was like, I have 4 months and I never changed anybody. Um, you said you lost learner. Uh, I hope they provide blood pressure monitors in airplanes. Like, really? What?

[00:47:19] - Anthony Campolo

Have you heard of what's going on with Boeing? Oh yeah, but I'm not sure if that's what it's in reference to, but all right, whatever. I'm not too worried about it. It's fine.

[00:47:29] - Jenn Junod

Okay, I'm going and seeing, since this is my stream What is this? It doesn't even let me delete it off of my playlist. What is this? Like, I can't see it anywhere. Oh, there's one waiting in this live stream that does not exist.

[00:47:50] - Anthony Campolo

Okay, so check this out.

[00:47:53] - Jenn Junod

Okay, yes, you got me really distracted on the whole there's a random video. You're welcome.

[00:48:02] - Anthony Campolo

Yep. Okay. So, this is now what we got from the CLI tool. And this is stuff you could get from the YouTube API. And it basically just takes each episode and gives you all of the metadata. This file is actually like really, really long. Because it even includes things like video formats and every single type of thumbnail and all the captions. So, if you close those— Nice. 3, you end up with a slightly more manageable JSON payload. And each video has a video ID, much like a playlist ID, much like a channel ID. Has a title. And then if you just want the most high-res thumbnail, ignore the thumbnails array and just check this one out. That one gives you— gives you that. Look at that. Look at you. And then a description. Which will need to be parsed because you have like line breaks and things like that. So to try to decide whether I want to actually pull in your descriptions or not because they're not exactly standard, so it might make more sense just to recreate a description from scratch. And then there is the actual URL of the video. Um, yeah, like stuff like analytics, comments, likes, that sort of stuff. The upload date is here. So, it gives it to you in year, month, date without any separators. And then it shows you which playlist it's in. So, it's in the uploads from Jenn Junod, which is the base playlist. And I think that's pretty much all the stuff that we need to worry about. Now that we got that, something I created. I was talking about, you know, how I'm doing more scripting. So, this is a giant Node script that what it's going to do is it's going to take the JSON files and then it's going to pull out the specific information we want and then create a Markdown file with front matter that places all that information in there. So, it's going to create a show link for the URL, a slug which will just be all lowercase with dashes. We need to do this, run this regular expression to basically sanitize it.

[00:50:27] - Jenn Junod

Can you zoom in a little bit?

[00:50:31] - Anthony Campolo

Yeah. These are some regexes, regular expressions, which I'm sure you haven't written a lot, but do you know what a regular expression is?

[00:50:40] - Jenn Junod

It's been a while. Refresh me.

[00:50:42] - Anthony Campolo

It's a way to— it's a really complicated thing to do something that should be really simple where you need to say you want to run through all these files and I want to pull out specifically the date. Let's say I want to take the date which is formatted like 2022-07-01 and I wanted to find every single version of that without searching for like a specific date. And then I wanna manipulate it to add dashes in between. That's what you would usually—

[00:51:15] - Jenn Junod

oh yeah.

[00:51:16] - Anthony Campolo

Okay. Expression, expression for. So you like match on certain patterns and that pattern is basically whether to include or exclude things. So you're including just numbers and it just has to be a certain number of numbers. Then once you find it, you replace it with dashes. These are the things that ChatGPT is writing these regular expressions for me. I know what they do and vaguely what the syntax means, but I couldn't really explain to you exactly how this works right now. This is something that I'm trying to figure out how to get better at, but it's just like it's a very obscure syntax that also is slightly different depending on how you're doing regular expressions. Anyway, wait, this is— sorry. This is for sanitizing the title. This is for finding the dates. Because it's looking for numbers and 422. And then, yeah. So, that's not too important. But this is where it's going to include the URL, the title after it's run through the sanitizer. The actual title without anything removed or altered, the publish date, which includes dashes in between. So I think it makes it easier to, to read that way. Um, and then the cover image, which is the thumbnail. So I think that is all we need to do there. So this is going to be, um, show Notes. And then you just need to have your npm— sorry, npm init.

[00:53:05] - Jenn Junod

Really quick, Chris, hi again. And your wifey was here earlier, and I told her that she needs to be friends with Anthony's wifey because they would just be really cool friends and it would be really dope and they should be friends. Um, but yes, we are taking a look at all of this and looking at if we were to keep up all of the random TeachGen texts in the future, because I do, I do miss live streaming. It was fun, but it's a lot to like have to redo all of this.

[00:53:44] - Anthony Campolo

So that's why ideally you redo it in a way where it also puts in processes so that things are much simpler as you go. So this is the process that allows you to do it with a bulk of videos, but it's also something that you could just do on a single video. So after you do a video, you can even have like a cron thing set up on some service that would basically detect every time you post a new YouTube video and it could run this whole workflow for you. It could generate this markdown for you. It could run the transcription on it. It could feed that to an LLM which would give you back the show notes. You could just get all of that together at once and you wouldn't— you could even automate the fact where you wouldn't have to start it in the first place. It would just watch for new. So that's the dream and that's— we're pretty dang close to it.

[00:54:28] - Jenn Junod

Yeah.

[00:54:30] - Anthony Campolo

Okay, so now that that's that, let's see if this is— this still has another like half hour to go, I think. So I'm going to just so people have some context on what's going on, I'm going to show the ones that I already created over here. Once the Whisper transcription is done, I then run—

[00:54:54] - Jenn Junod

Zoom in a little bit more. Yeah. Thank you.

[00:54:59] - Anthony Campolo

Once the transcription is done, then there's another script that will just run some transformations to make the transcript more human-readable. In terms of the timestamps and things like that. And then it takes this whole prompt and basically concatenates it onto here. So this is saying you want to create a one-sentence, uh, one-sentence summary. You can use that in your metadata if you want it for that, for the description of the show. And then a one-paragraph summary that gives you a little bit more longer description. And then create chapters based on the topics discussed throughout, include timestamps. And I kind of give it some rules like don't make them too short, don't make them too long, and then give a description for each chapter. And I find that especially as you have longer and longer episodes, it goes past like 45 minutes, and especially if it goes past like an hour and a half, it will get confused and not be able to generate chapters all the way to the end. It'll generate chapters like the first half, and then it'll just say the last one is like what happens at the end of the episode. So the way you can get around that, this one's, let's see which one's, this is part, this was only an hour. This should be good. So what I do, this is one part I still have to automate. I have to have it detect this and insert it here. But, um, you, if you tell it where the very last timestamp is, it knows, okay, the chapters need to go till here at least.

[00:56:24] - Jenn Junod

Okay. Okay.

[00:56:25] - Anthony Campolo

And then, and then you've given an example. You say then format it. As a markdown file with the first sentence and then the second. I just have to say TL;DR. You can take that out. And then the chapters with the starting timestamp, the name of the chapter, and the description. So let's just generate a single one so people can see. And I'm actually using Claude now instead of ChatGPT because Claude 3 is the current kind of state of the art. There will probably be a GPT-5 coming out sometime soon that will be better than Claude 3. But as of now, this gives kind of the best outputs I find. Yeah. And this is the transcription didn't transcribe your name correctly. So if the transcription has errors in it, your show notes will have errors in it as well. That's pretty rare though. So for the most part, it's usually fine. Anthony teaches Jenn how to deploy a React application using Vite. I'm glad I picked this one. And Vercel deployment platform. So this was our first episode. And I'm gonna wait till it's done and then copy paste it out so we can see it a little better. So, and then the last thing that's still kind of manual, cause I'm not using an API to hit Claude or ChatGPT, is I just copy paste it and then put it here right on top of the the transcript. And then let's save that and do this. Oops. There we go. Okay. So, I teach Jen how to deploy a React application using the Vite build tool and Vercel deployment platform. So, that is exactly what happened. This is I walk through the process.

[00:58:16] - Jenn Junod

Um, can you please just like Ctrl+Find my name, please?

[00:58:20] - Anthony Campolo

Yeah, and replace it. Yeah, yeah, yeah. Um, just make sure. Thank you. Yeah, I think that— yeah, teach Jen that my partner's Jen is not this Jen. It is a different Jen. That's supposed to be my name. Well, it knew that if Jen is with a G, then Junod would be with a G also, at least. You know, it's close.

[00:59:15] - Jenn Junod

We got it. That at least gets me some of them. Thank you. Thank you.

[00:59:22] - Anthony Campolo

There's other things you can do. I think when you run the transcription, you can actually give a prompt beforehand that can be like, this here, like these names and these people. So it kind of knows, right?

[00:59:32] - Jenn Junod

I had to do that with ChatGPT too. Okay, thank you.

[00:59:35] - Anthony Campolo

I appreciate it. Cool. Along the way, they discuss various web development concepts and tools like JavaScript frameworks, build tools, version control, and deployment. Jen asks beginner-friendly questions to gain a foundational understanding of the workflow. Cool.

[00:59:48] - Jenn Junod

Oh, look at that.

[00:59:52] - Anthony Campolo

It doesn't say Jen is a beginner and asks questions because she doesn't know what's happening.

[00:59:58] - Jenn Junod

Beginner-friendly. Yay! That's great.

[01:00:00] - Anthony Campolo

Claude is nice. Claude, Claude has, um, a bit more, um, social IQ than ChatGPT. Um, and then we got the introduction. That's funny. Discussion of Jen's background and journey into tech. Explanation of Terminal and generating the React project. Modifying the React code and running the app locally. Committing the project to GitHub. Deploying the React app to Vercel. Discussing the difference between websites and web apps. Wrapping up and homework assignment. I gave you a homework assignment. I wonder if you did it. I don't know. I think it was, um, oh, it was—

[01:00:35] - Jenn Junod

that was almost 2 years ago.

[01:00:37] - Anthony Campolo

Yeah, it was something to do with the CSS on the site because we didn't do any CSS.

[01:00:40] - Jenn Junod

So, um, oh yeah, 'cause I was just barely learning that. That's crazy.

[01:00:46] - Anthony Campolo

There may be some CSS wiring you have to do right now to set up where you have it in Next.js. Picture.

[01:00:54] - Jenn Junod

Okay. And then it created the markdown file already, right?

[01:00:59] - Anthony Campolo

So, so this is why I say this is currently, there's two pieces to this workflow that, that are not connected to each other yet. So, this was the Markdown file over here that was created. And so, I need to combine these two things so this ends up in this file here. And then we'll be pretty dang, dang close. And you also need to have, like, headers as well. That's just a couple other things I need to put when I'm generating the script. So, yeah. And then this is not, like, an Astro site right now. This is just a bunch of Markdown files. But if we were to plop these into your Astro wind, Actually, do you have 5 more minutes or do you need to go?

[01:01:40] - Jenn Junod

I need to go soon, but I have like 5 more minutes.

[01:01:42] - Anthony Campolo

Okay, let's just do this really quick then. So this is going to be Jenn Junod, TJT. Okay, that's going to be—

[01:01:52] - Jenn Junod

dude, you could do it in Codespaces if you wanted to.

[01:01:57] - Anthony Campolo

Yeah, I could. I'd rather just have this on my computer because probably I'm gonna work on this.

[01:02:05] - Jenn Junod

Yeah, I figured. I was like, yeah, I see that happening. You're like, this is a fun project. Yay.

[01:02:13] - Anthony Campolo

Let's see. Oh, no. It goes in content, obviously. Content collections. Hey, yo. Let's see. Too many folders. Sure, it's this one. I not save it. Okay, whatever. Okay, it might be an issue in terms of how the front matter is structured, but if so, it'll give us some, some errors because they got Zod running On the content collection. Okay. Yep. So, date needs to be a string. Wait, what? It is a string. Oh, needs to be type date. I see. We gotta do one of these guys. Might have been it. Cool. So, it doesn't pull in the cover image because that's just not how they have their stuff set up. But you've got— let me put in some markdown real quick for some headers. So, chapters. Cool. So, yeah. This already looks pretty nice, right? Yes. One thing actually is that these need to be line breaks.

[01:04:11] - Jenn Junod

And I added you as a contributor. So, if you create stuff, you don't have to wait for me. To approve repos because—

[01:04:20] - Anthony Campolo

yeah, good night, learner. Good idea. Cool. Awesome. So yeah, great. We got pretty far actually. We already have a website with markdown files for every one of your shows with front matter. And now we just gotta run the thing on the thing. So I'll probably just set it up tonight. So I'll just like run through all of your episodes kind of in one go while I'm asleep. Then we'll just go from there.

[01:04:47] - Jenn Junod

Good luck. It's a lot. It is a lot.

[01:04:51] - Anthony Campolo

You just set up a command, hit go, and it just does it. It may take 2 nights, but we'll get there.

[01:04:57] - Jenn Junod

Yeah, it is. It's pretty cool. I appreciate that we are back in doing this. That's all fine. You don't need to contribute. Yeah, I know. I thought this was a good topic though, because it is about—

[01:05:12] - Anthony Campolo

it's called AutoGen Show Notes, so I'm not sure what they would have thought it was going to be.

[01:05:17] - Jenn Junod

No, because auto-generating show notes and generating show notes in general is really difficult for me. And that's why I was saying if Jen was listening to it, I feel like Jen would understand making show notes a lot better as well. Because of knowing how to summarize it better. I'm not great at that. And as to why I'm excited about this, but it is, we went through more of the technical side of it.

[01:05:45] - Anthony Campolo

So Jen uses this tool that I built for her work sometimes when she has video. She's like, can I use your transcription thing? And I'll do it. I'll create a transcription and I'll generate chapters. I'll even have it give key takeaways and improvements they can make and then have that all in one thing and then give it to her. And then she'll use that in her writing.

[01:06:04] - Jenn Junod

So that means if we need to get to the point where we can explain it to somebody, if you can explain it to Ishan, I feel like we could make it consumable for people not in the tech area like Sarah as well. Because her husband, Chris, that said hi was, I knew him from Denver Startup Week and stuff.

[01:06:25] - Anthony Campolo

And he's been on the show too. Yeah. The biggest issue is you need to use the CLI to actually create the transcriptions. Right now. So the next step would be creating a website where people could just input things and then it'll do it all. But then I need to like charge for it at a certain point. Cause that would require actually using APIs that cost money to transcribe and to do the, do the show note generation. Cause if it, it's only free to do this all on my computer. Yeah.

[01:06:52] - Jenn Junod

But if you took the CLI out of it, I feel like people would, there would be, it would make it a lot more accessible. People, to other people that feel like they would want to use this for their content.

[01:07:03] - Anthony Campolo

Yeah, ideally it will be an input box where you'll copy paste the URL in and then you'll just click a button and then wait a while and then it will just print it all out on the screen for you. That's the, that's the goal. That's fair.

[01:07:15] - Jenn Junod

Um, okay, so I'm looking, I'm going to, since we are wrapping up, I'm gonna hit raid over to Nicki T. Nicki T. Yeah, I like— I like that it was supposed to be Nick YouTube and it came to Nicki T. So we're gonna raid over there. And thank you everyone for joining today. I appreciate it. It was fun.

[01:07:39] - Anthony Campolo

When you want to do this again? I don't know, probably next week. You want to do same time next week? Possibly. Let's tentatively schedule for that, and if we need to move it, we can hold it lightly. But, um, yeah, I'll be down to do this every week for a while.

[01:07:57] - Jenn Junod

That'd be dope. Awesome, thank you. Bye.
