> ## Documentation Index
> This page is part of the Image and Video APIs product. Fetch the complete documentation index for Image and Video APIs at: https://cloudinary.com/documentation/llms-image-and-video-apis.txt?referrer=docpage and then use it to discover all relevant pages before exploring further.
> If your task extends beyond this product, fetch the top-level index covering all Cloudinary products and topics at: https://cloudinary.com/documentation/llms.txt?referrer=docpage

# Manage and analyze UGC


Once users start uploading content, you need to manage and analyze it: moderate it to keep inappropriate content off your site, scan it for malware, analyze its quality and content, transcribe and localize videos, and automate these steps as part of a media workflow.

This page focuses on how managing and analyzing UGC applies to the four [example use cases](user_generated_content#popular_applications_of_ugc) followed throughout this guide: profile pictures, video reviews, marketplace products, and try before you buy.

> **NOTE**: Most of the functionality described on this page can (and should) be invoked as part of the [upload](user_generated_content_upload) flow, however you can also manage and analyze your assets once they've already been uploaded.

## Recommended features by use case

The following table shows which features we recommend (marked ✅) for each of these use cases:

{table:class=no-borders overview textcenter}  | Profile pictures | Video reviews | Marketplace products | Try before you buy
---|---|---|---|---
[Moderate](#moderate) | ✅  | ✅  | ✅  | 
[Detect malware](#detect_malware) | ✅  | ✅  | ✅  | ✅ 
[Analyze quality and accessibility](#analyze_quality_and_accessibility) | ✅ | | ✅ |
[Analyze content](#analyze_content) | | ✅ | ✅ |
[Transcribe and localize video subtitles](#transcribe_and_localize_video_subtitles) | | ✅ | ✅ | 
[Generate video chapters](#generate_video_chapters) | | ✅ | ✅ | 
[Add logic to uploads](#add_logic_to_uploads) | | | ✅ | 
[Set up a media workflow](#set_up_a_media_workflow) | | | ✅ | ✅ 

## Moderate

You need to ensure that the content that users are uploading is not harmful, offensive or inappropriate for your site. Depending on the volume of uploads, you could use manual and/or automatic moderation.

### Moderate manually

If you request [manual moderation](moderate_assets#moderating_assets_manually) for all uploads, then someone needs to check all uploaded assets and manually decide if they're appropriate or not. 

### Moderate automatically

If you have a large number of files being uploaded to your site, then you'll want to apply automatic moderation on upload. There are various AI-powered add-ons that you can use to block inappropriate or offensive images and videos: 
* The [Amazon Rekognition AI Moderation add-on](aws_rekognition_ai_moderation_addon) leverages Amazon Rekognition's AI to automatically identify and moderate potentially unsafe content in images, suitable for social media platforms and e-commerce websites. 

* The [Amazon Rekognition Video Moderation add-on](aws_rekognition_video_moderation_addon) specializes in video content moderation for video-sharing platforms, ensuring live-streamed and pre-recorded videos comply with guidelines. 

* The [Google AI Video Moderation add-on](google_ai_video_moderation_addon) employs Google's AI technology to assess and moderate user-generated videos, ideal for video-hosting services. 

* The [WebPurify Image Moderation add-on](webpurify_image_moderation_addon) automatically filters out inappropriate images in real-time across various platforms, from social media to e-commerce websites, ensuring adherence to content guidelines and legal standards.
You can still manually override the decisions made by the AI, if they're not 100% accurate.  

### Brand-aligned moderation

Cloudinary is working together with design partners on a brand-aligned moderation solution. This solution will allow you to moderate images based on your customized brand guidelines.

For example, it will allow you to:

* Select widely accepted, common moderation presets
* Add custom moderation criteria using natural language
* Create multiple moderation policies for different use cases (for example, different policies for product images and campaign images)
* Automate the moderation of images at scale

[Reach out](https://support.cloudinary.com/hc/en-us/requests/new) if you want to learn more or are interested in becoming a design partner.

---

Watch a clip about moderation from the [Cloudinary Academy UGC workshop](https://training.cloudinary.com/courses/using-cloudinarys-incoming-transformations-for-perfectly-crafted-user-generated-content-45-minute-workshop):

  This video is brought to you by Cloudinary's video player - embed your own!Use the controls to set the playback speed, navigate to chapters of interest and select subtitles in your preferred language.
{videoTranscript:publicId=training/8-moderation}

> **TIP**: Head to the [Cloudinary Academy](https://training.cloudinary.com) to take the full workshop or browse others - free for all Cloudinary users!
## Detect malware

It's important to ensure that your product environment remains malware-free, so when allowing users to upload files to your site, you'll want to scan them for threats. You can use the [Perception Point Malware Detection add-on](perception_point_malware_detection_addon) to do this.

## Analyze quality and accessibility

As you don't know what's being uploaded to your product environment, you may want to analyze the content for [quality](image_quality_analysis) and [accessibility](accessibility_analysis) and take steps to improve these aspects if necessary, for example, see [Improve image quality](user_generated_content_transform_customize#improve_image_quality). 

Watch a clip about analyzing quality from the [Cloudinary Academy UGC workshop](https://training.cloudinary.com/courses/using-cloudinarys-incoming-transformations-for-perfectly-crafted-user-generated-content-45-minute-workshop):

  This video is brought to you by Cloudinary's video player - embed your own!Use the controls to set the playback speed, navigate to chapters of interest and select subtitles in your preferred language.
{videoTranscript:publicId=training/10-quality-analysis}

> **TIP**: Head to the [Cloudinary Academy](https://training.cloudinary.com) to take the full workshop or browse others - free for all Cloudinary users!
## Analyze content

Content analysis add-ons that use AI to determine what's in an image or video can help you to organize assets uploaded by your users, make them easier to find, as well as check that what's being uploaded is expected. For example, if your site is for selling cars, you'd want to check that the image contains a car, or at least a car part.
There are various auto-tagging add-ons available that automatically add tags to your assets on or after upload to your product environment. Some of the add-ons have broad tagging capabilities, such as the [Amazon Rekognition](aws_rekognition_auto_tagging_addon), [Google Image](google_auto_tagging_addon), and [Imagga](imagga_auto_tagging_addon) auto-tagging add-ons for images, and the [Google Video](google_automatic_video_tagging_addon) and [Microsoft Azure Video Indexer](microsoft_azure_video_indexer_addon#video_categorization) auto-tagging add-ons for videos. You can use these add-ons in conjunction with the [Google Translation add-on](translation_addons) to translate your tags to different languages.

Others are more specific in terms of what they detect, for example you can use the [Amazon Rekognition Celebrity Detection add-on](aws_rekognition_celebrity_and_face_detection_addon) to detect celebrities, or the [Cloudinary AI Content Analysis add-on](cloudinary_ai_content_analysis_automatic_tagging) to detect objects in a specific object model.

You can also try out the [Cloudinary AI Vision add-on](cloudinary_ai_vision_addon) to interpret and respond to visual content queries. This is particularly useful for determining if user-generated content is suitable for your site as you can be very specific in what you allow or reject based on components of the image.
Based on the content of the image, your workflow could also automatically set other [custom metadata](custom_metadata) on your assets.

Watch a clip about analyzing content from the [Cloudinary Academy UGC workshop](https://training.cloudinary.com/courses/using-cloudinarys-incoming-transformations-for-perfectly-crafted-user-generated-content-45-minute-workshop):

  This video is brought to you by Cloudinary's video player - embed your own!Use the controls to set the playback speed, navigate to chapters of interest and select subtitles in your preferred language.
{videoTranscript:publicId=training/9-ai-content-analysis}

> **TIP**: Head to the [Cloudinary Academy](https://training.cloudinary.com) to take the full workshop or browse others - free for all Cloudinary users!
## Transcribe and localize video subtitles

When a user uploads a video with speech, you can automatically [generate a transcript](video_transcription), which you can use for subtitles, captions or other purposes. 

A customer-provided video review may be valuable to other potential customers in different countries. Using Cloudinary's [auto transcription](video_transcription) feature together with the [Google Translate](translation_addons) add-on can substantially broaden the audience of these videos by providing subtitles in different languages.

Use the `auto_transcription` parameter when uploading the video, with the `translate` option set to the different languages. 

```multi
|nodejs
cloudinary.v2.uploader
.upload("my-video.mp4", 
  { resource_type: "video", 
    auto_transcription: {
      "translate": ["fr-FR", "es", "de"]
    }
  })
.then(result=>console.log(result));

|curl
curl https://api.cloudinary.com/v1_1/demo/video/upload -X POST -F 'file=@/path/to/my-video.mp4' -F 'auto_transcription={"translate": ["fr-FR", "es", "de"]}' -F 'timestamp=173719931' -F 'api_key=436464676' -F 'signature=a781d61f86a6f818af'
```

This automatically creates the transcript files, which the Video Player can display when you add `subtitles` and `captions` in the `textTracks` option of your [Cloudinary Video Player](cloudinary_video_player) configuration:

```js
{
    textTracks: {
      captions: {
        label: 'English (Original)',
        default: true,
      },
      options: {
        theme: 'videojs-default',
      },
      subtitles: [
      {
        label: 'French',
        language: 'fr-FR',
      },
      {
        label: 'Spanish',
        language: 'es',
      },
      {
        label: 'German',
        language: 'de',
      }
    ]
  }
}
```

Here's an example of a video with subtitles. Click the **Captions** option at the bottom of the Video Player to see all the language options:

## Generate video chapters

Videos can be analyzed automatically on upload to determine where different sections (chapters) start and end. These [video chapter markers](video_player_customization#video_chapters) can be used by video players to allow users to jump to a different part of the video and understand what that section is about.

## Add logic to uploads

You can add logic to uploads performed by users in order to conditionally change something, for example add tags or metadata based on information returned about the uploaded asset. You can decide if your JavaScript code is evaluated [before](upload_parameters_processing#eval_modify_upload_options_before_upload) or [after](upload_parameters_processing#on_success_update_metadata_after_upload) the upload.

## Set up a media workflow

You can use [MediaFlows](mediaflows) to define actions to take after someone uploads media to your site. This is a standalone product, and uses a web-based drag-and-drop interface to simplify the creation of workflows. In addition to defining how the media behaves, you can also set up a flow to delete uploaded assets after a certain period of time, when they're no longer needed.

Watch a clip about MediaFlows from the [Cloudinary Academy UGC workshop](https://training.cloudinary.com/courses/using-cloudinarys-incoming-transformations-for-perfectly-crafted-user-generated-content-45-minute-workshop):

  This video is brought to you by Cloudinary's video player - embed your own!Use the controls to set the playback speed, navigate to chapters of interest and select subtitles in your preferred language.
{videoTranscript:publicId=training/11-media-flows}

> **TIP**: Head to the [Cloudinary Academy](https://training.cloudinary.com) to take the full workshop or browse others - free for all Cloudinary users!
> **READING**:
>
> * [User-generated content](user_generated_content): Overview and the UGC workflow diagram.

> * [Upload UGC](user_generated_content_upload): Upload methods, upload behavior, access control, and transform on upload.

> * [Transform and customize UGC](user_generated_content_transform_customize): Improve quality, resize, standardize, watermark, and personalize.

> * [Optimize and deliver UGC](user_generated_content_optimize_deliver): Optimize on the fly and deliver videos with the Cloudinary Video Player.
