Resemble Detect
GitHubOfficialFirst committed by devshahofficialDistributed by GitHub
- Skill
- Tool integration
- Security
- Apache-2.0
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
Resemble Detect provides a comprehensive suite of tools for media forensics and safety. It allows users to verify the authenticity of various media formats, trace the origins of synthetic audio, apply or detect invisible watermarks, and analyze media for intelligence such as speaker identity, emotion, and transcription. The skill emphasizes a rigorous, evidence-based approach to media verification, requiring users to rely on completed detection results rather than speculation.
What it does
- Detects AI-generated or manipulated audio, images, video, and text.
- Traces the source platform for synthetic audio.
- Applies and detects invisible watermarks for provenance tracking.
- Verifies speaker identity against known voice profiles.
- Extracts rich media intelligence including emotion, transcription, and scene descriptions.
- Provides heatmap visualizations for forensic analysis.
When to use it
- When you need to determine if media is a deepfake or AI-generated.
- When verifying the provenance of content using watermarking.
- When identifying the source platform of synthetic audio.
- When performing deep analysis on media for speaker info or misinformation.
- When checking if text content was machine-written.
Advantages
- Provides objective, score-based confidence levels for authenticity.
- Supports multimodal analysis including audio, video, image, and text.
- Offers advanced forensic features like invisible frequency layer heatmaps.
- Enables privacy-conscious workflows with zero-retention and privacy modes.
- Allows for combined detection and intelligence gathering in a single request.
Usage examples
- “Is this audio file AI-generated?”
- The agent submits the audio URL to the detection endpoint, polls for completion, and reports the label and aggregated score with context.
- “Can you check if this image has an invisible watermark?”
- The agent uses the watermark detection tool to verify the presence of a watermark and reports the findings.
- “Analyze this video for deepfake indicators and provide a summary.”
- The agent runs a detection job with intelligence enabled, waits for the result, and provides a structured summary of the findings.
- “Verify if this text was written by an AI.”
- The agent submits the text to the text detection endpoint and reports the prediction and confidence level.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/github/resemble-detect/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip resemble-detect.zip -d .agents/skills
Documentation by devshahofficial
Resemble Detect — Deepfake Detection & Media Safety
Analyze audio, image, video, and text for synthetic manipulation, AI-generated content, watermarks, speaker identity, and media intelligence using the Resemble AI platform.
Core Principle — THE IRON LAW
"NEVER DECLARE MEDIA AS REAL OR FAKE WITHOUT A COMPLETED DETECTION RESULT."
Do not guess, infer, or speculate about media authenticity. Every authenticity claim must be backed by a completed Resemble detect job with a returned label, score, and status: "completed". If the detection is still processing, wait. If it failed, say so — do not substitute your own judgment.
When to Use
Use this skill whenever the user's request involves any of these:
Checking if audio, video, image, or text is AI-generated or manipulated
Detecting deepfakes in any media format
Verifying media authenticity or provenance
Identifying which AI platform synthesized audio (source tracing)
Applying or detecting watermarks on media
Analyzing media for speaker info, emotion, transcription, or misinformation
Asking natural-language questions about detection results
Matching or verifying speaker identity against known voice profiles
Detecting AI-generated or machine-written text
Any mention of: "deepfake", "fake detection", "synthetic media", "voice verification", "watermark", "media forensics", "authenticity check", "source tracing", "is this real", "AI-written text", "text detection"
Do NOT use for text-to-speech generation, voice cloning, or speech-to-text transcription — those are separate Resemble capabilities.
Capability Decision Tree
| User wants to... | Use this | API endpoint |
|---|---|---|
| Check if media is AI-generated / deepfake | Deepfake Detection | POST /detect |
| Know which AI platform made fake audio | Audio Source Tracing | POST /detect with flag |
| Get speaker info, emotion, transcription from media | Intelligence | POST /intelligence |
| Ask questions about a completed detection | Detect Intelligence | POST /detects/{uuid}/intelligence |
| Apply an invisible watermark to media | Watermark Apply | POST /watermark/apply |
| Check if media contains a watermark | Watermark Detect | POST /watermark/detect |
| Verify a speaker's identity against known profiles | Identity Search | POST /identity/search |
| Check if text is AI-generated | Text Detection | POST /text_detect |
| Create a voice identity profile for future matching | Identity Create | POST /identity |
When multiple capabilities apply (e.g., user wants deepfake detection AND intelligence), combine them in a single POST /detect call using the intelligence: true flag rather than making separate requests.
Required Setup
API Key: Bearer token from the Resemble AI dashboard (set as
RESEMBLE_API_KEY)Base URL:
https://app.resemble.ai/api/v2Auth Header:
Authorization: Bearer <RESEMBLE_API_KEY>Media Requirement: All media must be at a publicly accessible HTTPS URL
If the user provides a local file path instead of a URL, inform them the file must be hosted at a public HTTPS URL first. Do not attempt to upload local files to the API. (Exception: POST /text_detect accepts text content inline.)
MCP Tools Available
When the Resemble MCP server is connected, use these tools instead of raw API calls:
| Tool | Purpose |
|---|---|
resemble_docs_lookup | Get comprehensive docs for any detect sub-topic |
resemble_search | Search across all documentation |
resemble_api_endpoint | Get exact OpenAPI spec for any endpoint |
resemble_api_search | Find endpoints by keyword |
resemble_get_page | Read specific documentation pages |
resemble_list_topics | List all available topics |
Tool usage pattern: Use resemble_docs_lookup with topic "detect" to get the full picture, then resemble_api_endpoint for exact request/response schemas before making API calls.
Full API Reference
Detailed request/response schemas for every endpoint are in references/api-reference.md. Consult it before making any API call to verify exact parameter names and response shapes. The sections below cover decision-making; the reference covers exact field formats.
Phase 1: Deepfake Detection
The core capability. Submit audio, image, or video for AI-generated content analysis via POST /detect.
Key flags to consider:
visualize: true— generate heatmap/visualization artifactsintelligence: true— run multimodal intelligence alongside detection (saves a round-trip)audio_source_tracing: true— identify which AI platform synthesized fake audio (only fires on"fake"audio)use_reverse_search: true— enable reverse image search (image only)zero_retention_mode: true— auto-delete media after analysis (for sensitive content)
Detection is asynchronous. Poll GET /detect/{uuid} at 2s → 5s → 10s intervals until status is "completed" or "failed". Most complete in 10–60 seconds.
Supported formats: Audio (WAV, MP3, OGG, M4A, FLAC) · Video (MP4, MOV, AVI, WMV) · Image (JPG, PNG, GIF, WEBP)
Reading Results
Audio — verdict in
metrics— uselabelandaggregated_scoreImage — verdict in
image_metrics— uselabelandscore;iflhas an Invisible Frequency Layer heatmapVideo — verdict in
video_metrics— hierarchical tree of frame/segment results; video-with-audio returns bothmetricsandvideo_metrics
See references/api-reference.md for full response schemas.
Interpreting Scores
| Score Range | Interpretation |
|---|---|
| 0.0 – 0.3 | Strong indication of authentic/real media |
| 0.3 – 0.5 | Inconclusive — recommend additional analysis |
| 0.5 – 0.7 | Likely synthetic — flag for review |
| 0.7 – 1.0 | High confidence synthetic/AI-generated |
Always present scores with context. Say "The detection returned a score of 0.87, indicating high confidence that this audio is AI-generated" — never just "it's fake."
Phase 2: Intelligence — Media Analysis
Rich structured insights about media: speaker info, emotion, transcription, translation, misinformation, abnormalities.
Two ways to run Intelligence:
Combined with detection — add
intelligence: truetoPOST /detect(preferred; one call)Standalone —
POST /intelligencewith a URL (when you only need analysis, not a deepfake verdict)
Audio/video structured fields include: speaker_info, language, dialect, emotion, speaking_style, context, message, abnormalities, transcription, translation, misinformation.
Image structured fields include: scene_description, subjects, authenticity_analysis, context_and_setting, abnormalities, misinformation.
Detect Intelligence — Ask Questions About Results
After a detection completes, ask natural-language questions via POST /detects/{detect_uuid}/intelligence with { "query": "..." }. Returns a question UUID — poll GET /detects/{detect_uuid}/intelligence/{question_uuid} until completed.
Good questions to suggest:
"Summarize the detection results in plain language"
"What specific indicators suggest this is AI-generated?"
"How do the audio and video detection results differ?"
"What is the confidence level and what does it mean?"
"Are there any inconsistencies in the analysis?"
Prerequisite: The detection must have status: "completed". Submitting a question against a processing or failed detection returns 422.
See references/api-reference.md for full parameters.
Phase 3: Audio Source Tracing
When audio is labeled "fake", identify which AI platform generated it.
Enable it by setting audio_source_tracing: true in the POST /detect request. Result appears in the detection response under audio_source_tracing.label.
Known labels: resemble_ai, elevenlabs, real, and others as the model expands.
Important: Source tracing only runs on audio labeled "fake". Real audio produces no source tracing result.
Standalone queries: GET /audio_source_tracings and GET /audio_source_tracings/{uuid}.
Phase 4: Watermarking
Apply invisible watermarks to media for provenance tracking, or detect existing watermarks.
Apply:
POST /watermark/applywithurl, optionalstrength(0.0–1.0), optionalcustom_message. AddPrefer: waitfor synchronous response, or pollGET /watermark/apply/{uuid}/result. Response includeswatermarked_mediaURL.Detect:
POST /watermark/detectwithurl. Audio returns{ has_watermark, confidence }; image/video returns{ has_watermark }.
See references/api-reference.md for exact parameter rules.
Phase 5: Identity — Speaker Verification (Beta)
Create voice identity profiles and match incoming audio against them.
Beta feature — requires joining the preview program. Inform the user if they encounter access errors.
Create profile:
POST /identitywith{ audio_url, name }Search:
POST /identity/searchwith{ audio_url, top_k }
Response returns ranked matches with confidence (higher = stronger) and distance (lower = closer match).
See references/api-reference.md for full schemas.
Phase 6: Text Detection
Detect whether text content is AI-generated or human-written via POST /text_detect.
Beta feature — requires the
detect_beta_userrole or a billing plan that includes thedfd_textproduct.
Key parameters:
text(required, max 100,000 chars)threshold(default 0.5)privacy_mode: true— text content not stored after analysiscallback_url— async notification webhook
Add Prefer: wait for synchronous response, or poll GET /text_detect/{uuid}. Response includes prediction ("ai" or "human") and confidence (0.0–1.0).
See references/api-reference.md for full schema and callback format.
Recommended Workflows
Full Media Forensics (Most Thorough)
For a comprehensive analysis, combine all capabilities:
Submit detection with all flags enabled:
{ "url": "https://example.com/suspect.mp4", "visualize": true, "intelligence": true, "audio_source_tracing": true, "use_reverse_search": true }Poll until
status: "completed"Read
metrics/image_metrics/video_metricsfor the verdictRead
intelligence.descriptionfor structured media analysisIf audio labeled
"fake", checkaudio_source_tracing.labelfor the source platformAsk follow-up questions via Detect Intelligence if anything needs clarification
Check for watermarks via
POST /watermark/detectif provenance is relevant
Quick Authenticity Check (Fastest)
Submit minimal detection:
{ "url": "..." }Poll until complete
Check
labelandaggregated_score(audio) orlabelandscore(image/video)Report result with score context
Provenance Pipeline (Content Creators)
Apply watermark to original content:
POST /watermark/applyDistribute watermarked media
Later, verify provenance:
POST /watermark/detectagainst any copy
Red Flags — Stop and Reassess
Declaring authenticity without a detection result — Never say media is real or fake based on visual/auditory inspection alone
Ignoring the score and reporting only the label — A
"fake"label with score 0.51 means something very different from score 0.95Submitting local file paths to the API — The API requires publicly accessible HTTPS URLs (does not apply to text detection)
Sending text longer than 100,000 characters to text detection — Split into chunks or inform the user of the limit
Polling too aggressively — Start at 2s intervals, back off exponentially; do not loop at <1s
Asking Detect Intelligence questions before detection completes — Results in 422 error
Expecting source tracing on "real" audio — Source tracing only runs on audio labeled
"fake"Treating beta features (Identity, Text Detection) as production-ready — Warn users about beta status
Ignoring
zero_retention_modefor sensitive media — Always suggest this flag when the user indicates the media is sensitive or privateMaking multiple separate API calls when flags can combine — Use
intelligence: trueandaudio_source_tracing: trueon the detection call instead of separate requests
Response Presentation Guidelines
When presenting results to users:
Lead with the verdict — "The detection indicates this audio is likely AI-generated (score: 0.87)"
Provide score context — Use the score interpretation table above
Mention limitations — Detection is probabilistic, not absolute proof
Include actionable next steps — Suggest intelligence queries, source tracing, or watermark checks as appropriate
For inconclusive results (0.3–0.5) — Explicitly state the result is inconclusive and recommend additional analysis with different parameters or manual review
Never present detection as legal evidence — Detection results are analytical tools, not forensic certifications
Error Handling
| Error | Cause | Resolution |
|---|---|---|
| 400 | Invalid request body or missing url | Check required parameters |
| 401 | Invalid or missing API key | Verify RESEMBLE_API_KEY |
| 404 | Detection UUID not found | Verify the UUID from the creation response |
| 422 | Detection not completed (for Intelligence) | Wait for detection to reach completed status |
| 429 | Rate limited | Back off and retry with exponential delay |
| 500 | Server error | Retry once, then report to user |
Privacy & Compliance Notes
Zero retention mode: Set
zero_retention_mode: trueto auto-delete media after analysis. The URL is redacted andmedia_deletedis set to true post-completion.Text privacy mode: Set
privacy_mode: trueon text detection to prevent text content from being stored after analysis.Data handling: Media URLs and text content are stored by default. For GDPR/compliance-sensitive workflows, enable zero retention (media) or privacy mode (text).
Callback security: If using
callback_url, ensure the endpoint is HTTPS and authenticated on the receiving end.
Files
- ATTRIBUTION.mdAdded by AutoGineer893 B
- LICENSE11.1 KiB
- SKILL.md16.1 KiB
- references/api-reference.md9.9 KiB
references/api-reference.md
Resemble Detect — Full API Reference
Detailed request/response schemas for every Resemble detection endpoint.
Base
Base URL:
https://app.resemble.ai/api/v2Auth:
Authorization: Bearer <RESEMBLE_API_KEY>
Deepfake Detection
POST /detect
Submit audio, image, or video for AI-generation analysis.
{
"url": "https://example.com/media.mp4",
"visualize": true,
"intelligence": true,
"audio_source_tracing": true
}| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | HTTPS URL to audio, image, or video file |
callback_url | string | No | Webhook URL for async completion notification |
visualize | boolean | No | Generate heatmap/visualization artifacts |
intelligence | boolean | No | Run multimodal intelligence alongside detection |
audio_source_tracing | boolean | No | Identify which AI platform synthesized fake audio |
frame_length | integer | No | Audio/video window size in seconds (1–4, default 2) |
start_region | number | No | Start of segment to analyze (seconds) |
end_region | number | No | End of segment to analyze (seconds) |
model_types | string | No | "image" or "talking_head" (for face-swap detection) |
use_reverse_search | boolean | No | Enable reverse image search (image only) |
use_ood_detector | boolean | No | Enable out-of-distribution detection |
zero_retention_mode | boolean | No | Auto-delete media after detection completes |
Supported formats: Audio (WAV, MP3, OGG, M4A, FLAC) · Video (MP4, MOV, AVI, WMV) · Image (JPG, PNG, GIF, WEBP)
GET /detect/{uuid} — Poll for Results
Detection is asynchronous. Poll until status is "completed" or "failed". Start at 2s intervals, back off to 5s, then 10s. Most detections complete within 10–60s.
Reading Results by Media Type
Audio results — in metrics:
{
"label": "fake",
"score": ["0.92", "0.88", "0.95"],
"consistency": "0.91",
"aggregated_score": "0.92",
"image": "https://..."
}label:"fake"or"real"— the verdictscore: Per-chunk prediction scores (array)aggregated_score: Overall confidence (0.0–1.0, higher = more likely synthetic)consistency: How consistent the prediction is across chunksimage: Visualization heatmap URL (ifvisualize: true)
Image results — in image_metrics:
{
"type": "ImageAnalysis",
"label": "fake",
"score": 0.87,
"image": "https://...",
"ifl": { "score": 0.82, "heatmap": "https://..." },
"reverse_image_search_sources": [
{ "url": "...", "title": "...", "verdict": "known_fake", "similarity": 0.95 }
]
}ifl: Invisible Frequency Layer analysis with heatmapreverse_image_search_sources: Known online sources (ifuse_reverse_search: true)
Video results — in video_metrics:
{
"label": "fake",
"score": 0.89,
"certainty": 0.91,
"children": [
{ "type": "VideoResult", "conclusion": "Fake", "score": 0.89, "timestamp": 2.5, "children": [...] }
]
}Hierarchical tree of frame-level and segment-level results
Video with audio track returns both
metrics(audio) andvideo_metrics(visual)
Intelligence
POST /intelligence
Analyze media for rich structured insights, standalone or alongside detection.
{ "url": "https://example.com/audio.mp3", "json": true }| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | One of | HTTPS URL to media file |
media_token | string | One of | Token from secure upload (alternative to URL) |
detect_id | string | No | UUID of existing detect to associate |
media_type | string | No | "audio", "video", or "image" (auto-detected) |
json | boolean | No | Return structured fields (default: false audio/video, true image) |
callback_url | string | No | Webhook for async mode |
Audio/Video structured response (json: true):
speaker_info— speaker description (age, gender)language/dialect— detected languageemotion— detected emotional statespeaking_style— conversational, formal, etc.context— inferred context of the speechmessage— content summaryabnormalities— anomalies detected in the mediatranscription— full transcripttranslation— translation if non-Englishmisinformation— misinformation analysis
Image structured response:
scene_description— what the image showssubjects— people/objects identifiedauthenticity_analysis— visual authenticity assessmentcontext_and_setting— environment descriptionabnormalities— visual anomaliesmisinformation— misinformation analysis
POST /detects/{detect_uuid}/intelligence — Ask Questions
After detection completes, ask natural-language questions about it:
{ "query": "How confident is the model that this audio is fake?" }Returns a question UUID. Poll GET /detects/{detect_uuid}/intelligence/{question_uuid} until status is "completed".
Prerequisite: The detection must have status: "completed". Otherwise returns 422.
Audio Source Tracing
Enable by setting audio_source_tracing: true in POST /detect.
Result appears in the detection response under audio_source_tracing:
{ "label": "elevenlabs", "error_message": null }Known source labels: resemble_ai, elevenlabs, real, and others as the model expands.
Important: Source tracing only runs when audio is labeled "fake". If audio is "real", no source tracing result appears.
Standalone queries:
GET /audio_source_tracings— list all source tracing reportsGET /audio_source_tracings/{uuid}— get specific report
Watermarking
POST /watermark/apply
{
"url": "https://example.com/image.png",
"strength": 0.3,
"custom_message": "my-organization"
}| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | HTTPS URL to media file |
strength | number | No | Watermark strength 0.0–1.0 (image/video only, default 0.2) |
custom_message | string | No | Custom message (image/video only, default "resembleai") |
Add
Prefer: waitheader for synchronous responseWithout it, poll
GET /watermark/apply/{uuid}/resultResponse includes
watermarked_mediaURL to download the watermarked file
POST /watermark/detect
{ "url": "https://example.com/suspect-image.png" }Audio detection result:
{ "has_watermark": true, "confidence": 0.95 }Image/Video detection result:
{ "has_watermark": true }Identity — Speaker Verification (Beta)
Beta feature — requires joining the preview program. Inform the user if they encounter access errors.
POST /identity — Create Identity Profile
{
"audio_url": "https://example.com/known-speaker.wav",
"name": "Jane Doe"
}POST /identity/search — Search Against Known Identities
{
"audio_url": "https://example.com/unknown-speaker.wav",
"top_k": 5
}Response:
{
"success": true,
"item": [
{ "uuid": "...", "name": "Jane Doe", "confidence": 0.92, "distance": 0.08 }
]
}Lower distance = closer match. Higher confidence = stronger match.
Text Detection
Beta feature — requires the
detect_beta_userrole or a billing plan that includes thedfd_textproduct.
POST /text_detect
Add Prefer: wait for synchronous response. Otherwise poll or use callback.
| Parameter | Type | Required | Description |
|---|---|---|---|
text | string | Yes | Text to analyze (max 100,000 characters) |
thinking | string | No | Always use "low" (default) |
threshold | float | No | Decision threshold 0.0–1.0 (default: 0.5) |
callback_url | string | No | Webhook URL for async completion notification |
privacy_mode | boolean | No | If true, text content is not stored after analysis |
Response:
{
"success": true,
"item": {
"uuid": "abc-123",
"status": "completed",
"prediction": "ai",
"confidence": 0.91,
"text_content": "This is some text to analyze.",
"privacy_mode": false,
"created_at": "...",
"updated_at": "..."
}
}prediction:"ai"or"human"— the verdictconfidence: 0.0–1.0, higher = more confidentstatus:"processing","completed", or"failed"
GET /text_detect/{uuid} — Poll
Poll until status is "completed" or "failed".
GET /text_detect — List
Returns paginated text detections for the team.
Callback
If callback_url was provided, a POST is sent on completion:
{ "success": true, "item": { ... } }On failure:
{ "success": false, "item": { ... }, "error": "Error message here" }Requirements and compatibility
Written for: GitHub Copilot
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Needs an MCP server, Needs an API key
The author says: Requires a Resemble AI API key (https://app.resemble.ai) set as RESEMBLE_API_KEY. All media must be accessible via public HTTPS URLs — local file paths are not supported except for text detection.
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- First committed by
devshahofficial
- Publisher
- GitHub (Official)
- Distributed by
- GitHub
- Source
- github/awesome-copilot · skills/resemble-detect · commit 797337f
- Licence
- Apache License 2.0 (redistribution allowed)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
- Contributors
- devshahofficial
AutoGineer is not affiliated with or endorsed by devshahofficial or GitHub.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download resemble-detect.zip