Prompt
I like the current concept of this WikiTok @App.tsx where it takes content from Wikipedia @useWikiArticles.ts then formats it in @WikiCard.tsx to present to the user.
I'd like to take this concept and turn it into a learning platform. I like to learn using YouTube videos and I find short form clips to be very helpful for learning topics on the go. An example is a video from Andrej Karpathy showing how LLMs work and the video is 3 hours long. If I loaded the app and saw a 90 second to 3 min clip of that video it would be very helpful. The clips from the YouTube video are literally just timestamp sections so we can read the transcript, build a topic list using AI, then find relevant sections between 90 seconds and 3 mins to show to the user. Visually, I would like is for us to show a full screen video.
To prototype this we can start with a hardcoded list of YouTube URLs and it should load the app like it does with WikiTok but instead of a wiki article it'll autoplay a video playing a 90 second to 3 min clip from one of the YouTube urls. As you swipe it'll get another video from the list.
Once we get the prototype working we'll want to use AI to gather knoweldge about the YouTube video. We can get the transcript from the video and we'll use the AI SDK from Vercel to send the transcript to OpenAI "gpt-4o-mini" model to extract topics. From there we'll use the Google Gemini model to extract the timestamps and durations between 90 seconds and 3 mins for the video. That will be fed back into the app and we'll have those videos queued up for all users of the app.
OpenAI Initial Prompt
First Prompt
I want to extract topics from these YouTube transcripts for a learning app. I want to know what the themes, topics, and anything that could be useful for 30 to 3 mins snippets. The goal here is that a lot of people are new to certain topics or they can be experts so getting the list of topics and other useful things will provide a lot of value for people.
Refined Prompt
Extract themes and topics from YouTube transcripts for use in a learning application, covering snippets ranging from 30 seconds to 3 minutes in length. The aim is to provide a comprehensive list of topics and relevant information that caters to both beginners and experts in the subject matter for maximum value.
Steps
- Content Analysis: Read through the provided transcript carefully, identifying main ideas and repetitive themes.
- Topic Identification: Highlight specific themes and topics that recur or are given focus throughout the transcript.
- Snippets Segmentation: Divide the transcript into segments of 30 seconds to 3 minutes, noting the content and context in each section.
- Relevance Assessment: For each segment, decide if the content is valuable for both novices and experts, labeling its complexity level.
- Compilation: Compile a list of themes, topics, and any key points from each segment, indicating the time range for reference.
Output Format
The output should be a structured JSON format, with each segment including:
time_range
: Start and end time of the snippet in "mm:ss" format.
themes
: List of identified themes or topics.
complexity_level
: Classification as "beginner", "intermediate", or "expert".
summary
: Brief summary of the segment content.
Example
Input Transcript: [A brief portion of a YouTube transcript]
Output:
[ { "time_range": "00:00-00:30", "themes": ["Introduction to Machine Learning", "History"], "complexity_level": "beginner", "summary": "The presenter introduces machine learning, offering a brief historical overview." }, { "time_range": "00:31-01:00", "themes": ["Supervised Learning", "Algorithms"], "complexity_level": "intermediate", "summary": "An explanation of supervised learning and a mention of popular algorithms." }, // Additional segments follow similarly ]
Notes
- Ensure topics are universally understandable and free from jargon whenever possible unless relevant to 'expert' level.
- Pay attention to shifts in topics or tone, as these may signify the start of a new segment.
- For each snippet, ensure it is self-contained so as to provide value independently of the full transcript.
Refined Prompt Markdown
Extract themes and topics from YouTube transcripts for use in a learning application, covering snippets ranging from 30 seconds to 3 minutes in length. The aim is to provide a comprehensive list of topics and relevant information that caters to both beginners and experts in the subject matter for maximum value. # Steps 1. **Content Analysis**: Read through the provided transcript carefully, identifying main ideas and repetitive themes. 2. **Topic Identification**: Highlight specific themes and topics that recur or are given focus throughout the transcript. 3. **Snippets Segmentation**: Divide the transcript into segments of 30 seconds to 3 minutes, noting the content and context in each section. 4. **Relevance Assessment**: For each segment, decide if the content is valuable for both novices and experts, labeling its complexity level. 5. **Compilation**: Compile a list of themes, topics, and any key points from each segment, indicating the time range for reference. # Output Format The output should be a structured JSON format, with each segment including: - `time_range`: Start and end time of the snippet in "mm:ss" format. - `themes`: List of identified themes or topics. - `complexity_level`: Classification as "beginner", "intermediate", or "expert". - `summary`: Brief summary of the segment content. # Example **Input Transcript**: [A brief portion of a YouTube transcript] **Output**: ```json [ { "time_range": "00:00-00:30", "themes": ["Introduction to Machine Learning", "History"], "complexity_level": "beginner", "summary": "The presenter introduces machine learning, offering a brief historical overview." }, { "time_range": "00:31-01:00", "themes": ["Supervised Learning", "Algorithms"], "complexity_level": "intermediate", "summary": "An explanation of supervised learning and a mention of popular algorithms." }, // Additional segments follow similarly ] ``` # Notes - Ensure topics are universally understandable and free from jargon whenever possible unless relevant to 'expert' level. - Pay attention to shifts in topics or tone, as these may signify the start of a new segment. - For each snippet, ensure it is self-contained so as to provide value independently of the full transcript.
Prototype is live on Vercel: https://wikitok-frontend.vercel.app
WikiTok → Viral Learning App
Perhaps start out with learning AI and Coding since that community is large and is a very fast growing space.
Ray’s Internal Thoughts
- The AI system should be able to self organize and build topic concepts on the fly
- It should then be able to run tests and get high accuracy on what to deliver next for a given user
- I should be able to grab clips of podcasts
- Users should be able to submit videos on youtube so they can put it into the system to cut it up and learn. Think about why people want YouTube shorts. Other apps that try to look at YouTube videos just show walls of text as topics. I want to show clips of videos instead in a tiktok style algo
Landing Page
- Option 1: Show a video clip of a key concept from a video topic to hook a user
- Option 2: Show clips of videos
Users
- Keep track of topics they are learning
- Make an AI roadmap of topics they have covered and what they still want to learn
- Learn about what they want to learn more about, what are the struggling with, what goals do they want to achieve
- Should be able to give URLs to YouTube videos so that the system can start analyzing them for clipable content for others
Community
- Show popular videos
- Show curated clips from featured members who have the highest watch time, likes, shares
Notes
- ‣