Operations for video playback management
- create_media_playback_id - Create a playback ID
- list_playback_ids - Get all playback IDs details for a media
- delete_media_playback_id - Delete a playback ID
- get_playback_id - Get a playback ID
- update_domain_restrictions - Update domain restrictions for a playback ID
- update_user_agent_restrictions - Update user-agent restrictions for a playback ID
You can create a new playback ID for a specific media asset. If you have already retrieved an existing playbackId using the Get Media by ID endpoint for a media asset, you can use this endpoint to generate a new playback ID with a specified access policy.
If you want to create a private playback ID for a media asset that already has a public playback ID, this endpoint also allows you to do so by specifying the desired access policy.
-
Make a
POSTrequest to this endpoint, replacing<mediaId>with theuploadIdoridof the media asset. -
Include the
accessPolicyin the request body withprivateorpublicas the value. -
You receive a response containing the newly created playback ID with the specified access level.
A video streaming service generates playback IDs for each media file when users request to view specific content. The video player then uses the playback ID to stream the video.
import os
import json
from fastpix_python import Fastpix, models
with Fastpix(
security=models.Security(
username="your-access-token",
password="your-secret-key",
),
) as fastpix:
res = fastpix.playback.create_media_playback_id(media_id="your-media-id", access_policy="public", drm_configuration_id="your-drm-configuration-id", resolution="1080p")
# Handle response
print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
media_id |
str | ✔️ | The unique identifier assigned to the media when created. The value must be a valid UUID. | your-media-id |
access_policy |
models.AccessPolicy | ✔️ | Access policy for media content | |
access_restrictions |
Optional[models.CreateMediaPlaybackIDAccessRestrictions] | ➖ | N/A | |
drm_configuration_id |
Optional[str] | ➖ | DRM configuration ID (required if accessPolicy is "drm") | your-drm-configuration-id |
resolution |
Optional[models.CreateMediaPlaybackIDResolution] | ➖ | The maximum resolution for the playback ID. | 1080p |
retries |
Optional[utils.RetryConfig] | ➖ | Configuration to override the default retry behavior of the client. |
models.CreateMediaPlaybackIDResponse
| Error Type | Status Code | Content Type |
|---|---|---|
| errors.FastpixDefaultError | 4XX, 5XX | */* |
Retrieves all playback IDs associated with a given media asset, including each playback ID’s access policy and detailed access restrictions such as allowed or denied domains and user agents.
How it works:
- Send a
GETrequest to this endpoint with the targetmediaId. - The response includes an array of playback ID records with their respective access controls.
Use case: Useful for validating and managing playback permissions programmatically, reviewing restriction settings, or powering an access control dashboard.
import os
import json
from fastpix_python import Fastpix, models
with Fastpix(
security=models.Security(
username="your-access-token",
password="your-secret-key",
),
) as fastpix:
res = fastpix.playback.list_playback_ids(media_id="your-media-id")
# Handle response
print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
media_id |
str | ✔️ | N/A | your-media-id |
retries |
Optional[utils.RetryConfig] | ➖ | Configuration to override the default retry behavior of the client. |
models.ListPlaybackIdsResponse
| Error Type | Status Code | Content Type |
|---|---|---|
| errors.FastpixDefaultError | 4XX, 5XX | */* |
This endpoint deletes a specific playback ID associated with a media asset. Deleting a playback ID revokes access to the media content linked to that ID.
-
Make a
DELETErequest to this endpoint, replacing<mediaId>with the unique ID of the media asset from which you want to delete the playback ID. -
Include the
playbackIdyou want to delete in the request body.
Your platform offers limited-time access to premium content. When the subscription expires, you can revoke access to the content by deleting the associated playback ID, preventing users from streaming the video further.
import os
import json
from fastpix_python import Fastpix, models
with Fastpix(
security=models.Security(
username="your-access-token",
password="your-secret-key",
),
) as fastpix:
res = fastpix.playback.delete_media_playback_id(
media_id="your-media-id",
playback_id="your-playback-id",
)
# Handle response
print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
media_id |
str | ✔️ | The unique identifier assigned to the media when created. The value must be a valid UUID. | your-media-id |
playback_id |
str | ✔️ | Return the universal unique identifier for playbacks which can contain a maximum of 255 characters. | your-playback-id |
retries |
Optional[utils.RetryConfig] | ➖ | Configuration to override the default retry behavior of the client. |
models.DeleteMediaPlaybackIDResponse
| Error Type | Status Code | Content Type |
|---|---|---|
| errors.FastpixDefaultError | 4XX, 5XX | */* |
This endpoint retrieves details about a specific playback ID associated with a media asset. Use it to check the access policy for that specific playback ID, such as whether it is public or private.
How it works:
- Make a GET request to the endpoint, replacing
{mediaId}with the media ID and{playbackId}with the playback ID. - This request is useful for auditing or validation before granting playback access in your application.
Example: A media platform might use this endpoint to verify if a playback ID is public or private before embedding the video in a frontend player or allowing access to a restricted group.
import os
import json
from fastpix_python import Fastpix, models
with Fastpix(
security=models.Security(
username="your-access-token",
password="your-secret-key",
),
) as fastpix:
res = fastpix.playback.get_playback_id(media_id="your-media-id", playback_id="your-playback-id")
# Handle response
print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
media_id |
str | ✔️ | N/A | your-media-id |
playback_id |
str | ✔️ | N/A | your-playback-id |
retries |
Optional[utils.RetryConfig] | ➖ | Configuration to override the default retry behavior of the client. |
| Error Type | Status Code | Content Type |
|---|---|---|
| errors.FastpixDefaultError | 4XX, 5XX | */* |
This endpoint updates domain-level restrictions for a specific playback ID associated with a media asset. It allows you to restrict playback to specific domains or block known unauthorized domains.
How it works:
- Make a
PATCHrequest to this endpoint with your desired domain access configuration. - Set a default policy (
allowordeny) and specify domain names in theallowordenylists. - This is commonly used to restrict video playback to your website or approved client domains.
Example:
A streaming service can allow playback only from example.com and deny all others by setting: "defaultPolicy": "deny" and "allow": ["example.com"].
import os
import json
from fastpix_python import Fastpix, models
with Fastpix(
security=models.Security(
username="your-access-token",
password="your-secret-key",
),
) as fastpix:
res = fastpix.playback.update_domain_restrictions(media_id="your-media-id", playback_id="your-playback-id", default_policy="allow", allow=[
"yourdomain.com",
"sampledomain.com",
], deny=[
"yourworkdomain.com",
])
# Handle response (convert datetimes to JSON-serializable strings)
print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
media_id |
str | ✔️ | N/A | your-media-id |
playback_id |
str | ✔️ | N/A | your-playback-id |
default_policy |
Optional[models.UpdateDomainRestrictionsDefaultPolicy] | ➖ | Specify the fallback behavior for domains that are not listed in the allow or deny lists. |
allow |
allow |
List[str] | ➖ | List of domains explicitly allowed to play the media. | [ "yourdomain.com", "sampledomain.com" ] |
deny |
List[str] | ➖ | List of domains explicitly denied from accessing the media. | [ "yourworkdomain.com" ] |
retries |
Optional[utils.RetryConfig] | ➖ | Configuration to override the default retry behavior of the client. |
models.UpdateDomainRestrictionsResponse
| Error Type | Status Code | Content Type |
|---|---|---|
| errors.FastpixDefaultError | 4XX, 5XX | */* |
This endpoint allows updating user-agent restrictions for a specific playback ID associated with a media asset. It can be used to allow or deny specific user-agents during playback request evaluation.
How it works:
- Make a
PATCHrequest to this endpoint with your desired user-agent access configuration. - Specify a default policy (
allowordeny) and provide specificallowordenylists. - Use this to restrict access to specific browsers, devices, or bots.
Example: A developer may configure a playback ID to deny access from known scraping user-agents while allowing all others by default.
import os
import json
from fastpix_python import Fastpix, models
with Fastpix(
security=models.Security(
username="your-access-token",
password="your-secret-key",
),
) as fastpix:
res = fastpix.playback.update_user_agent_restrictions(media_id="your-media-id", playback_id="your-playback-id", default_policy="allow", allow=[
"Mozilla/55.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36",
], deny=[
"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/53745.36 (KHTML, like Gecko) Chrome/138.0.0.0 Mobile Safari/537.36",
])
# Handle response (convert datetimes to JSON-serializable strings)
print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
media_id |
str | ✔️ | N/A | your-media-id |
playback_id |
str | ✔️ | N/A | your-playback-id |
default_policy |
Optional[models.UpdateUserAgentRestrictionsDefaultPolicy] | ➖ | The default behavior when a user-agent is not listed in allow or deny. |
allow |
allow |
List[str] | ➖ | List of user-agent substrings explicitly allowed. | [ "Mozilla/55.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36" ] |
deny |
List[str] | ➖ | List of user-agent substrings explicitly denied. | [ "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/53745.36 (KHTML, like Gecko) Chrome/138.0.0.0 Mobile Safari/537.36" ] |
retries |
Optional[utils.RetryConfig] | ➖ | Configuration to override the default retry behavior of the client. |
models.UpdateUserAgentRestrictionsResponse
| Error Type | Status Code | Content Type |
|---|---|---|
| errors.FastpixDefaultError | 4XX, 5XX | */* |