CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-azure-mgmt-media

Microsoft Azure Media Services Client Library for Python - A management library for Azure Media Services that provides programmatic access to media processing and streaming capabilities in the cloud.

83

1.09x

Quality

Pending

Does it follow best practices?

Impact

83%

1.09x

Average score across 10 eval scenarios

Overview
Eval results
Files

media-filters.mddocs/

Media Filters

Dynamic content filtering capabilities through account-level and asset-level filters for adaptive streaming scenarios. Filters enable presentation time range selection, track filtering, bitrate constraints, and dynamic manifest manipulation without re-encoding content.

Capabilities

Account Filter Management

Manage account-level filters that apply globally across multiple assets and streaming sessions.

def list(resource_group_name: str, account_name: str) -> Iterable[AccountFilter]:
    """
    List all account filters in a media service account.
    
    Parameters:
    - resource_group_name: Name of the resource group (str)
    - account_name: Name of the media service account (str)
    
    Returns:
    Iterable of AccountFilter objects with filtering configuration
    """

def get(
    resource_group_name: str,
    account_name: str,
    filter_name: str
) -> AccountFilter:
    """
    Get a specific account filter with complete configuration.
    
    Parameters:
    - resource_group_name: Name of the resource group (str)
    - account_name: Name of the media service account (str)
    - filter_name: Name of the account filter (str)
    
    Returns:
    AccountFilter object with filtering rules and settings
    """

def create_or_update(
    resource_group_name: str,
    account_name: str,
    filter_name: str,
    parameters: AccountFilter
) -> AccountFilter:
    """
    Create or update an account filter.
    
    Parameters:
    - resource_group_name: Name of the resource group (str)
    - account_name: Name of the media service account (str)
    - filter_name: Name for the account filter (str)
    - parameters: Account filter configuration (AccountFilter)
    
    Returns:
    Created or updated AccountFilter object
    """

def update(
    resource_group_name: str,
    account_name: str,
    filter_name: str,
    parameters: AccountFilter
) -> AccountFilter:
    """
    Update an existing account filter.
    
    Parameters:
    - resource_group_name: Name of the resource group (str)
    - account_name: Name of the media service account (str)
    - filter_name: Name of the account filter (str)
    - parameters: Updated account filter configuration (AccountFilter)
    
    Returns:
    Updated AccountFilter object
    """

def delete(resource_group_name: str, account_name: str, filter_name: str) -> None:
    """
    Delete an account filter.
    
    Parameters:
    - resource_group_name: Name of the resource group (str)
    - account_name: Name of the media service account (str)
    - filter_name: Name of the account filter (str)
    
    Returns:
    None
    """

Asset Filter Management

Manage asset-specific filters that apply to individual assets for targeted content filtering.

def list(
    resource_group_name: str,
    account_name: str,
    asset_name: str
) -> Iterable[AssetFilter]:
    """
    List all filters for a specific asset.
    
    Parameters:
    - resource_group_name: Name of the resource group (str)
    - account_name: Name of the media service account (str)
    - asset_name: Name of the asset (str)
    
    Returns:
    Iterable of AssetFilter objects with filtering configuration
    """

def get(
    resource_group_name: str,
    account_name: str,
    asset_name: str,
    filter_name: str
) -> AssetFilter:
    """
    Get a specific asset filter with complete configuration.
    
    Parameters:
    - resource_group_name: Name of the resource group (str)
    - account_name: Name of the media service account (str)
    - asset_name: Name of the asset (str)
    - filter_name: Name of the asset filter (str)
    
    Returns:
    AssetFilter object with filtering rules and settings
    """

def create_or_update(
    resource_group_name: str,
    account_name: str,
    asset_name: str,
    filter_name: str,
    parameters: AssetFilter
) -> AssetFilter:
    """
    Create or update an asset filter.
    
    Parameters:
    - resource_group_name: Name of the resource group (str)
    - account_name: Name of the media service account (str)
    - asset_name: Name of the asset (str)
    - filter_name: Name for the asset filter (str)
    - parameters: Asset filter configuration (AssetFilter)
    
    Returns:
    Created or updated AssetFilter object
    """

def update(
    resource_group_name: str,
    account_name: str,
    asset_name: str,
    filter_name: str,
    parameters: AssetFilter
) -> AssetFilter:
    """
    Update an existing asset filter.
    
    Parameters:
    - resource_group_name: Name of the resource group (str)
    - account_name: Name of the media service account (str)
    - asset_name: Name of the asset (str)
    - filter_name: Name of the asset filter (str)
    - parameters: Updated asset filter configuration (AssetFilter)
    
    Returns:
    Updated AssetFilter object
    """

def delete(
    resource_group_name: str,
    account_name: str,
    asset_name: str,
    filter_name: str
) -> None:
    """
    Delete an asset filter.
    
    Parameters:
    - resource_group_name: Name of the resource group (str)
    - account_name: Name of the media service account (str)
    - asset_name: Name of the asset (str)
    - filter_name: Name of the asset filter (str)
    
    Returns:
    None
    """

Data Types

class AccountFilter:
    """Account-level filter for dynamic content filtering."""
    name: str
    presentation_time_range: PresentationTimeRange
    first_quality: FirstQuality
    tracks: List[FilterTrackSelection]
    
class AssetFilter:
    """Asset-specific filter for targeted content filtering."""
    name: str
    presentation_time_range: PresentationTimeRange
    first_quality: FirstQuality
    tracks: List[FilterTrackSelection]
    
class PresentationTimeRange:
    """Time range specification for content filtering."""
    start_timestamp: int
    end_timestamp: int
    presentation_window_duration: int
    live_backoff_duration: int
    timescale: int
    force_end_timestamp: bool
    
class FirstQuality:
    """Initial quality level specification."""
    bitrate: int
    
class FilterTrackSelection:
    """Track selection criteria for filtering."""
    track_selections: List[FilterTrackPropertyCondition]
    
class FilterTrackPropertyCondition:
    """Condition for track property filtering."""
    property: str  # FilterTrackPropertyType enum
    value: str
    operation: str  # FilterTrackPropertyCompareOperation enum

Usage Examples

Create Time-Range Account Filter

from azure.mgmt.media import AzureMediaServices
from azure.mgmt.media.models import (
    AccountFilter, PresentationTimeRange, FirstQuality
)
from azure.identity import DefaultAzureCredential

client = AzureMediaServices(
    credential=DefaultAzureCredential(),
    subscription_id="your-subscription-id"
)

# Create time range filter (skip first 30 seconds, limit to 10 minutes)
time_range = PresentationTimeRange(
    start_timestamp=300000000,      # 30 seconds in 100ns units
    end_timestamp=6000000000,       # 10 minutes in 100ns units
    presentation_window_duration=0,  # Not applicable for VOD
    live_backoff_duration=0,        # Not applicable for VOD
    timescale=10000000,             # 100ns timescale
    force_end_timestamp=True
)

# Set initial quality to 1Mbps
first_quality = FirstQuality(bitrate=1000000)

# Create account filter
account_filter = AccountFilter(
    presentation_time_range=time_range,
    first_quality=first_quality
)

created_filter = client.account_filters.create_or_update(
    resource_group_name="my-resource-group",
    account_name="my-media-service",
    filter_name="time-range-filter",
    parameters=account_filter
)

print(f"Account filter created: {created_filter.name}")

Create Track-Specific Asset Filter

from azure.mgmt.media.models import (
    AssetFilter, FilterTrackSelection, FilterTrackPropertyCondition,
    FilterTrackPropertyType, FilterTrackPropertyCompareOperation
)

# Create audio-only filter
audio_condition = FilterTrackPropertyCondition(
    property=FilterTrackPropertyType.TYPE,
    value="Audio",
    operation=FilterTrackPropertyCompareOperation.EQUAL
)

audio_track_selection = FilterTrackSelection(
    track_selections=[audio_condition]
)

# Create asset filter for audio-only playback
audio_filter = AssetFilter(
    tracks=[audio_track_selection]
)

created_asset_filter = client.asset_filters.create_or_update(
    resource_group_name="my-resource-group",
    account_name="my-media-service",
    asset_name="multi-track-asset",
    filter_name="audio-only-filter",
    parameters=audio_filter
)

print(f"Asset filter created: {created_asset_filter.name}")

Apply Filters to Streaming Locator

from azure.mgmt.media.models import StreamingLocator

# Create streaming locator with filters
filtered_locator = StreamingLocator(
    asset_name="encoded-asset",
    streaming_policy_name="Predefined_ClearStreamingOnly",
    filters=["time-range-filter"]  # Reference account filter by name
)

client.streaming_locators.create(
    resource_group_name="my-resource-group",
    account_name="my-media-service",
    streaming_locator_name="filtered-streaming-locator",
    parameters=filtered_locator
)

print("Streaming locator created with time-range filter applied")

Install with Tessl CLI

npx tessl i tessl/pypi-azure-mgmt-media

docs

asset-management.md

asset-tracks.md

content-delivery-streaming.md

content-protection.md

encoding-transforms.md

index.md

live-streaming.md

location-management.md

media-filters.md

media-services-management.md

network-security.md

operations-monitoring.md

tile.json