Skip to main content
Version: V12

Ingesting Content from Azure Blob Storage in VIDIZMO

Content stored in Azure Blob Storage containers can be automatically imported into VIDIZMO. Through this integration, media files from your Azure storage account are detected and transferred into the VIDIZMO portal without manual intervention, so your content is ready for centralized management, processing, and playback.

In this article, you'll find a step-by-step guide to configuring and starting content ingestion from Azure Blob Storage in VIDIZMO. To understand the concepts behind content ingestion, refer to Understanding Ingestion of Content from Azure Blob Storage in VIDIZMO.

Prerequisites

  • Ensure that you belong to a group where the "Azure Blob Storage Ingestion" permission is enabled to access this feature.
  • Ensure that you have access to an active Microsoft Azure account with permissions to create and manage storage accounts and containers.
  • An Azure Blob Storage account and container from which you want to ingest content. Note the Account Name and Account Key, as these are required during configuration.

Note: You can set up any storage provider of your choice in the VIDIZMO portal. It isn't mandatory to configure Azure as your storage provider to ingest content from Azure Blob Storage. The ingestion source and the storage target are independent.

Preparing Your Azure Blob Storage

Before configuring ingestion in VIDIZMO, make sure your Azure Blob Storage account and containers are ready. If you already have an Azure storage account with content, skip to Configuring the Azure Blob Storage App.

Creating a Storage Account

  1. Sign in to the Azure portal.
  2. Search for Storage accounts in the top search bar and select it.
  3. Select Create.
  4. Choose your Subscription and Resource group (or create a new resource group).
  5. Enter a Storage account name. This name is the Account Name you'll provide in VIDIZMO.
  6. Select a Region closest to your VIDIZMO deployment for best performance.
  7. Choose a Performance tier (Standard is sufficient for most ingestion scenarios).
  8. Select Review + create, then select Create.

Creating a Container

  1. Open the storage account you created.
  2. In the left menu, under Data storage, select Containers.
  3. Select + Container.
  4. Enter a Name for the container (for example, media-files).
  5. Set the Public access level to Private (no anonymous access).
  6. Select Create.
  7. Upload your media files to this container.

Getting the Account Key

  1. Open your storage account in the Azure portal.
  2. In the left menu, under Security + networking, select Access keys.
  3. Select Show next to key1 (or key2).
  4. Copy the Key value. This is the Account Key you'll provide in VIDIZMO.

Ingesting Content from Azure Blob Storage

To ingest content from Azure Blob Storage in VIDIZMO, follow these steps:

  1. Open the navigation menu via the button on the top left.
  2. Select the Admin dropdown.
  3. Select Portal Settings.
  4. Select Apps.
  5. Select Content Ingestion.
  6. Select the settings icon on the Azure Blob Storage Ingestion app.

Configuring the Azure Blob Storage App

  1. In the Azure Blob Storage Ingestion - Settings dialog, configure the following:

    • Account Name Enter the name of the Azure storage account that contains the containers you want to ingest content from. This is the storage account name you noted from the Azure portal.

    • Account Key Enter the access key for the Azure storage account. This key authenticates VIDIZMO with your Azure storage account to read and manage blobs. You can find this key under Access keys in your storage account settings in the Azure portal.

  2. In the Ingested Content Setup section, configure the following:

    • How Do You Want to Organize Content Select the import mode to display ingested content in VIDIZMO. Choose Hierarchical to maintain the original folder structure from your Azure containers, or Flat to import each item individually without folders. To learn more about this concept, refer to Understanding Ingestion of Content from Azure Blob Storage in VIDIZMO.

    • Include Folders These fields are optional. If not specified, all containers in the storage account are included in the ingestion process. Select the Add button to include specific containers or folder paths. Enter the container name or path in the text field (for example, media-files or media-files/recordings). To add more folders, select Add again to generate an additional text field.

    • Exclude Folders These fields are optional. Specify containers or folder paths to exclude from ingestion. Content in these locations won't be imported. Select Add to enter each exclusion path.

    • Actions for Source Content Select from the dropdown to define what happens to the source blobs after ingestion:

      • Keep Content Unaltered Post Ingestion: The content stays unchanged in the Azure Blob Storage container. The original blobs are preserved in their source location.
      • Delete from Source Container Post Ingestion: The content is removed from the Azure Blob Storage container after successful ingestion into VIDIZMO.
      • Move Content to Azure Folder Post Ingestion: The content is moved to a specified destination container after ingestion. Selecting this option reveals the following additional fields:
        • Destination Container Name: Enter the container name for moving content post ingestion.
        • Azure Destination Folder: Specify the folder path for moving content post ingestion (for example, archive/ingested). If the specified container or folder doesn't exist, Azure creates it automatically.
        • Destination Storage Account Name: Enter the storage account name for moving content post ingestion. This can be the same account or a different one.
        • Destination Storage Account Key: Enter the storage account key for moving content post ingestion.
    • Publishing Status Select the publishing status after ingestion from the dropdown:

      • Published: Content is automatically published and available in the portal.
      • Drafted: Content is saved in the draft tab, so you can review it before publishing.
    • Viewing Access Choose the viewing access for ingested content:

      • Portal Security/Publish Settings: Viewing access is determined by portal settings configured in the control panel.
      • Anonymous Users: Anonymous users can view ingested content. This option isn't available in the DEMS product package but is available in the Enterprise Tube product package.
      • Portal Users: All portal users can view ingested content.
      • Account and Portal Users: Both account and portal users can view ingested content.
    • Time Interval Specify the time interval in seconds that the system waits between ingestion cycles. After completing one cycle, the system rests for this interval before starting the next. The minimum recommended value is 5 seconds and the maximum is 300 seconds.

  3. Select the arrow to reveal Advanced Settings.

Content File Grouping

As part of the ingestion process, you can configure file grouping to organize related files together. To understand the concept, refer to Content File Grouping.

Choose a File Group Type to determine your preferred method for organizing content:

  • None: No grouping is applied. All files are ingested as original content. This is the default setting.
  • Substring: Group files based on a common character sequence in the file name.
  • Regular Expression: Group files using a regex pattern.
  • Last Folder: Group files based on the last folder in their file path.

Note: To categorize files based on a file group type such as Substring, Regex, or Last Folder, the file names need to share similarities. Without commonalities among the file names, content may not be successfully ingested. For example: audio123.mp3, audio45.vtt, and audio89.mp4.

By default, the None option is selected, meaning all files are ingested as original content.

If you selected Substring, configure the following fields:

  • Start Position: Specify the numeric start index for substring grouping. A substring is extracted from the file name starting at this position.
  • No. of Characters to Include: Enter the number of characters to extract from the file name after the start position.
  • Minimum File Count in a Group (this field appears regardless of the file group type chosen). Set the minimum number of files required to form a group. For best results, input a minimum count of 2 files.

For example, files like "Audio_Song.wav" and "Audio_Song.json" are grouped together because they share the common substring "Audio_".

If you selected Regular Expression, configure these fields:

  • Regex Pattern for Grouping: Define the regex pattern for grouping media files. You can create and test your custom file grouping regex at regex101.com.

Sample regex: (?<GroupName>(\d|[a-zA-Z])+)\.(mp4|vtt|json|txt|wav|png|ext). The regex provided for grouping must contain (?<GroupName>your_pattern). Replace your_pattern with the desired pattern, which is then used as the group name. ?<GroupName> is a variable that contains the name of the group to be created. A group is equivalent to a mashup, so multiple groups means multiple mashups to be ingested.

Verify and input valid regex at your discretion.

  • Example 1: (?<GroupName>[a-z].*)\.wav This regex creates a group from a file's name having any number of lowercase characters. The ?<GroupName> appears on the left side of ".", so only the file name portion is captured as the group name.

  • Example 2: .*(?<GroupName>best).*\.wav This regex creates a group from file names containing the word "best". The group name will be "best".

  • Example 3: .*(?<GroupName>best|ant).*\.wav This regex creates a group from file names containing either "best" or "ant". Files containing "best" are grouped in the "best" group, and the same applies to "ant".

The ".wav" extension should be replaced with the extension of the files you want to group. Multiple patterns can be given separated by a pipe operator "|".

  • Minimum File Count in a Group: Set the minimum number of files in a group. For example, if the minimum group file count is set to 2, grouping only happens when at least 2 files share the same pattern.

If you selected Last Folder, configure this field:

  • Files are grouped based on the content of their last folder in the path.
  • Only the Minimum File Count in a Group field is required. Files are only grouped when at least the specified minimum number of files exist within the same folder.

To better understand how to group files, refer to Understanding Ingestion of Content from Azure Blob Storage in VIDIZMO.

Content File Type Mapping

Define rules for mapping associated metadata files after content ingestion. This section consists of content file parts, each responsible for storing specific types of files. You can define rules to determine which file type goes to which part. Multiple rules can be specified, each with its own criteria and associated content file part. If a file meets any of the provided criteria, it's placed into the corresponding content part.

You can store files in multiple formats such as .vtt and .json, with no fixed association between a file format and a specific part. You choose which part should contain each format. However, be careful when defining rules to prevent placing files in unintended parts, which could result in errors.

The following media file sections are available:

  • Audio PCM: Reserved for digitally encoded audio data using PCM.
  • Closed Caption: Designated to store closed captions associated with video content.
  • Content: A section dedicated to the primary content files.
  • Supporting Files: This section stores files that support the main content, such as metadata, additional documentation, or related files.
  • Thumbnails: Designated for storing thumbnail images associated with the content.
  • Original Content: Reserved for the storage of the original content file.

Note: Having at least one rule for the media file section with the option "OriginalContent" is mandatory. If you don't specify a media file section rule for a file, the file is placed in the Supporting File section.

  • Map Ingested File(s) To: Choose media file sections to store associated media files in the selected section from the dropdown.
  • Regex For File Type: Specify the regex pattern for media file section rules. Example: the regex pattern .*\.mp4 selects all .mp4 files and stores them in the chosen media file section. Select Add Section for additional rules. To include all files, input .* in the regex pattern field.

Note: Selecting file group type None restricts mapping ingested files solely to Original Content. Define a file type's regex pattern in Content File Type Mapping to ingest only that specific type as original content.

  1. Select Save Changes.

Enabling the Azure Blob Storage Ingestion App

  1. Start the content ingestion process by enabling the toggle on the content ingestion screen.
  2. Select the Progress option to view the status of content ingestion.

Viewing Ingestion Progress

The progress view shows the following information:

  • Current State: The current status of the ingestion workflow, such as "Importing Content" or "Iteration Completed".
  • Total Files Discovered: The count of files identified for ingestion from the Azure Blob Storage containers.
  • Content Ingested Before Start: The number of content items that were already ingested before the current cycle started.
  • Total Ingested Content Count: The running count of content items that have been ingested in the current cycle.
  • Workflow Status: Indicates whether the ingestion workflow is running, paused, or stopped.
  • Last Synced Attempt: The date and time of the most recent sync attempt.

The application runs through these states during each cycle:

  • Iteration Start: The ingestion process has started. VIDIZMO begins scanning the Azure Blob Storage containers.
  • Importing Content: The system is actively downloading files from Azure Blob Storage, uploading them to the configured storage provider, and processing them through the content pipeline.
  • Iteration Completed: The ingestion cycle has finished. The system waits for the configured time interval before starting the next cycle.

See Also