Requirements
- - API Key: Requires
MEMORIES_API_KEY from Memories.ai - External API: Sends video URLs to
https://mavi-backend.memories.ai for transcription - Python packages:
generate_report.py will auto-install fpdf2, pandas, openpyxl if missing
Privacy Note
- - Video URLs are sent to Memories.ai for transcription
- Batch analysis reads Excel files with creator/ROI data
- Review Memories.ai privacy policy before use
Viral Video Analysis
Analyze videos and provide actionable feedback for creators.
Core Insight
High ROI videos: <100 words, ~5s per product, visual-first + background music
Low ROI videos: >150 words, >15s per product, too much explaining
The core problem: Creators spend too much time "selling" instead of "showing".
Remember: Ads reach non-followers who need to be hooked in 3 seconds.
Quantitative Thresholds
| Metric | ✅ GOOD (High ROI) | ❌ BAD (Low ROI) |
|---|
| Word Count | <100 words | >150 words |
| Time per Product |
~5 seconds | >15 seconds |
| Shows All Products Upfront | YES | NO |
| Format | Visual + Music | Talking/Explaining |
Analysis Workflow
Setup
Requires Memories.ai API key. Get one at https://api-tools.memories.ai
Set environment variable:
CODEBLOCK0
1. Get Audio Transcript (Word Count)
CODEBLOCK1
2. Analyze Against Thresholds
CODEBLOCK2
3. Generate Creator Feedback
Based on analysis, provide specific feedback:
If word_count > 150:
"Your video has {X} words. Top performers use <100 words. Try replacing verbal explanations with visual demonstrations - stretch the fabric, spin around, show the fit."
If pace is slow (>15s per product):
"You're spending ~{X} seconds per product. High-performers show each item in ~5 seconds. Try quick cuts - one outfit = one scene transition."
If no upfront overview:
"Show ALL products in the first 2-3 seconds. Let viewers see the full haul immediately - it sets expectations and keeps them watching."
Always remind:
"Remember: Ads reach people who DON'T follow you. You have 3 seconds to grab a stranger's attention - don't waste it on intros."
The Exception: Kirstin Approach
Detailed verbal reviews CAN work if:
- 1. Show all products FIRST before explaining
- Use low-pressure language: "if it doesn't fit, just return it"
- Focus on introducing products, not "selling" them
Word count: 373 words can still perform if structure is right.
Reference Videos
GOOD Examples (share with creators)
- -
instagram.com/reel/Cy1zs4gLGFG - 46 words, 15s for 3 outfits, pure visual - INLINECODE7 - 56 words, quick showcase, background music
- INLINECODE8 - 91 words, fast cuts, shows product features
- INLINECODE9 - 91 words, demonstrates fit visually
EXCEPTION Example (detailed review done RIGHT)
- -
instagram.com/reel/DCQJ355RWSE - 373 words but works: shows all upfront, low-pressure
BAD Example (avoid)
- -
instagram.com/reel/DRCdjLlDcla - 168 words, 30s per outfit, too much explaining
Feedback Template
CODEBLOCK3
Batch Analysis
CODEBLOCK4
Quick Commands
- - "Analyze this video: [url]" → Word count + feedback
- "Why is this video underperforming?" → Detailed analysis
- "Give me feedback for [creator]" → Coaching template
- "Compare these videos" → Side-by-side analysis
- "Analyze my performance data" → Batch analysis from Excel
要求
- - API密钥:需要从Memories.ai获取MEMORIESAPIKEY
- 外部API:将视频URL发送至https://mavi-backend.memories.ai进行转写
- Python包:generatereport.py会自动安装缺失的fpdf2、pandas、openpyxl
隐私说明
爆款视频分析
分析视频并为创作者提供可执行的反馈建议。
核心洞察
高ROI视频特征:少于100字,每个产品约5秒,视觉优先+背景音乐
低ROI视频特征:超过150字,每个产品超过15秒,解说过多
核心问题:创作者花费过多时间推销而非展示。
请记住:广告触达的是非粉丝用户,你需要在3秒内抓住他们的注意力。
量化阈值
| 指标 | ✅ 优秀(高ROI) | ❌ 不佳(低ROI) |
|---|
| 字数 | 少于100字 | 超过150字 |
| 每个产品时长 |
约5秒 | 超过15秒 |
| 是否前置展示所有产品 | 是 | 否 |
| 呈现形式 | 视觉+音乐 | 口播/解说 |
分析流程
环境配置
需要Memories.ai API密钥。获取地址:https://api-tools.memories.ai
设置环境变量:
bash
export MEMORIESAPIKEY=sk-mavi-your-key-here
1. 获取音频转写文本(字数统计)
python
import os
import requests
BASE_URL = https://mavi-backend.memories.ai/serve/api/v2
APIKEY = os.environ.get(MEMORIESAPI_KEY)
HEADERS = {Authorization: API_KEY}
def get_transcript(url: str, platform: str = instagram):
resp = requests.post(
f{BASE_URL}/{platform}/video/transcript,
headers=HEADERS,
json={video_url: url, channel: rapid},
timeout=60
)
data = resp.json()
if data.get(success):
text = data[data][transcripts][0][text]
return {text: text, word_count: len(text.split())}
return {error: data.get(msg)}
平台检测
def detect_platform(url):
url = url.lower()
if tiktok in url: return tiktok
if instagram in url: return instagram
if twitter in url or x.com in url: return twitter
return youtube
2. 对照阈值进行分析
python
def analyze_video(url):
platform = detect_platform(url)
result = get_transcript(url, platform)
if error in result:
return result
wordcount = result[wordcount]
return {
url: url,
wordcount: wordcount,
wordcountstatus: 优秀 if wordcount < 100 else 合格 if wordcount < 150 else 不佳,
issues: [],
transcript_preview: result[text][:200]
}
3. 生成创作者反馈
基于分析结果,提供针对性反馈:
如果字数超过150:
您的视频有{X}个字。表现优异的视频通常少于100字。尝试用视觉演示替代口头解说——比如拉伸面料、转身展示、展示穿着效果。
如果节奏过慢(每个产品超过15秒):
您在每个产品上花费了约{X}秒。高表现视频每个产品仅展示约5秒。尝试快速剪辑——一套穿搭对应一个场景切换。
如果没有前置概览:
在前2-3秒内展示所有产品。让观众立即看到全部商品——这能设定预期并吸引他们继续观看。
始终提醒:
请记住:广告触达的是不关注您的人。您只有3秒时间抓住陌生人的注意力——不要浪费在开场白上。
例外情况:Kirstin模式
详细的文字评测在以下条件下也可以奏效:
- 1. 先展示所有产品再进行解说
- 使用低压语言:如果不合身,直接退货就好
- 专注于介绍产品,而非推销产品
字数:如果结构得当,373字也能获得良好表现。
参考视频
优秀案例(可与创作者分享)
- - instagram.com/reel/Cy1zs4gLGFG - 46字,15秒展示3套穿搭,纯视觉呈现
- instagram.com/reel/DEybxPbNeOl - 56字,快速展示,背景音乐
- instagram.com/reel/DHHr5o2s1LG - 91字,快速剪辑,展示产品特点
- instagram.com/reel/DBd6NxbOeBb - 91字,视觉展示穿着效果
例外案例(正确的详细评测方式)
- - instagram.com/reel/DCQJ355RWSE - 373字但效果良好:前置展示所有产品,低压风格
不佳案例(应避免)
- - instagram.com/reel/DRCdjLlDcla - 168字,每套穿搭30秒,解说过多
反馈模板
您好[创作者姓名],
感谢您的视频!以下是一些有助于提升表现的反馈建议:
表现良好的方面:
改进机会:
- 1. 节奏:目前每个产品约{X}秒。建议通过快速剪辑将每个产品控制在约5秒。
- 字数:检测到{X}个字。表现优异的视频通常少于100字。多展示,少解说。
- 开场:考虑在前2-3秒内展示所有产品。
关键提醒:
广告触达的是尚未关注您的人。您需要在3秒内抓住他们的注意力!
参考视频:
[优秀案例链接]
此致,
[团队名称]
批量分析
python
def analyzebatch(excelpath, sample_size=20):
import pandas as pd
df = pd.readexcel(excelpath)
df.columns = [c.lower().replace(sum of , ).replace( , _) for c in df.columns]
# 获取表现最佳和最差的视频
top = df.nlargest(sample_size // 2, roi)
bottom = df.nsmallest(sample_size // 2, roi)
results = []
for _, row in pd.concat([top, bottom]).iterrows():
url = row.get(videourl) or row.get(rowlabels)
analysis = analyze_video(url)
analysis[roi] = row[roi]
analysis[tier] = TOP if row[roi] > 1.0 else BOTTOM
results.append(analysis)
return results
快捷指令
- - 分析这个视频:[链接] → 字数统计+反馈建议
- 为什么这个视频表现不佳? → 详细分析
- 为[创作者姓名]提供反馈 → 辅导模板
- 对比这些视频 → 并列分析
- 分析我的表现数据 → 从Excel进行批量分析