Cloudinary Logo Cloudinary Docs Docs
  • Programmable Media
    • Get Started
    • Guides
    • References
    • SDKs
    • Release Notes
  • Digital Asset Management
    • Get Started
    • User Guides
    • Admin Guides
    • Release Notes
  • More Products
    • Integrations Add Cloudinary capabilities to your tech stack apps and platforms
    • MediaFlows Low-code workflow automation for images and videos
    • Dimensions (Beta) Create and deliver engaging 3D immersive experiences
    • FinalTouch (Early Access) AI-powered virtual photoshoot and image creation for eCommerce
  • Resources
    • Blog
    • Training
    • Support
    • Community
    • Podcasts
    • Demos
    • Roadmap
    • Additional Resources
  • Pricing
Light theme
Dark theme
Device default
Go to Console
sign up for free
  • Get Started
    • Programmable Media overview
    • Developer kickstart
      • Step 1: Register and find credentials
      • Step 2: Load pages faster with optimization
      • Step 3: Your first transformations
      • Step 4: Resize transformations
      • Step 5: Set up and run your first SDK project
      • Congrats! You're ready to code!
    • SDK quick starts
    • Try it!
      • Code explorers
      • Feature demos
      • Postman collections
    • 5-step walkthrough
    • Video tutorial library
      • Programmatic asset management
      • Optimization and delivery
      • Transformations
      • Dev Hints on YouTube
    • Additional onboarding resources
      • Service introduction
      • Onboarding FAQ
      • Enterprise onboarding FAQ
      • Migration guide
      • Glossary
  • Guides
    • Upload
      • Uploading assets
      • Customizing uploads
      • Client-side uploading
      • Upload presets
      • Upload widget
    • Transform and customize
      • Image transformations
      • Video transformations
      • Eager and incoming transformations
      • Media Editor widget
      • How are transformations counted?
      • Add-ons
    • Optimize and deliver
      • Optimization overview
      • Image optimization
      • Video and audio optimization
      • Responsive images
      • Deliver remote media files
      • Paged and layered media
      • Media access methods
      • CDN delivery options
      • Product Gallery widget
      • Add-ons
    • Manage and analyze
      • Basic management
      • Search for assets
      • Custom metadata
      • Analyze assets
      • Moderate assets
      • Webhook notifications
      • Create assets
      • Advanced asset management
      • Add-ons
    • Video APIs
      • Video best practices
      • Video Player
      • Video transcription
      • Video analytics
      • Live streaming (Beta)
    • User-generated content
    • AI in action
    • Native mobile
    • Add-ons
      • Advanced Facial Attributes Detection
      • Amazon Rekognition AI Moderation
      • Amazon Rekognition Video Moderation
      • Amazon Rekognition Auto Tagging
      • Amazon Rekognition Celebrity Detection
      • Aspose Document Conversion
      • Cloudinary AI Background Removal
      • Cloudinary AI Content Analysis
      • Cloudinary AI Vision (Beta)
      • Cloudinary Duplicate Image Detection
      • Google AI Video Moderation
      • Google AI Video Transcription
      • Google Auto Tagging
      • Google Automatic Video Tagging
      • Google Translation
      • Imagga Auto Tagging
      • Imagga Crop and Scale
      • Perception Point Malware Detection
      • Microsoft Azure Video Indexer
      • OCR Text Detection and Extraction
      • Pixelz - Remove the Background
      • URL2PNG Website Screenshots
      • VIESUS™ Automatic Image Enhancement
      • WebPurify Image Moderation
  • References
    • Transformation URL API
    • Upload API
    • Admin API
    • Provisioning API
    • Analyze API (Beta)
    • Live streaming API (Beta)
    • Cloudinary CLI
    • SDK references
      • Transformation Builder reference
      • React SDK reference
      • Vue.js SDK reference
      • JavaScript SDK reference
      • Angular SDK reference
      • PHP SDK reference
      • Go SDK reference
      • Dart SDK reference
      • Flutter SDK reference
    • Postman collections
    • Upload Widget API
    • Product Gallery API
    • Media Editor API
    • Video Player API
  • SDKs
    • Backend SDKs
      • Node.js SDK
      • Python SDK
      • PHP SDK
      • Java SDK
      • Ruby/Rails SDK
      • .NET SDK
      • Go SDK
      • Dart SDK
      • PHP SDK (Legacy)
    • Frontend SDKs
      • React SDK
      • Vue.js SDK
      • Angular SDK
      • JavaScript SDK
      • jQuery SDK
      • React SDK (Legacy)
      • Vue.js SDK (Legacy)
      • Angular SDK (Legacy)
      • JavaScript SDK (Legacy)
    • Mobile SDKs
      • iOS SDK
      • Android SDK
      • Flutter SDK
      • React Native SDK
      • Kotlin SDK
    • Community-developed libraries
      • Next.js
      • Astro
      • Laravel
      • NuxtJS
      • Svelte
      • Gatsby
      • Netlify
      • Drupal
  • Release Notes
    • Latest: October 9, 2024
    • August 12, 2024
    • June 27, 2024
    • Previous releases
      • May 31, 2024
      • April 16, 2024
      • February 28, 2024
      • January 03, 2024
      • November 13, 2023
      • October 26, 2023
      • September 21, 2023
      • August 15, 2023
      • July 13, 2023
      • June 19, 2023
      • May 16, 2023
      • Apr 04, 2023
      • Feb 21, 2023
      • Dec 27, 2022
  • Get Started
    • Programmable Media overview
    • Developer kickstart
      • Step 1: Register and find credentials
      • Step 2: Load pages faster with optimization
      • Step 3: Your first transformations
      • Step 4: Resize transformations
      • Step 5: Set up and run your first SDK project
      • Congrats! You're ready to code!
    • SDK quick starts
    • Try it!
      • Code explorers
      • Feature demos
      • Postman collections
    • 5-step walkthrough
    • Video tutorial library
      • Programmatic asset management
        • Programmatic upload
          • Upload programmatically
          • Create upload presets
          • Auto upload
          • Auto-tag assets
          • Moderate images with AI
          • Upload images in Flutter
          • Upload images in Node.js
          • Upload multiple files in Node.js
          • Upload videos in Node.js
          • Upload images in Python
          • Upload videos in Python
          • Upload assets in a React app
          • Upload assets in a Next.js app
          • Upload assets with Server Actions
          • Upload assets in a SvelteKit app
          • Upload assets in a Remix app
          • Use webhooks to remove backgrounds
        • Interaction with Cloudinary APIs
          • Generate upload signature
          • Postman collections introduction
        • Cloudinary SDKs
          • Find your credentials
          • Configure the JavaScript SDK
          • Configure the React SDK
          • Configure the Flutter SDK
          • Configure Svelte Cloudinary
          • Configure the Javascript SDK in Svelte
          • Configure the Node.js SDK
          • Configure the Python SDK
          • Configure the Vue.js SDK
          • Configure the Next.js SDK
          • List images in Next.js
          • Captioning on upload with Node.js
          • Delete assets with Node.js
          • Manage images in a Django app
        • Cloudinary CLI
          • Get started with the CLI
          • Scripting with the CLI
          • Get creative with the CLI
          • Upload with the CLI
        • Widgets
          • Upload Widget
          • Product Gallery
          • Product Gallery in React
          • Product Gallery accessibility
        • Administration
          • Enable automatic backups
          • Restore asset versions
          • Restore deleted assets
      • Optimization and delivery
        • Programmatic optimization
          • Optimization tips
          • Optimize videos in React
          • Transform and optimize images in Svelte
          • Optimize videos in Next.js
          • Optimize Images with Nuxt Cloudinary
          • Optimize Images in SolidJS with Cloudinary
          • Optimize images in Flutter
        • Programmatic delivery
          • Deliver images with the Next.js Image component
          • Deliver images with the Nuxt Image component
          • Diagnosing error codes
        • Video Player
          • Video Player in React
          • Video Player in Next.js
          • Video Player in HTML
      • Transformations
        • Get started with transformations
          • Transformation basics
          • Transformation Builder
          • Gravity-based crops for images
          • Enhance and restore images
          • Transformation overlays
          • Content-aware image cropping
          • Content-aware video cropping
          • Convert videos to animated images
        • Advanced transformation features
          • Text overlay transformations
          • Complex transformations
          • Named transformations
          • Named transformations using TX Builder
          • Advanced image components
          • Trim videos in Node.js
          • Splice videos in Node.js
          • Zoompan effect
          • Video transformations
          • Crop and resize images in React
          • Crop and resize videos in React
          • Crop and resize images in Python
          • Remove backgrounds and add drop shadows
          • AI generative fill in Next.js
          • Color accessibility in JavaScript
        • Transformations for social media
          • Social media image cards in Next.js
          • Social media image cards in Svelte
      • Dev Hints on YouTube
    • Additional onboarding resources
      • Service introduction
      • Onboarding FAQ
        • Enterprise onboarding FAQ
        • Migration guide
        • Glossary
    • Guides
      • Upload
        • Uploading assets
        • Customizing uploads
        • Client-side uploading
        • Upload presets
        • Upload widget
      • Transform and customize
        • Image transformations
          • Image transformations overview
          • Resizing and cropping
          • Placing layers on images
          • Effects and enhancements
          • Face-detection based transformations
          • Custom focus areas
          • Animated images
          • Transformations on 3D models
          • Conditional transformations
          • User-defined variables and arithmetic transformations
          • Custom functions
        • Video transformations
          • Video transformations overview
          • Resizing and cropping
          • Trimming and concatenating
          • Placing layers on videos
          • Effects and enhancements
          • Audio transformations
          • Advanced video transformations
            • Converting videos to animated images
            • Conditional transformations
            • User-defined variables and arithmetic transformations
        • Eager and incoming transformations
        • Media Editor widget
        • How are transformations counted?
        • Add-ons
      • Optimize and deliver
        • Optimization overview
        • Image optimization
        • Video and audio optimization
          • Video optimization
          • Adaptive bitrate streaming
          • Audio optimization
        • Responsive images
          • Using HTML and dynamic image transformations
          • Using JavaScript frontend frameworks
          • Using the cloudinary-core JS library
          • Using client hints
        • Deliver remote media files
          • Social media profile pictures
        • Paged and layered media
        • Media access methods
        • CDN delivery options
        • Product Gallery widget
        • Add-ons
      • Manage and analyze
        • Basic management
          • Media Explorer
          • List assets
          • Update assets
          • Delete assets
          • Rename assets
          • Relate assets
        • Search for assets
          • Search API method
          • Cacheable search URLs
          • Visual Search
          • Media Explorer search
          • Search expressions
        • Custom metadata
          • Tags
          • Contextual metadata
          • Structured metadata
            • Conditional metadata rules
        • Analyze assets
          • Image quality analysis
          • Accessibility analysis
          • Semantic data extraction
          • Media Inspector (Labs)
          • Analyze API (Beta)
        • Moderate assets
        • Webhook notifications
        • Create assets
          • Animated images
          • Videos
          • Archives
          • Sprites
          • Image collages
          • PDF files from images
          • Images from text
        • Advanced asset management
          • Signatures
            • Authentication signatures
            • Notification signatures
            • Delivery URL signatures
            • Response signatures
          • Provenance and authenticity
          • Backups and version management
          • Invalidate cached assets
          • Account usage data
          • Folder modes
        • Add-ons
      • Video APIs
        • Video best practices
          • Social media videos
        • Video Player
          • Video Player features
          • Installation and setup
          • How to embed the Video Player
          • Video Player customization
          • Playlists and recommendations
          • HLS and MPEG-DASH
          • Video Player advanced features
            • Events and analytics
            • Video ads and monetization
            • Shoppable Video
            • Interactive Video (Beta)
          • Video Player API reference
        • Video transcription
        • Video analytics
        • Live streaming (Beta)
          • Live streaming API reference
          • Simulated live streaming
      • User-generated content
      • AI in action
      • Native mobile
      • Add-ons
        • Advanced Facial Attributes Detection
        • Amazon Rekognition AI Moderation
        • Amazon Rekognition Video Moderation
        • Amazon Rekognition Auto Tagging
        • Amazon Rekognition Celebrity Detection
        • Aspose Document Conversion
        • Cloudinary AI Background Removal
        • Cloudinary AI Content Analysis
        • Cloudinary AI Vision (Beta)
        • Cloudinary Duplicate Image Detection
        • Google AI Video Moderation
        • Google AI Video Transcription
        • Google Auto Tagging
        • Google Automatic Video Tagging
        • Google Translation
        • Imagga Auto Tagging
        • Imagga Crop and Scale
        • Perception Point Malware Detection
        • Microsoft Azure Video Indexer
        • OCR Text Detection and Extraction
        • Pixelz - Remove the Background
        • URL2PNG Website Screenshots
        • VIESUS™ Automatic Image Enhancement
        • WebPurify Image Moderation
    • References
      • Transformation URL API
      • Upload API
      • Admin API
      • Provisioning API
      • Analyze API (Beta)
      • Live streaming API (Beta)
      • Cloudinary CLI
      • SDK references
        • Transformation Builder reference
        • React SDK reference
        • Vue.js SDK reference
        • JavaScript SDK reference
        • Angular SDK reference
        • PHP SDK reference
        • Go SDK reference
        • Dart SDK reference
        • Flutter SDK reference
      • Postman collections
      • Upload Widget API
      • Product Gallery API
      • Media Editor API
      • Video Player API
    • SDKs
      • Backend SDKs
        • Node.js SDK
          • Node.js introduction
          • Node.js quick start
          • Node.js image and video upload
          • Node.js image transformations
          • Node.js video transformations
          • Node.js asset management
          • Node.js video tutorials
        • Python SDK
          • Python introduction
          • Python quick start
          • Python image and video upload
          • Python image transformations
          • Python video transformations
          • Python asset management
          • Python sample projects
          • Python video tutorials
        • PHP SDK
          • PHP introduction
          • PHP quick start
          • PHP image and video upload
          • PHP image transformations
          • PHP video transformations
          • PHP asset management
          • PHP Management reference
          • PHP Transformation reference
        • Java SDK
          • Java introduction
          • Java quick start
          • Java image and video upload
          • Java image transformations
          • Java video transformations
          • Java asset management
        • Ruby/Rails SDK
          • Ruby/Rails introduction
          • Ruby/Rails quick start
          • Ruby/Rails image and video upload
          • Ruby/Rails image transformations
          • Ruby/Rails video transformations
          • Ruby/Rails asset management
          • CarrierWave integration
          • Attachinary integration
          • Active Storage integration
        • .NET SDK
          • .NET introduction
          • .NET quick start
          • .NET image and video upload
          • .NET image transformations
          • .NET video transformations
          • .NET asset management
        • Go SDK
          • Go introduction
          • Go quick start
          • Go image and video upload
          • Go media transformations
          • Go asset management
          • Go SDK reference
        • Dart SDK
          • Dart introduction
          • Dart quick start
          • Dart image and video upload
          • Dart media transformations
          • Dart SDK reference
        • PHP SDK (Legacy)
          • PHP introduction
          • PHP image and video upload
          • PHP image transformations
          • PHP video transformations
          • PHP asset management
          • PHP migration guide
      • Frontend SDKs
        • React SDK
          • React introduction
          • React quick start
          • React image and video upload
          • React image transformations
          • React video transformations
          • React sample projects
          • React video tutorials
          • React SDK reference
          • Transformation Builder reference
        • Vue.js SDK
          • Vue.js introduction
          • Vue.js quick start
          • Vue.js image and video upload
          • Vue.js image transformations
          • Vue.js video transformations
          • Vue.js sample projects
          • Vue.js video tutorials
          • Vue.js SDK reference
          • Transformation Builder reference
        • Angular SDK
          • Angular introduction
          • Angular quick start
          • Angular image and video upload
          • Angular image transformations
          • Angular video transformations
          • Angular sample projects
          • Angular SDK reference
          • Transformation Builder reference
        • JavaScript SDK
          • JavaScript introduction
          • JavaScript quick start
          • JavaScript image and video upload
          • JavaScript image transformations
          • JavaScript video transformations
          • JavaScript sample projects
          • JavaScript video tutorials
          • JavaScript SDK reference
          • Transformation Builder reference
        • jQuery SDK
          • jQuery introduction
          • jQuery image and video upload
          • jQuery image transformations
          • jQuery video transformations
        • React SDK (Legacy)
          • React introduction
          • React image and video upload
          • React image transformations
          • React video transformations
          • React migration guide
        • Vue.js SDK (Legacy)
          • Vue.js introduction
          • Vue.js image and video upload
          • Vue.js image transformations
          • Vue.js video transformations
          • Vue.js migration guide
        • Angular SDK (Legacy)
          • Angular introduction
          • Angular image and video upload
          • Angular image transformations
          • Angular video transformations
          • Angular migration guide
        • JavaScript SDK (Legacy)
          • JavaScript introduction
          • JavaScript image and video upload
          • JavaScript image transformations
          • JavaScript video transformations
          • JavaScript migration guide
      • Mobile SDKs
        • iOS SDK
          • iOS introduction
          • iOS quick start
          • iOS image and video upload
          • iOS image transformations
          • iOS video transformations
          • iOS video player
          • iOS sample projects
        • Android SDK
          • Android introduction
          • Android image and video upload
          • Android image transformations
          • Android video transformations
          • Android video player
          • Android sample projects
        • Flutter SDK
          • Flutter introduction
          • Flutter quick start
          • Flutter image and video upload
          • Flutter media transformations
          • Flutter video player
          • Flutter video tutorials
          • Dart-based cloudinary_url_gen package reference
          • Flutter SDK reference
        • React Native SDK
          • React Native introduction
          • React Native image and video upload
          • React Native image transformations
          • React Native video transformations
          • React Native video player
        • Kotlin SDK
          • Kotlin media transformations
      • Community-developed libraries
        • Next.js
        • Astro
        • Laravel
        • NuxtJS
        • Svelte
        • Gatsby
        • Netlify
        • Drupal
    • Release Notes
      • Latest: October 9, 2024
      • August 12, 2024
      • June 27, 2024
      • Previous releases
        • May 31, 2024
        • April 16, 2024
        • February 28, 2024
        • January 03, 2024
        • November 13, 2023
        • October 26, 2023
        • September 21, 2023
        • August 15, 2023
        • July 13, 2023
        • June 19, 2023
        • May 16, 2023
        • Apr 04, 2023
        • Feb 21, 2023
        • Dec 27, 2022
    Programmable Media
    • Get Started
    • Guides
    • References
    • SDKs
    • Release Notes
    Digital Asset Management
    • Get Started
    • User Guides
    • Admin Guides
    • Release Notes
  • More Products
      More Products
      Integrations
      Add Cloudinary capabilities to your tech stack apps and platforms
      MediaFlows
      Low-code workflow automation for images and videos
      Dimensions (Beta)
      Create and deliver engaging 3D immersive experiences
      FinalTouch (Early Access)
      AI-powered virtual photoshoot and image creation for eCommerce
  • Resources
      Resources
      Blog
      Training
      Support
      Community
      Podcasts
      Demos
      Roadmap
      Additional Resources
  • Pricing
    sign up for free
    Programmable Media
    Menu
    • Get Started
      • Programmable Media overview
      • Developer kickstart
        • Step 1: Register and find credentials
        • Step 2: Load pages faster with optimization
        • Step 3: Your first transformations
        • Step 4: Resize transformations
        • Step 5: Set up and run your first SDK project
        • Congrats! You're ready to code!
      • SDK quick starts
      • Try it!
        • Code explorers
        • Feature demos
        • Postman collections
      • 5-step walkthrough
      • Video tutorial library
        • Programmatic asset management
          • Programmatic upload
            • Upload programmatically
            • Create upload presets
            • Auto upload
            • Auto-tag assets
            • Moderate images with AI
            • Upload images in Flutter
            • Upload images in Node.js
            • Upload multiple files in Node.js
            • Upload videos in Node.js
            • Upload images in Python
            • Upload videos in Python
            • Upload assets in a React app
            • Upload assets in a Next.js app
            • Upload assets with Server Actions
            • Upload assets in a SvelteKit app
            • Upload assets in a Remix app
            • Use webhooks to remove backgrounds
          • Interaction with Cloudinary APIs
            • Generate upload signature
            • Postman collections introduction
          • Cloudinary SDKs
            • Find your credentials
            • Configure the JavaScript SDK
            • Configure the React SDK
            • Configure the Flutter SDK
            • Configure Svelte Cloudinary
            • Configure the Javascript SDK in Svelte
            • Configure the Node.js SDK
            • Configure the Python SDK
            • Configure the Vue.js SDK
            • Configure the Next.js SDK
            • List images in Next.js
            • Captioning on upload with Node.js
            • Delete assets with Node.js
            • Manage images in a Django app
          • Cloudinary CLI
            • Get started with the CLI
            • Scripting with the CLI
            • Get creative with the CLI
            • Upload with the CLI
          • Widgets
            • Upload Widget
            • Product Gallery
            • Product Gallery in React
            • Product Gallery accessibility
          • Administration
            • Enable automatic backups
            • Restore asset versions
            • Restore deleted assets
        • Optimization and delivery
          • Programmatic optimization
            • Optimization tips
            • Optimize videos in React
            • Transform and optimize images in Svelte
            • Optimize videos in Next.js
            • Optimize Images with Nuxt Cloudinary
            • Optimize Images in SolidJS with Cloudinary
            • Optimize images in Flutter
          • Programmatic delivery
            • Deliver images with the Next.js Image component
            • Deliver images with the Nuxt Image component
            • Diagnosing error codes
          • Video Player
            • Video Player in React
            • Video Player in Next.js
            • Video Player in HTML
        • Transformations
          • Get started with transformations
            • Transformation basics
            • Transformation Builder
            • Gravity-based crops for images
            • Enhance and restore images
            • Transformation overlays
            • Content-aware image cropping
            • Content-aware video cropping
            • Convert videos to animated images
          • Advanced transformation features
            • Text overlay transformations
            • Complex transformations
            • Named transformations
            • Named transformations using TX Builder
            • Advanced image components
            • Trim videos in Node.js
            • Splice videos in Node.js
            • Zoompan effect
            • Video transformations
            • Crop and resize images in React
            • Crop and resize videos in React
            • Crop and resize images in Python
            • Remove backgrounds and add drop shadows
            • AI generative fill in Next.js
            • Color accessibility in JavaScript
          • Transformations for social media
            • Social media image cards in Next.js
            • Social media image cards in Svelte
        • Dev Hints on YouTube
      • Additional onboarding resources
        • Service introduction
        • Onboarding FAQ
          • Enterprise onboarding FAQ
          • Migration guide
          • Glossary
      • Guides
        • Upload
          • Uploading assets
          • Customizing uploads
          • Client-side uploading
          • Upload presets
          • Upload widget
        • Transform and customize
          • Image transformations
            • Image transformations overview
            • Resizing and cropping
            • Placing layers on images
            • Effects and enhancements
            • Face-detection based transformations
            • Custom focus areas
            • Animated images
            • Transformations on 3D models
            • Conditional transformations
            • User-defined variables and arithmetic transformations
            • Custom functions
          • Video transformations
            • Video transformations overview
            • Resizing and cropping
            • Trimming and concatenating
            • Placing layers on videos
            • Effects and enhancements
            • Audio transformations
            • Advanced video transformations
              • Converting videos to animated images
              • Conditional transformations
              • User-defined variables and arithmetic transformations
          • Eager and incoming transformations
          • Media Editor widget
          • How are transformations counted?
          • Add-ons
        • Optimize and deliver
          • Optimization overview
          • Image optimization
          • Video and audio optimization
            • Video optimization
            • Adaptive bitrate streaming
            • Audio optimization
          • Responsive images
            • Using HTML and dynamic image transformations
            • Using JavaScript frontend frameworks
            • Using the cloudinary-core JS library
            • Using client hints
          • Deliver remote media files
            • Social media profile pictures
          • Paged and layered media
          • Media access methods
          • CDN delivery options
          • Product Gallery widget
          • Add-ons
        • Manage and analyze
          • Basic management
            • Media Explorer
            • List assets
            • Update assets
            • Delete assets
            • Rename assets
            • Relate assets
          • Search for assets
            • Search API method
            • Cacheable search URLs
            • Visual Search
            • Media Explorer search
            • Search expressions
          • Custom metadata
            • Tags
            • Contextual metadata
            • Structured metadata
              • Conditional metadata rules
          • Analyze assets
            • Image quality analysis
            • Accessibility analysis
            • Semantic data extraction
            • Media Inspector (Labs)
            • Analyze API (Beta)
          • Moderate assets
          • Webhook notifications
          • Create assets
            • Animated images
            • Videos
            • Archives
            • Sprites
            • Image collages
            • PDF files from images
            • Images from text
          • Advanced asset management
            • Signatures
              • Authentication signatures
              • Notification signatures
              • Delivery URL signatures
              • Response signatures
            • Provenance and authenticity
            • Backups and version management
            • Invalidate cached assets
            • Account usage data
            • Folder modes
          • Add-ons
        • Video APIs
          • Video best practices
            • Social media videos
          • Video Player
            • Video Player features
            • Installation and setup
            • How to embed the Video Player
            • Video Player customization
            • Playlists and recommendations
            • HLS and MPEG-DASH
            • Video Player advanced features
              • Events and analytics
              • Video ads and monetization
              • Shoppable Video
              • Interactive Video (Beta)
            • Video Player API reference
          • Video transcription
          • Video analytics
          • Live streaming (Beta)
            • Live streaming API reference
            • Simulated live streaming
        • User-generated content
        • AI in action
        • Native mobile
        • Add-ons
          • Advanced Facial Attributes Detection
          • Amazon Rekognition AI Moderation
          • Amazon Rekognition Video Moderation
          • Amazon Rekognition Auto Tagging
          • Amazon Rekognition Celebrity Detection
          • Aspose Document Conversion
          • Cloudinary AI Background Removal
          • Cloudinary AI Content Analysis
          • Cloudinary AI Vision (Beta)
          • Cloudinary Duplicate Image Detection
          • Google AI Video Moderation
          • Google AI Video Transcription
          • Google Auto Tagging
          • Google Automatic Video Tagging
          • Google Translation
          • Imagga Auto Tagging
          • Imagga Crop and Scale
          • Perception Point Malware Detection
          • Microsoft Azure Video Indexer
          • OCR Text Detection and Extraction
          • Pixelz - Remove the Background
          • URL2PNG Website Screenshots
          • VIESUS™ Automatic Image Enhancement
          • WebPurify Image Moderation
      • References
        • Transformation URL API
        • Upload API
        • Admin API
        • Provisioning API
        • Analyze API (Beta)
        • Live streaming API (Beta)
        • Cloudinary CLI
        • SDK references
          • Transformation Builder reference
          • React SDK reference
          • Vue.js SDK reference
          • JavaScript SDK reference
          • Angular SDK reference
          • PHP SDK reference
          • Go SDK reference
          • Dart SDK reference
          • Flutter SDK reference
        • Postman collections
        • Upload Widget API
        • Product Gallery API
        • Media Editor API
        • Video Player API
      • SDKs
        • Backend SDKs
          • Node.js SDK
            • Node.js introduction
            • Node.js quick start
            • Node.js image and video upload
            • Node.js image transformations
            • Node.js video transformations
            • Node.js asset management
            • Node.js video tutorials
          • Python SDK
            • Python introduction
            • Python quick start
            • Python image and video upload
            • Python image transformations
            • Python video transformations
            • Python asset management
            • Python sample projects
            • Python video tutorials
          • PHP SDK
            • PHP introduction
            • PHP quick start
            • PHP image and video upload
            • PHP image transformations
            • PHP video transformations
            • PHP asset management
            • PHP Management reference
            • PHP Transformation reference
          • Java SDK
            • Java introduction
            • Java quick start
            • Java image and video upload
            • Java image transformations
            • Java video transformations
            • Java asset management
          • Ruby/Rails SDK
            • Ruby/Rails introduction
            • Ruby/Rails quick start
            • Ruby/Rails image and video upload
            • Ruby/Rails image transformations
            • Ruby/Rails video transformations
            • Ruby/Rails asset management
            • CarrierWave integration
            • Attachinary integration
            • Active Storage integration
          • .NET SDK
            • .NET introduction
            • .NET quick start
            • .NET image and video upload
            • .NET image transformations
            • .NET video transformations
            • .NET asset management
          • Go SDK
            • Go introduction
            • Go quick start
            • Go image and video upload
            • Go media transformations
            • Go asset management
            • Go SDK reference
          • Dart SDK
            • Dart introduction
            • Dart quick start
            • Dart image and video upload
            • Dart media transformations
            • Dart SDK reference
          • PHP SDK (Legacy)
            • PHP introduction
            • PHP image and video upload
            • PHP image transformations
            • PHP video transformations
            • PHP asset management
            • PHP migration guide
        • Frontend SDKs
          • React SDK
            • React introduction
            • React quick start
            • React image and video upload
            • React image transformations
            • React video transformations
            • React sample projects
            • React video tutorials
            • React SDK reference
            • Transformation Builder reference
          • Vue.js SDK
            • Vue.js introduction
            • Vue.js quick start
            • Vue.js image and video upload
            • Vue.js image transformations
            • Vue.js video transformations
            • Vue.js sample projects
            • Vue.js video tutorials
            • Vue.js SDK reference
            • Transformation Builder reference
          • Angular SDK
            • Angular introduction
            • Angular quick start
            • Angular image and video upload
            • Angular image transformations
            • Angular video transformations
            • Angular sample projects
            • Angular SDK reference
            • Transformation Builder reference
          • JavaScript SDK
            • JavaScript introduction
            • JavaScript quick start
            • JavaScript image and video upload
            • JavaScript image transformations
            • JavaScript video transformations
            • JavaScript sample projects
            • JavaScript video tutorials
            • JavaScript SDK reference
            • Transformation Builder reference
          • jQuery SDK
            • jQuery introduction
            • jQuery image and video upload
            • jQuery image transformations
            • jQuery video transformations
          • React SDK (Legacy)
            • React introduction
            • React image and video upload
            • React image transformations
            • React video transformations
            • React migration guide
          • Vue.js SDK (Legacy)
            • Vue.js introduction
            • Vue.js image and video upload
            • Vue.js image transformations
            • Vue.js video transformations
            • Vue.js migration guide
          • Angular SDK (Legacy)
            • Angular introduction
            • Angular image and video upload
            • Angular image transformations
            • Angular video transformations
            • Angular migration guide
          • JavaScript SDK (Legacy)
            • JavaScript introduction
            • JavaScript image and video upload
            • JavaScript image transformations
            • JavaScript video transformations
            • JavaScript migration guide
        • Mobile SDKs
          • iOS SDK
            • iOS introduction
            • iOS quick start
            • iOS image and video upload
            • iOS image transformations
            • iOS video transformations
            • iOS video player
            • iOS sample projects
          • Android SDK
            • Android introduction
            • Android image and video upload
            • Android image transformations
            • Android video transformations
            • Android video player
            • Android sample projects
          • Flutter SDK
            • Flutter introduction
            • Flutter quick start
            • Flutter image and video upload
            • Flutter media transformations
            • Flutter video player
            • Flutter video tutorials
            • Dart-based cloudinary_url_gen package reference
            • Flutter SDK reference
          • React Native SDK
            • React Native introduction
            • React Native image and video upload
            • React Native image transformations
            • React Native video transformations
            • React Native video player
          • Kotlin SDK
            • Kotlin media transformations
        • Community-developed libraries
          • Next.js
          • Astro
          • Laravel
          • NuxtJS
          • Svelte
          • Gatsby
          • Netlify
          • Drupal
      • Release Notes
        • Latest: October 9, 2024
        • August 12, 2024
        • June 27, 2024
        • Previous releases
          • May 31, 2024
          • April 16, 2024
          • February 28, 2024
          • January 03, 2024
          • November 13, 2023
          • October 26, 2023
          • September 21, 2023
          • August 15, 2023
          • July 13, 2023
          • June 19, 2023
          • May 16, 2023
          • Apr 04, 2023
          • Feb 21, 2023
          • Dec 27, 2022
      • Programmable Media
      • Guides
      • Video APIs
      • Video best practices
      • Social media videos

      Social media videos

      Last updated: Oct-16-2024

      On this page:

      • Overview
      • Applying transformations
      • Delivering
      • Uploading
      • Using the Cloudinary Video player
      • Demo/Example

      Overview

      Video content on social media platforms is continuing to grow and Cloudinary has a number of features that can help you successfully manage and deliver your content to these platforms. Alternatively, you can use Cloudinary to develop your own features for social media videos on your own website or application.

      What you will learn
      • Common themes and features of social media video content.
      • How to use Cloudinary features to transform, enhance and share your videos to social media.
      • Introduction to user-generated content and how to handle uploading.
      • Using the Cloudinary Video Player and other features to add social media video functionality to your own web applications.

      Looking to jump straight in? Here's an interactive code example showing how to render videos social media style with the Cloudinary Video Player, automatic cropping and scrolling autoplay with scroll snapping and an infinite feed.

      Common themes

      Below are some common themes and features that you'll see with social media videos:

      • Short-form videos: Short-form videos are the most popular content for most platforms, with videos typically ranging from a few seconds to a couple of minutes. These bite-sized videos cater to the decreasing attention spans of users and are easily shareable.
      • Vertical video format: With the predominant use of smartphones for consuming content, vertical video formats (9:16) have become the norm. This format is optimized for mobile viewing and provides a more immersive experience for users.
      • Autoplay and infinite feed: Many social media platforms employ autoplay and infinite feed features, where videos start playing automatically as users scroll through their feeds. This encourages users to consume more content and increases engagement.
      • Muted videos: A common way users consume videos is without the sound. This makes the use of subtitles, captions and other visual annotations important.

      Applying transformations

      Applying transformations to videos ensures that your social media content is optimized for various platforms and devices, providing a seamless viewing experience. These transformations, on top of the delivery optimizations described above, can convert aspect ratios, add overlays and subtitles, and apply branding elements, all of which enhance user engagement and accessibility while maintaining high performance and reducing manual editing effort.

      Resizing and cropping

      Cropping and resizing your videos to fit standard social media aspect ratios is easy with dynamic transformation URLs. Whether your original videos are portrait or landscape, you can take advantage of features such as automatic gravity for cropping to crop your videos for social media at scale.

      For example, to crop the video below to a 9:16 aspect ratio but keep the main focus on the skateboarder, you can apply automatic gravity with the fill crop method. For comparison, the original video is shown at the same aspect ratio using padding instead. Click the poster images to toggle playback on both videos and see the difference:

      Original g_auto

      Generating subtitles/captions

      Subtitles and/or captions are essential to ensure accessibility and compliance with social media requirements. Many users consume social video content without sound, so having some form of captioning is essential. With Cloudinary, you can automatically generate captions using AI as part of the upload by setting the auto_captioning parameter to true. If you're delivering videos on your own website, you can easily take advantage of these generated captions by using the Cloudinary Video Player and enabling word highlighting with visual customization of the captions. Here's an example from one of our own Dev Hints Youtube Shorts, that we're delivering with the Cloudinary Video Player:

      Adding overlays and branding

      Applying creative overlays or branding overlays to social media videos is an effective way to enhance visual appeal and maintain brand consistency across your content when outputting to popular social media sites. By leveraging Cloudinary's powerful transformation capabilities, you can automatically add logos, watermarks, text, and other graphical elements to your videos. This not only reinforces your brand identity but also protects your content from unauthorized use, which is especially important in the fast-paced and highly shareable world of social media.

      Overlays can be dynamically positioned, scaled, and styled to suit different video formats and resolutions, ensuring a professional look on all devices and platforms. This automation streamlines the content creation process, saves time, and ensures that every piece of social media content adheres to your branding guidelines, providing a cohesive and polished user experience.

      Here's a simple example with a semi-transparent Cloudinary logo overlaid:


      If you're adding social media functionality to your own site, you can also make use of Cloudinary's transformation capabilities to offer your users the ability to add their own overlays and branding in exactly the same way.

      Delivering

      Delivering videos efficiently and effectively is crucial, whether you are serving social media style videos on your own platform or preparing videos for distribution to various social media channels.

      When delivering social media style videos directly on your own website or application, performance and user experience are paramount, whereas when preparing videos for distribution to social media platforms, the focus is more on optimizing videos to meet platform requirements and ensuring high-quality playback.

      Adaptive Bitrate Streaming vs Progressive

      When deciding between adaptive and progressive streaming for short-form social media videos on your own platform, it's important to consider the benefits and disadvantages of each approach, particularly in the context of preloading the next videos to provide a seamless user experience.

      At a glance:

      Adaptive Streaming Progressive Streaming
      Bitrate Management Uses multiple bitrates Uses a single bitrate
      Quality Adjustment Adjusts quality in real-time Quality is fixed
      Bandwidth Usage Efficient, minimizes buffering Less efficient, potential for buffering
      Implementation Complexity More complex Simpler

      Progressive Streaming

      Progressive streaming provides quick video start times by progressively downloading the video files. Combined with Cloudinary's automatic optimization features, you can deliver the most optimal file format and quality for the user's device and operating system.

      Benefits

      • Videos start playing almost immediately since the first chunks are downloaded quickly, providing a very fast initial load time, which is critical for keeping user engagement high.
      • Easier to set up and manage compared to adaptive streaming and less overhead in terms of video processing and delivery.
      • Easier to preload the next video as the entire file is progressively downloaded, ensuring smooth transitions between videos, especially for auto-playing the next video in a sequence.

      Disadvantages

      • Delivers a single bitrate that might not be optimal for all network conditions, therefore users on slow connections may experience a longer start time.
      • Non-optimal bandwidth usage by delivering higher quality than needed for some users.
      • Cannot adapt to changing network conditions once the video playback has started causing users to experience poor playback quality if their network conditions change mid-playback.

      Here's an example of progressively delivering a video using automatic format and quality selection:

      Adaptive Bitrate Streaming

      Adaptive bitrate streaming dynamically adjusts video quality based on the viewer's network conditions, ensuring smooth playback and optimal performance across varying bandwidths. Take advantage of automatic streaming profile selection to easily stream using both HLS and DASH protocols for a simpler implementation and use the Cloudinary Video Player for optimal user experience.

      Benefits

      • Automatically adjusts video quality based on the viewer’s current internet speed, ensuring smooth playback even with fluctuating bandwidth.
      • Users on slower connections get lower quality streams to prevent buffering, while those on fast connections get high-quality streams.
      • Ensures all users have the optimal viewing experience permitted by their network conditions.

      Disadvantages

      • May take slightly longer to start playing as it assesses the network condition and selects the appropriate bitrate.
      • Requires slightly more sophisticated setup and management, though using automatic streaming profile selection helps negate this.
      • Preloading the next video at the optimal quality can be challenging since the user's network condition might change.
      • Requires advanced handling to ensure smooth transitions between videos.

      Here's an example of the Cloudinary Video Player configured to use automatic profile selection and the JavaScript configuration code to set this up:

      And here is how to specify this in a URL to use with any HTML5 video player:

      Ultimately, the choice between progressive and adaptive streaming should be based on your specific use case, user base, and technical capabilities.

      Uploading

      If you're developing your own social media site, handling video uploads from your users will be a key component and you can take advantage of a number of Cloudinary features to help you.

      With Cloudinary, you can streamline the process of managing user-generated content, ensuring efficient processing and optimization from the moment of upload. When users upload videos, you can use Cloudinary to automatically perform several important management tasks such as adding metadata and tags for easy organization and retrieval, or content moderation by integrating AI-powered tools to detect inappropriate content or manually moderating all assets.

      Automated workflows can also transcode videos into multiple formats to support various devices and platforms, ensuring smooth playback and consistent quality settings.

      By automating these video management processes during upload, you maintain high-quality content delivery, enhance user experience, and save significant time and resources.

      You can also take advantage of the Cloudinary upload widget to easily add upload functionality to your application without having to develop your own solution:

      Upload widget main screen

      Using the Cloudinary Video player

      The Cloudinary Video Player provides an advanced lightweight JavaScript based video player that can easily be used to implement social media video functionality into your own application. By default, it will apply optimizations for format and compression and includes dedicated features, designed to enhance the social media user experience, such as chaptering and customizable paced subtitles with word highlighting functionality. You can customize the player to match your own branding, and it has full support for playlists and analytics.

      Here's a simple example of the code required to embed the player once installed:


      The player can also easily be embedded in a page using an iframe and you can generate this directly from the Cloudinary Console.

      Demo/Example

      Below is a sandbox demo written in React that applies a selection of the features and best practices described above. The demo uses a mobile phone frame to showcase an infinitely scrolling video feed and includes the following features:

      • Mobile aspect ratio videos with a mobile phone frame to replicate a mobile experience.
      • Use of intersectionObserver to create an infinite feed that uses scroll snapping and autoplay based on when the video comes into view or the video ends.
      • Video sources loaded from an array of public IDs, in production you would load this from your database.
      • Use of the Cloudinary Video Player with optimizations applied automatically, in this case short form videos are loaded progressively.
      • Automatic gravity cropping to ensure the most important parts of each video are kept when converting to 9:16 aspect ratio.

      Give the demo a try by scrolling on the phone frame to bring the next video into view.

      See the full code
      • Explore the app on GitHub.

      More about video
      • Evaluate the potential time and cost savings, as well as revenue boosts, achievable through the Cloudinary Video API by utilizing our Value Calculator. Adjust the sliders to reflect the current state of your video pipeline and see the difference Cloudinary can make.

        Video calculator

      • Browse through our extensive Video Tutorial Library to learn how to implement various video based features with Cloudinary.
      • Check out our Dev Hints on YouTube for a selection of short and to the point tutorials.

      ✔️ Feedback sent!

      ✖️  
      How helpful was this doc page?

      Thanks for submitting your rating. We got it!
      We'd love to hear more. Tell us what you liked and how we can make this page even better:

      *


      Cloudinary is committed to protecting your information security. For details, see our privacy policy.

      For additional assistance, open a support request.

      Error

      Unfortunately there's been an error sending your feedback.

      Rate this page:

      • Video best practices
      • Video Player
      Cloudinary Logo - White
      Products
      • Programmable Media
      • DAM
      • Demos
      • Pricing
      • Roadmap
      • FAQ
      Solutions
        • Why Cloudinary
        • Video API
        • E-commerce
        • Retail
        • Media & Entertainment
        • Travel & Hospitality
        • Non-Profits
        • Our Customers
        • Resource Library
        Developers
        • Getting Started
        • Documentation
        • Community
        • SDKs
        • Add-ons
        • Podcasts
        Company
        • About Us
        • Customers
        • Partners
        • Events
        • Careers
        • Newsroom
        • Blog
        • Brand Assets
        • Trust
        Contact Us
        • Technical Support
        • Contact Sales
        • Education & Training
        • Institute of Quality & Control
        • GDPR
        • SOC
        • Forbes Best Startup Employers 2020
        • MarTech Breakthrough Awards
        • Best Places to Work SVBJ 2018
        • 2020 The World's Best Cloud Companies
        • Terms of Use
        • Privacy Policy
        • DMCA Notice

        © 2024 Cloudinary. All rights reserved.

        B #168