Skip to main content

Identifying hate speech in audio or video files

In this guide, we'll explore the various labels available through Content Moderation, and offer best practices for using this tool to ensure your content is safe and appropriate for all audiences.

Get started

Before we begin, make sure you have an AssemblyAI account and an API token. You can sign up for a free account and get your API token from your dashboard.

The entire source code of this guide can be viewed here.

Step-by-step instructions

  1. 1

    Create a new file and import the necessary libraries for making an HTTP request.

  2. 2

    Set up the API endpoint and headers. The headers should include your API token.

  3. 3

    Upload your local file to the AssemblyAI API.

  4. 4

    Use the upload_url returned by the AssemblyAI API to create a JSON payload containing the audio_url parameter.

  5. 5

    Make a POST request to the AssemblyAI API endpoint with the payload and headers.

  6. 6

    After making the request, you will receive an ID for the transcription. Use it to poll the API every few seconds to check the status of the transcript job. Once the status is completed, you can retrieve the transcript from the API response.

Understanding the response

In the JSON response, there will be an additional key called content_safety_labels that contains information about any sensitive content detected. The full text will be contained in the text key, and each problematic utterance will have its own labels and timestamp. The entire audio will be assigned a summary and a severity_score_summary for each category of unsafe content. Each label will be returned with a confidence score and a severity score.

For more information, see the content moderation model documentation or refer to the API reference.


The AssemblyAI API supports many different content safety labels. Identifying hate speech is only a single, important use case for automated content moderation, and you can learn about others on the AssemblyAI blog.