All notable changes to this project will be documented in this file.
- Media
durationis now a float (seconds) instead of an"HH:MM:SS"string, matching the updated API. Affects the media responses returned byget_media,list_media,list_live_clips,updated_media,updated_source_access,updated_mp4_support,get_media_clips, and the playlistmediaListitems. Publish this version only once production returns the numericduration.
enable_recordingon live stream creation (inputMediaSettings, defaults totrue) — controls whether the livestream is recorded to a VOD asset.access_restrictions(domain and user-agent allow/deny policies) on live playback ID create/get and on live streamplaybackSettings.update_live_stream_domain_restrictions()/update_live_stream_user_agent_restrictions()(and_asyncvariants) —PATCH /live/streams/{streamId}/playback-ids/{playbackId}/domainsand/user-agents.- Async variants for the on-demand
update_domain_restrictionsandupdate_user_agent_restrictions, which were sync-only. - Model contract test suite (
tests/test_models.py).
- Async error handling never raised —
_raise_for_status_asyncwas called withoutawaitacross the async methods, so failed responses returnedNoneinstead of raising typed errors. - Return annotations for live playback ID create/get,
list_media, andlist_live_clipscorrected to the actual response envelopes (PlaybackIDSuccessResponse,ListMediaResponse,ListLiveClipsResponse). - Return annotations across all resource methods — 104 methods declared the
inner
datatype or a list where the SDK actually returns the{success, data}envelope, so type checkers rejected.dataaccess. All now match the returned class; a test enforces this.
import fastpix_pythoncrashed on Python 3.9–3.13 —playback.pyusedListwithout importing it, raisingNameErrorat import time. Affected 1.1.3 and 1.1.4; masked on 3.14 by lazy annotations.- Playback restriction methods had invalid return annotations — corrected to
the actual
...ResponseBodytypes. models.DefaultErrorwas unregistered, so the playback error path failed to resolve.fastpix.errors.list_errorswas unreachable —errors.pywas shadowed by theerrors/exception package; the resource module is nowerrors_sdk.py.mp4Supportis a list of renditions, not a string — deserialization failed onget_media,list_media,updated_media,updated_source_access,updated_mp4Support,list_live_clips.updated_mp4_support()sent an empty body whenmp4_supportwas omitted (400). Now required.sourceResolutionrejected bare numeric values ("1080","720"). Both forms are accepted, and the360tier was added.maxDurationandresolutionrejected uncapped resources —maxDurationis now0or60–28800, andCreatePlaybackId.resolutionis nullable.- Version metadata disagreed —
setup.py1.1.3vs1.1.5elsewhere.
get_summary()/get_summary_async()—GET /on-demand/{mediaId}/summary.- Track
titleon the track models and onupdate_media_track()/generate_subtitle_track(). optimize_audioon the live-clip response.
models.MediaMp4Support— usemodels.MediaMp4SupportEntry.update_media_track()no longer acceptsurl— raisesTypeError.- Dead
ValidationErrorResponseErrorexport — it pointed at a module that was never generated, so importing it always raisedImportError.
- MP4 model pages point at
MediaMp4SupportEntry;mp4_supportmarked required. - Doc links migrated to the restructured site;
video.media.subtitle.generated.ready→video.media.subtitle.generated.
The spec marks
mp4Supporton the update-mp4Support body bothrequiredanddefault: capped_4k, which conflict. The SDK implementsrequired.
-
SDK version bump:
1.1.3→1.1.4. A maintenance release that aligns the SDK's internal version identifiers and applies behaviour-preserving code-quality cleanup. It contains no functional, API, or behavioural changes and is fully backward compatible with1.1.3.Updated identifiers:
__version__/ package version — now reports1.1.4(the internal identifiers were previously lagging at1.0.1; they are now aligned with the package version).User-Agentheader — outbound requests now identify asfastpix-sdk/python 1.1.4.
Maintainability:
- Internal static-analysis (SonarQube) cleanup across the SDK, samples, and test harness — bundled request-builder parameters, shared response-handling helpers, duplicated string literals extracted into constants, and nested conditionals merged. No public-surface impact.
- No changes to public types, method signatures, request/response models, default server URLs, hooks, or retry logic.
- No action required for existing integrations — upgrade the dependency and
re-run
pip install --upgrade fastpix_python.
All FastPix-owned hosts, API endpoints, and documentation links are being moved from the .io TLD to .com. The .io hosts continue to serve traffic during the transition window, but they are slated for deprecation soon — please update any hard-coded references in your application as part of your next deploy.
Old (.io) |
New (.com) |
|---|---|
api.fastpix.io |
api.fastpix.com |
stream.fastpix.io |
stream.fastpix.com |
images.fastpix.io |
images.fastpix.com |
dashboard.fastpix.io |
dashboard.fastpix.com |
www.fastpix.io |
www.fastpix.com |
docs.fastpix.io/... |
fastpix.com/docs/... |
What this means for users of fastpix_python:
- If you rely on SDK defaults, no code change is required. The default
server_urlin this release points athttps://api.fastpix.com/v1/, so bumping to1.1.3and re-runningpip install --upgrade fastpix_pythonis enough. - If you have an explicit
server_urloverride (e.g.Fastpix(server_url="https://api.fastpix.io/v1/")), change it tohttps://api.fastpix.com/v1/. - If your application code references FastPix asset URLs directly — playback URLs (
stream.fastpix.io/...), image CDN (images.fastpix.io/...), dashboard deep links, or doc links in your own README — update them to the.comequivalents before the.iohosts are decommissioned. - We strongly recommend upgrading every official FastPix SDK in your stack to its latest release as part of the same change — every SDK is being rolled out with the same migration.
- All README, USAGE, and per-SDK documentation pages updated end-to-end from
dashboard.fastpix.io/docs.fastpix.io/...todashboard.fastpix.com/fastpix.com/docs/...so every link in the package points at the post-migration host structure. - Reference links (Homepage, Dashboard, API Reference, "Detailed Usage") repointed to
fastpix.com. - Sample playback URLs in code examples updated from
stream.fastpix.iotostream.fastpix.com.
- 173 documentation links across 70 markdown files verified reachable after migration; zero
fastpix.com/docs/*URLs are broken. The handful of remaining broken links in the link-check report are expired example assets / placeholder thumbnails inside API response snippets, not navigation targets.
- Fixed
eventsfield inget_video_view_detailsresponse returning empty objects — addedvalidation_aliasmappings for abbreviated API keys (pt,e,vt,d) to full camelCase names (playerPlayheadTime,eventName,viewerTime,eventDetails) - Fixed
eventDetailsnested object returning raw abbreviated keys — introducedEventDetailsmodel with proper field mappings (host→hostName,txt→text,c→code,err→error,t→type,u→url,br→bitrate,h→height,fps→fps,cd→codec,w→width) - Fixed
fpSDKandfpSDKVersionfields missing from response — addedAliasChoicesto accept bothfpSdkandfpSDKvariants from the API - Fixed
experimentNamenull value being excluded from serialized output - Added missing
customfield toViewsmodel to capture user-defined metadata object
- Response models for video view details now fully conform to the OpenAPI spec field names
- Fixed SDK import paths in
_sub_sdk_map- changed fromFastpix.*tofastpix_python.*to resolveModuleNotFoundErrorfor end users - Fixed all documentation examples - removed unnecessary
sys.path.append()statements - Updated method name from
create_from_urltocreate_mediain examples
- All SDK documentation examples now work out-of-the-box without workarounds
- Consistent import statements across all documentation files
- Fixed missing parameters in multiple API methods.
- Improved overall developer experience through more accurate typings.
- Fixed pyproject.toml file Packaging Issue
- Fixed Packaging Issue
- Fixed all error handling links in README.md documentation
- Corrected typos in file paths (e.g.,
fFastpix→Fastpix) - Updated filenames to match actual error class files (added missing underscores)
- Fixed 23 error class links to properly redirect to correct files
- Verified all links now point to existing files in
src/Fastpix/errors/directory
- Corrected typos in file paths (e.g.,
- Complete API coverage for Media, Live Streaming, Video Data, and Signing Keys
- Python 3.9+ support with async/await patterns and type hints
- Media upload, management, and processing capabilities
- Live streaming with simulcasting support
- Video analytics and performance tracking
- Cryptographic signing keys for secure authentication
- In-video AI processing features
- DRM configuration and management
- Playlist creation and management
- Comprehensive error handling with specific exception types
- Both sync and async client implementations
- Built-in retry mechanisms and timeout handling
- Reorganized package structure for better maintainability
- Updated dependencies to modern Python packages (httpx, pydantic, httpcore)
- Improved API design with better error handling
- Enhanced documentation and examples
- Improved error handling with specific exception types
- Fixed type annotation issues for better IDE support
- Ensured consistent API patterns across modules
- Enhanced README documentation with comprehensive usage examples
- Improved project setup and installation instructions
- Updated version number to reflect latest improvements
- Restructured documentation for better user experience
- Enhanced code examples and API usage guides
- New base URL configuration system for better API connectivity
- Support for different API environments (production, staging, development)
- Updated base URL configuration for improved API endpoint resolution
- Enhanced connection stability and reliability
- Improved error handling for connection issues
- Project URL management system for better package distribution
- Enhanced package metadata and configuration
- Updated project URLs in configuration files for better package identification
- Improved package metadata and distribution information
- Enhanced project discoverability and documentation links
- Comprehensive version tracking and file management system
- Automated version control and release management
- Initial project structure and configuration framework
- Updated version number and project configuration
- Improved project organization and file structure
- Enhanced build and deployment processes
- New package naming convention for better identification
- Enhanced package metadata and distribution information
- Changed package name for better identification and distribution
- Updated package metadata and configuration
- Improved package discoverability and installation process
- Version management improvements
- Enhanced configuration system
- Updated version number to reflect latest changes
- Improved project configuration and build processes
- Enhanced package metadata and dependencies
- Comprehensive documentation link validation system
- Enhanced workflow automation and CI/CD pipeline
- Corrected redirection links in README documentation
- Fixed broken documentation links for better user experience
- Resolved navigation issues in project documentation
- Updated workflow configuration and processes
- Improved project automation and deployment pipeline
- Enhanced documentation structure and organization
- Updated codebase with consistent naming conventions
- Added comprehensive package description
- Resolved naming convention inconsistencies
- Initial release of FastPix Python SDK
- Sync and async client support
- Media API integration with upload, management, and processing
- Playback ID management for media files
- Media operations (list, get, update, delete)
- Presigned URL generation for video uploads
- Livestream API integration
- Livestream management (create, update, delete)
- Playback ID management for livestreams
- Simulcast configuration for livestreams