# How to find a viral video idea and reverse-engineer it with rea-video

> Find the young videos beating their channel on viralshooter, turn them into one format, then use rea-video to see how it was made.

Source: https://viralshooter.com/blog/guides/reverse-engineer-viral-videos (Published November 6, 2026, by viralshooter)

A good video idea is one that is already working for someone else, early, before everyone copies it. This guide shows how to find that idea on viralshooter, how to turn a handful of breakout videos into one format you can make, and how to use rea-video to see how such a video is put together before you make your own.

## Step 1: find the videos that are taking off

viralshooter ranks videos by their own numbers, never by how many subscribers the channel has. That matters for finding ideas: when a big channel gets views, you can't tell whether the video did it or the audience did. When a small channel's video is far above its usual, the video did it, and that is the part you can learn from.

Where to look:

- [Shorts](https://viralshooter.com/shorts) and [Videos](https://viralshooter.com) rank young videos by how they perform for their age. Sign in to also see the ones published in the last 1, 6 and 12 hours, the earliest catch.
- [New on the charts](https://viralshooter.com/new) shows videos first seen on the charts in the last 24 hours.
- [Countries](https://viralshooter.com/countries) and the per-country charts, such as [/trending/us](https://viralshooter.com/trending/us) or [/trending/kr](https://viralshooter.com/trending/kr), show what is working in one market.
- [Categories](https://viralshooter.com/categories) and [Hashtags](https://viralshooter.com/hashtags) narrow it to a topic.
- [Channels](https://viralshooter.com/channels) shows who is getting watched, and [Markets](https://viralshooter.com/markets) shows where views are moving.
- [Chart history](https://viralshooter.com/history) shows what got watched in a past window, so you can see whether a format is new or has been around.

## Step 2: read the columns

On each board, four columns do most of the work:

- **Vs usual** ([glossary](https://viralshooter.com/blog/glossary#vs-usual)): how far the video is above what its channel's uploads usually get at the same age. This is the outlier signal.
- **Views/h** ([glossary](https://viralshooter.com/blog/glossary#views-per-hour)): what is moving right now, not what moved last week.
- **Channel size** ([glossary](https://viralshooter.com/blog/glossary#channel-size)): measured by the views a channel's uploads usually get, not by subscribers. Filter to small channels to find breakouts that didn't ride an existing audience.
- **Age** ([glossary](https://viralshooter.com/blog/glossary#age)): a video a few hours old that is already far above its usual is an early catch.

Look for videos from small channels, high on **Vs usual**, still climbing on **Views/h**, and a format you could actually make. A one-person tabletop Short is a better study than a studio production you can't afford.

## Step 3: turn several outliers into one format

One breakout can be luck. Several that share something is a format. Line up five to ten outliers in your topic and note what they have in common:

- the hook in the first seconds (a question, a result shown first, a reaction);
- the length;
- the caption style and where captions sit on screen;
- the pacing, how often it cuts;
- the topic and the country it is working in.

Pick the two or three that are closest to each other and to what you can make. Then write a one-paragraph brief: what the video is, how it opens, how long it runs, how it looks and sounds, and links to the two or three examples.

## Step 4: let your AI agent do the research

If you use Claude Code, Codex or another agent, [connect viralshooter to your AI agent](https://viralshooter.com/agents). The `early_videos` tool lists young videos with a window of 1, 6, 12 or 24 hours, or 3 or 7 days, sorted by top, `vsUsual`, `viewsNow` or views. Each video comes with `topPct` (top N% for its age), `vsUsual` and `channelSize`. There is also a ready `daily_brief` prompt for a short daily summary.

A prompt that does the research and hands off to the breakdown:

> Use viralshooter's early_videos for Shorts in the last 24 hours, sorted by vsUsual, small channels only, in my topic. Pick the five furthest above their channel's usual and tell me what they share: hook, length, caption style, pacing, topic, country. Write a one-paragraph brief for a format I could make, with links to the three closest examples. Then break down /path/to/my-video.mp4 with rea-video and compare it with that brief.

## Step 5: understand how the outlier was made, with rea-video

Once you know which format is working, rea-video shows how a video of that kind is built. It is a free, open-source tool for AI agents such as Claude Code or Codex that breaks a video file down shot by shot: what was filmed, what was AI-generated and what was built in code, plus the captions, the cuts, the audio and a remake plan.

It needs ffmpeg and Python 3.10 or later. In your agent, say:

> Install https://github.com/JuneYaooo/rea-video, then break down this video: /path/to/video.mp4

You get a one-line summary of how the video was made, a **remake plan** split into what to film, what to generate with AI and what to build in code, and a report with each shot's framing, camera moves and lighting, the captions with their timing and style, where the cuts land and whether they hit the beat, and what the voice and music are.

Use a file you are allowed to use: your own video, a file the creator sent you, or a platform's own download feature where the creator turned it on. YouTube's Terms don't allow downloading other people's videos without permission.

Two limits. It reads a file; it doesn't find videos, which is what viralshooter is for. And it is most accurate on original files, because platform re-encoding wipes some of what it measures; adding a video-capable model (the README names Gemini and Doubao) makes the filmed-or-generated calls more accurate and writes a prompt for every AI shot.

## Step 6: check back tomorrow

Run the same search tomorrow and the day after. If videos in the same format keep showing up from different small channels, it is a format, not one lucky video. If it disappears, move on to the next one.

## Make your own version

Use the breakdown to learn the structure, the pacing and the techniques, then make something with your own idea, footage and voice. Keep what made it work (the hook, the rhythm of the cuts, the caption style) and change what it is about. Don't reuse other people's footage, music, characters or likeness, and don't download other people's YouTube videos; YouTube's Terms don't allow it without permission.

To build the video itself, see [the HyperFrames guide](https://viralshooter.com/blog/guides/hyperframes-ai-video) and [the guide to open-source AI video tools](https://viralshooter.com/blog/guides/open-source-ai-video-tools).

## FAQ

### How do I find videos that are going viral right now?

Open [Shorts](https://viralshooter.com/shorts) or [Videos](https://viralshooter.com) on viralshooter and look for small channels high on **Vs usual** and still climbing on **Views/h**. Signed in, you also see videos published in the last 1, 6 and 12 hours. [New on the charts](https://viralshooter.com/new) shows what first appeared on the charts in the last 24 hours.

### Why not just copy the biggest videos?

Because they often win on the size of the channel, not on the video. A video from a small channel that is far above its usual tells you what the video itself did right, and that is the part you can repeat.

### Does rea-video download videos from YouTube?

No. It reads a video file you already have. Use one you have the right to use.

### Is rea-video free?

Yes. It is open source (Apache-2.0) and runs offline. A vision model or a paid video model is optional, and you pay whatever that service charges.

## Sources

- [rea-video on GitHub (JuneYaooo/rea-video)](https://github.com/JuneYaooo/rea-video)
- [YouTube Terms of Service](https://www.youtube.com/static?template=terms)
