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
Quality
Pending
Does it follow best practices?
Impact
83%
1.09xAverage score across 10 eval scenarios
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.
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
"""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
"""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 enumfrom 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}")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}")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-mediadocs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10