Virality Prediction
Score content for predicted click-through rate and viral potential before publishing.
Stop guessing which title or thumbnail will perform best. Rad TV's AI-powered virality prediction scores your content before you publish — analyzing your title, thumbnail, and description to predict click-through rate and viral potential. Test multiple options and go with the winner.
Virality prediction requires an active Creator+ subscription.
Making a Prediction
The predictVirality mutation analyzes your content metadata and returns scoring:
curl -X POST https://api.rad.live/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"query": "mutation($input: ViralityPredictionInput!) { predictVirality(input: $input) { viralityScore predictedCtr confidence recommendations { text priority } } }",
"variables": {
"input": {
"title": "10 Hidden Features of the New iPhone",
"imageUrl": "https://example.com/thumbnail.jpg",
"description": "We found features Apple never told you about.",
"category": "Technology"
}
}
}'const response = await fetch('https://api.rad.live/graphql', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY',
},
body: JSON.stringify({
query: `
mutation($input: ViralityPredictionInput!) {
predictVirality(input: $input) {
viralityScore
predictedCtr
confidence
recommendations { text priority }
}
}
`,
variables: {
input: {
title: '10 Hidden Features of the New iPhone',
imageUrl: 'https://example.com/thumbnail.jpg',
description: 'We found features Apple never told you about.',
category: 'Technology',
},
},
}),
});
const { data } = await response.json();
const prediction = data.predictVirality;
console.log(`Virality: ${prediction.viralityScore}, CTR: ${prediction.predictedCtr}`);import requests
response = requests.post(
"https://api.rad.live/graphql",
headers={
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY",
},
json={
"query": """
mutation($input: ViralityPredictionInput!) {
predictVirality(input: $input) {
viralityScore
predictedCtr
confidence
recommendations { text priority }
}
}
""",
"variables": {
"input": {
"title": "10 Hidden Features of the New iPhone",
"imageUrl": "https://example.com/thumbnail.jpg",
"description": "We found features Apple never told you about.",
"category": "Technology",
}
},
},
)
prediction = response.json()["data"]["predictVirality"]
print(f"Virality: {prediction['viralityScore']}, CTR: {prediction['predictedCtr']}")Input Fields
| Field | Type | Required | Description |
|---|---|---|---|
title | String | Yes | Content title to analyze |
imageUrl | URL | No | Thumbnail image URL for visual analysis |
description | String | No | Content description/summary |
category | String | No | Content category for context |
Response Fields
| Field | Type | Description |
|---|---|---|
viralityScore | Float | Overall viral potential (0-1) |
predictedCtr | Float | Predicted click-through rate (0-1) |
confidence | Float | How confident the model is (0-1) |
bestCategory | String | The category where this content would perform best |
recommendations | [Recommendation] | Actionable suggestions for improvement |
Each recommendation includes:
| Field | Type | Description |
|---|---|---|
text | String | What to change |
priority | String | Importance: high, medium, or low |
Understanding Scores
| Score Range | What It Means |
|---|---|
| 0.8 - 1.0 | Strong viral potential — publish with confidence |
| 0.5 - 0.8 | Good potential — check recommendations for easy wins |
| 0.2 - 0.5 | Moderate — consider revising title or thumbnail |
| Below 0.2 | Low potential — significant changes recommended |
A/B Test Before Publishing
The best way to use virality prediction: test multiple titles or thumbnails and pick the winner.
// Test multiple titles
const titles = [
'10 Hidden iPhone Features',
'iPhone Secrets Apple Doesn\'t Want You to Know',
'I Found Secret iPhone Features Nobody Talks About',
];
const results = await Promise.all(
titles.map(title =>
predictVirality({ title, imageUrl: thumbnailUrl, category: 'Technology' })
)
);
// Pick the highest scoring title
const best = results.reduce((a, b) =>
a.viralityScore > b.viralityScore ? a : b
);MCP Tool
The same prediction is available as the predict_virality MCP tool for agent-based workflows. See MCP Tools for details.
Next steps
- Publish to Rad — Publish your optimized content
- YouTube Cross-Publishing — Distribute to YouTube