Inspiration
Over my years watching YouTube I have seen large videos get hundreds of thousands of comments. Often, from my experience these comments often have real insight into improvements of the channel. As I know from working on my own startup, the only way to improve as a business is to take on consumer feedback. While the data is there in this case, it arrives as an unsorted stream, so almost none of it gets used.
Current tools stop at a sentiment score but say nothing about what to do. The tools that do plan content charge $16–69/month and still hand back a to-do list for a human to work through. They also don't provide a way to turn this feedback into meaningful video suggestions
With Crowdtone I feel that the comment section can already contain the next video.
What it does
Paste any public YouTube URL and Crowdtone reads the top 1,000 comments and returns what viewers liked, what confused them, what they're complaining about and what they want next, each with counts and the verbatim comments behind it. Alongside that, the website generates a sentiment chart of how the thread felt over time, three next-video ideas ranked by how loudly people asked, a fix list for the video that's already published, your most invested viewers ranked, a Shorts cut list built from the moments viewers timestamped, and thumbnail variants composited from the preview stills YouTube publishes for the video.
In addition to finding all of this information to improve your channel, Crowdtone can also publish the changes for you. When you connect your channel the findings become finished copy that Crowdtone publishes through the YouTube Data API. This means you can insantly gain a new title, chapters mined from viewer timestamps, a comment answering the top confusion, replies drafted in your own measured voice, a new thumbnail, and your title and description translated into the languages your audience actually watches in. Every change shows a before/after diff and the comment it came from. Nothing publishes without a second, deliberate click, and everything can be undone from the same screen. (Note: This and some of the following features are currently only available for my account for demo purposes as Google restricts production access to this API unless they approve its use)
For your own videos, the YouTube Analytics API adds the retention curve with the sharpest drop-offs marked. This, alongside the comment analysis can help creators to identify when and why their viewers switched off
CrowdTone also gives you the ability to clean up the comment section. In the app you can perform a sweep of recent uploads for spam comments comments such as impersonators wearing your channel name in styled-unicode fonts, "message me on WhatsApp" crypto lures, giveaway bots and more. Tick the ones to hide and they're moderated in bulk, each with a "put it back" button.
With CrowdTone you can even turn your comment section into your next video. Point the website at a channel and it scores the last 20 uploads against that channel's own median views/day, reads the comment sections of the recent and outperforming ones, and returns one video specified well enough to film. This includes a title, spoken hook, beat-by-beat outline, description, tags, runtime, and a publish date.
The final feature is called premiere co-pilot. During a YouTube premiere, the chat can move so fast that it can seem impossible to gain any meaningful data. The co-pilot clusters and counts repeated questions for answering on air, auto-hides scams, flags the seconds chat lights up, and turns those into a clip list plus a debrief the moment the stream ends.
How I built it
The app is built with Next.js 14, React and TypeScript. I used the YouTube Data API, for reading and writing video. I used YouTube Analytics API v2 for retention curves, traffic sources, geography, and subscriber conversion, fetched per section so one failure never blanks the rest. I also added an AI agent using OpenRouter for clustering, drafting, translation, and scam verdicts. Every response is schema-validated. If the agent fails, it falls back to a keyword heuristic so the tool always produces output. Replies and moderation verdicts address comments by index into the list we supplied, so the model physically cannot target a comment it invented, preventing hallucinations.
The website can also run on a local model if it is ran locally. One environment variable points the same client at Ollama, llama.cpp, or LM Studio.
196 tests (185 unit and 11 route-level integration tests that call the real handlers with the network mocked at the fetch layer)
Challenges I ran into
This was my first time using the YouTube API. One challenge I was unfortunately unable to fix is that to get access to the API to write to a channel your software must first be approved by Google and that would take longer than the hackathon window. For this reason I was only able to write to channels with the app on my account for the demo video and those features aren't available to users yet.
Writes on a live channel can also be very difficult. One issue I noticed is that, videos.update replaces the whole snippet, so omitting a field wipes it. I had to change the codebase so that every write now re-reads the video first, changes only the named field, refuses unless the connected channel owns it, previews by default, requires an explicit confirm plus a second UI click, and returns an undo ticket. That undo ticket carries everything it needs to restore, including the previous thumbnail as a data URL, so undo works with no server state at all. This took me a good few hours to figure out however.
Detecting scams was also hard without accusing viewers. A fan who named themselves after the channel, or a viewer linking a source, must never get auto-flagged. For this reason, I set it up so that impersonation is checked by channel id, I also made it so that YouTube links don't count as link spam,,.
Accomplishments that I'm proud of
I am most proud of the fact that I managed to create something that has the potential to provide actual value to creators. I feel that in hackathons like this it can often be difficult to solve a real issue but I think I found a really relevant one with CrowdTone.
I am also very proud of the fact that I was able to contribute to open source with a publicly available repo I made called youtube-chapter-kit. This turns viewer-comment timestamps into YouTube chapters. This was a really useful tool when I was making the CrowdTone so I wanted it to be available for anyone.
What I learned
This was my first time using the YouTube Data API and the Analytics API and I was surprised at how many features it actually contains. I think YouTube automations could be a really useful and easy to make product because of this. I did also learn about how many restrictions there are on the API however which prevented me from making all features publicly accessible.
One other lesson was how little of this actually needed a model. Normally, in a hackathon like this I would attempt to make a wrapper around an agent to carry out tasks. In the end, sentiment, superfan ranking, spike detection, voice matching, and the digest all ended as plain functions because they were faster, free and deterministic.
What's next for CrowdTone
I have plans to go through the official approval process with Google for the YouTube API so any channel can use the tool to create and manage their videos. I would love to add the ability for the system to read real premiere chat through the live-chat API, so the co-pilot runs on an actual stream rather than a labeled replay. I also have plans to implement a weekly patrol digest that emails the channel owner a sweep of all their recent videos.
Built With
- next.js
- node.js
- react
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.