























Every user-generated content site needs content moderation. We’ve spilled lots of ink on this topic over the years, and even a Demuxed talk.
Feel free to dive into any of those links if it suits you. What I’m here to show you today is a one-click content moderation dashboard.
If you want to cut to the chase, here’s the GitHub link, and here’s a video of me walking through it:
The new Mux Robots API is what powers this, there are a few APIs in play here. Each of these jobs is tied to a Mux asset_id and runs async in the background.
This is the data you get back from a “moderate” job:
json
{
"thumbnail_scores": [
{ "time": 0, "sexual": 0.01, "violence": 0.02 },
{ "time": 30, "sexual": 0.03, "violence": 0.15 },
{ "time": 60, "sexual": 0.02, "violence": 0.05 }
],
"max_scores": { "sexual": 0.03, "violence": 0.15 }
}That is the job that powers this part of the UI. This helps the content moderator understand exactly what triggered the content moderation review.

The summarize endpoint sends back a summary and tags. Right now this is used as extra context for the reviewer, and it comes in handy to get a quick glance at what content is in the video before clicking play.
json
{
"title": "Snowy Combat Encounter",
"description": "A warrior engages in a high-stakes sword fight against an opponent in a desolate, snowy mountain landscape. The characters trade blows amidst the ice and rocks, demonstrating intense physical combat and agility under harsh winter conditions.",
"tags": [ "combat", "battle", "snow", "warrior", "fantasy", "swordfight", "adventure", "action", "glacier" ]
}This is the one I didn’t realize we needed until we tried it. It's extremely handy. To put it simply, you can just ask a yes/no question and get back an answer. I find this works really well when specific communities or specific groups are abusing your platform.
The data you get back is this:
json
{
"answers": [
{
"skipped": false,
"reasoning": "The visual style, specifically the character modeling, textures, and fluid movement patterns, is characteristic of 3D computer-generated animation.",
"question": "Is this an animated video?",
"confidence": 1,
"answer": "yes"
}
]
}To give you an idea of how this looks in practice, these are some of the questions we ask:
There are a couple of ways I expect you would want to use this repo in terms of actually integrating it into your application.
The first is to use the one-click deploy button, run this on Vercel as-is and wire up the webhook notifier. So then you have:
The configuration panel for the app has a Webhook configuration setup. When something is rejected, either automatically based on a rule or a threshold, or manually by clicking “reject” in the dashboard, then it will trigger the rejected webhook.

The dashboard has delivery logs for debugging webhook deliveries.

I think this setup works perfectly fine and can cover a lot of use cases. It does have some tradeoffs though, mainly running an entirely separate app and having assets data saved in two places.
You may want to take this dashboard as inspiration, and work with a coding agent to “vibe code” a content moderation dashboard into the existing backend / admin area for the application you already have. You might prompt it like this (I’m paraphrasing here, but you get the idea):
markdown
Take a look at Mux’s content-moderation-dashboard project: https://github.com/muxinc/content-moderation-dashboard
This dashboard is using several of the [Mux Robots API endpoints](https://www.mux.com/docs/guides/robots) to power the content moderation dashboard.
The full Mux API spec is here: https://www.mux.com/api-spec.json
I want to make sure that every video uploaded in my app gets run through a content moderation flow like this, and I want to establish review and auto-reject thresholds, similar to how this dashboard does it.
Understand the example `content-moderation-dashboard` from Mux, and then make a plan to build out something similar for my needs.
Is there anything this app is doing that I might not need to do? Or are there other things I should consider in my app that this example doesn’t do?
Ask me questions as you’re making a plan.I hope this project and Mux Robots makes it easier for you to add reliable and robust content moderation to your user-generated content application. Here's a link to the Github repo -- please reach out and let us know how you’re using Robots!
No credit card required to get started.
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。