Analyze science-related media content (videos, audio, transcripts) to extract scientific claims and verify them against credible sources. Use this skill whenever someone wants to fact-check a science video, verify claims in a media clip, analyze science communication content, check whether a YouTube video or podcast about science is accurate, or understand how referenced research was funded. Also trigger when someone uploads a transcript or .vtt file and asks about the accuracy of its scientific content, or pastes text from a science video and wants to know what's true. Even casual requests like "is this science video legit?" or "what claims does this video make?" or "check this transcript for me" should trigger this skill.
Analyze science-related media content to identify scientific claims, verify their accuracy against credible sources, and surface how the underlying research was funded — all presented as an interactive report the user can explore in chat.
This skill was inspired by the Science of Science: Discovery, Communication and Impact (SoS:DCI) framework, which aims to improve transparency about how scientific discovery advances and the role government funding plays.
There are three phases. Complete each before moving to the next.
The goal is to get a clean text transcript to work with, regardless of input format.
| Input | How to handle |
|---|---|
.vtt file | Parse directly — strip timestamps and formatting cues, keep speaker labels if present |
.srt file | Same as .vtt — parse subtitle format into plain text |
| Pasted text | Use as-is |
.txt / .md file | Read directly |
.mp4 / .mp3 / .wav / audio-video files | Extract audio and transcribe (see below) |
| URL to a video | Tell the user you can't download videos directly, but ask them to provide a transcript or paste the content |
If the user provides an audio or video file without a transcript:
whisper is available: python3 -c "import whisper"pip install openai-whisper --break-system-packagesffmpeg is available (needed by whisper): which ffmpegimport whisper
model = whisper.load_model("base")
result = model.transcribe("input_file.mp4")
transcript_text = result["text"]
Use the "base" model for speed. If the transcript quality looks poor (lots of garbled words), retry with "small" model.
Save the clean transcript text. Confirm with the user: "I've extracted the transcript — it's about X minutes / Y words of content about [topic]. Proceeding to identify claims."
This is the core analytical phase. Read the transcript carefully and do two things: extract claims, then verify each one.
Read through the transcript and identify every statement that makes a factual or scientific claim. A "claim" is any assertion that could be verified or refuted with evidence. Focus on:
Ignore pure opinions, rhetorical questions, and entertainment filler. When in doubt about whether something is a claim, include it — it's better to over-extract than miss something.
For each claim, note:
For each extracted claim, conduct a multi-source verification. Use web search to find:
Scientific consensus — What does the peer-reviewed literature say? Search for the specific topic on Google Scholar, PubMed, or general web with terms like "study", "research", "peer-reviewed". Look for systematic reviews or meta-analyses when available, as these represent stronger evidence than individual studies.
Primary sources — Can you find the specific study, mission, or event being referenced? If the claim cites a specific paper, institution, or dataset, try to find it directly.
Funding information — For key studies or research programs referenced, search for how they were funded. Look for:
Counter-evidence — Are there credible sources that dispute this claim? Note any significant scientific disagreement.
Rate each claim on this scale:
Scientific verification is nuanced. If you can't find strong evidence either way, say so. If a claim is in an area of active research where the consensus is evolving, explain that rather than giving a false sense of certainty. The goal is to help users understand the evidence landscape, not to render verdicts.
Create a React (.jsx) artifact that presents the analysis as an interactive, explorable report. The user should be able to browse claims, see evidence, and explore funding information without scrolling through a wall of text.
Build a single-file React component (default export, no required props) using Tailwind utility classes. The component should include:
Header section:
Claims list / navigator:
Expanded claim detail (when user clicks a claim):
Filtering and sorting:
import { useState } from "react" for state managementlucide-react icons for visual elements (checkmarks, warnings, search icons, etc.)Supported: bg-emerald-50 border-emerald-500 text-emerald-700
Partially Supported: bg-amber-50 border-amber-500 text-amber-700
Disputed: bg-orange-50 border-orange-500 text-orange-700
Unsupported: bg-red-50 border-red-500 text-red-700
Unverifiable: bg-slate-50 border-slate-400 text-slate-600
const analysisData = {
source: {
title: "Video title or description",
type: "YouTube video / podcast / transcript",
duration: "approximate length",
analyzedAt: "date"
},
summary: {
totalClaims: 12,
supported: 7,
partiallySupported: 3,
disputed: 1,
unsupported: 0,
unverifiable: 1,
overallAssessment: "Brief narrative summary of the content's accuracy"
},
claims: [
{
id: 1,
originalText: "The claim as stated in the video",
normalizedText: "Clear restatement of the claim",
timestamp: "~2:30",
category: "factual",
rating: "supported",
explanation: "Why this rating was given",
evidence: [
{
source: "Source name",
url: "https://...",
finding: "What this source says",
type: "peer-reviewed" // or "government", "news", "preprint"
}
],
funding: [
{
agency: "NSF",
grantNumber: "if found",
program: "program name if known",
amount: "if available",
note: "any relevant context"
}
],
caveats: "Any nuance or uncertainty to note"
}
]
};
Be thorough but honest. The value of this tool is transparency. If you can't verify something, say so clearly rather than hedging into a "partially supported" rating.
Prioritize recent, peer-reviewed sources. A 2024 meta-analysis trumps a 2005 single study. Government agency pages (NASA, CDC, NIH) are generally reliable for factual claims about their own programs.
Funding is often hard to find. It's OK if you can only find funding info for some claims. Note when you searched but couldn't find funding data — that's still useful information.
Don't editorialize. Present the evidence and let the user draw conclusions. The ratings should reflect the weight of evidence, not your opinion about the video creator's intent.
Context matters. A science communicator simplifying a concept for a general audience isn't "wrong" in the same way as someone making a false claim. Note when claims are simplified but essentially correct.
Search broadly. Use multiple search queries per claim. If the first search doesn't find good sources, try different phrasings. Scientific topics often have technical and colloquial names for the same thing.