Repository navigation
Releases: FastPix/fastpix-csharp
Release list
v1.3.0
Version - [1.3.0]
Added
- Cloud Playout: six new resources with 33 operations for channels that play
media, playlists and live events as a continuous stream, on a loop or on a schedule.CloudPlayoutChannels(7): list, create, get, update, delete, activate, deactivate.CloudPlayoutLoopPrograms(11): programs on a loop channel and the media, playlists
and bumpers inside them.CloudPlayoutScheduleChannel(5): list, add, update and delete events on a schedule
channel, singly or in a batch.CloudPlayoutChannelOverlays(4): list, add, update and remove overlay placements.CloudPlayoutScheduleAndEpg(3): what a channel plays as JSON, a CSV export
(ExportScheduleAsyncreturns the body asCsv) and an XMLTV guide (GetEpgAsync
returns it asXml); headers such asContent-DispositionandX-Total-Countare
onHttpMeta.Response.CloudPlayoutSimulcast(3): list, add and remove RTMP(S) restream targets.- Request times are plain
yyyy-MM-ddTHH:mm:ssstrings (UTC, noZ); response times
areDateTime?. Response enums are open enums, request enums are strict.
- Live stream responses (create, get, list, update) now include an optional
MediaQuality
(standard,pro,premium), kept raw if the server sends a newer value.
Changed
IFastpixSDKhas six new properties, one per Cloud Playout resource. Code that uses
FastpixSDKis unaffected; a class that implementsIFastpixSDKitself must add them.
v1.2.1
Version - [1.2.1]
Changed
- Enum fields the API returns are now open enums (classes) instead of C#
enums, so
a value newer than the SDK no longer fails the whole response — it is kept as a raw
string. Affects every response-side enum, includingMediaStatus,
MediaSourceResolution,MediaMaxResolution,MediaMediaQuality, the
GetAllMediaResponse*/GetMediaDetailResponse*/SourceAccessMedia*/
LiveMediaClips*/UpdateMedia*/CreateMediaResponse*variants,Mp4Support*,
playlist and track response types, and the sharedAccessPolicy,PolicyAction
andPlaylistOrder.- Backward compatible for the common cases: known values still resolve to the same
members and==still works (media.Status == MediaStatus.Ready). The one thing
to update is aswitchon these values — you can no longer use a member as a
caselabel; switch on.Valueor useif/==. An unrecognised value has
IsKnown == falsewith the raw text in.Value. - Request-side enums are unchanged. The 3 shared enums also drop the throw from
Of("unknown"); request values come from members, so this has no practical effect.
- Backward compatible for the common cases: known values still resolve to the same
v1.2.0
Version - [1.2.0]
Breaking
- Media
durationis now adouble?(seconds) instead of an"HH:MM:SS"string,
matching the updated API. AffectsManageVideos.GetByIdAsync,ListAsync,
UpdateSourceAccessAsync,UpdateMp4SupportAsync,ListClipsAsync,
Videos.UpdateAsync,ListLiveClipsAsync,Playlist.CreateAsync, and
Playlists.GetAsync,UpdateAsync,AddMediaAsync,ReorderMediaAsync,
DeleteMediaAsync(every model carryingduration:GetMediaDetailResponse,
GetAllMediaResponse,UpdateMedia,SourceAccessMedia,Media,
LiveMediaClips,MediaClipResponseData,PlaylistByIdResponseMediaListItem).
Added
InputMediaSettings.EnableRecordingon live stream creation (defaults totrue;
setfalseto skip the Live-to-VOD recording).AccessRestrictions(domain and user-agent allow/deny policies) on
PlaybackIdRequest,PlaybackIdSuccessResponseData,PlaybackSettingsand
PlaybackIdResponse, so live playback IDs can be restricted on create and read
back on get.LivePlayback.UpdateDomainRestrictionsAsyncfor
PATCH /live/streams/{streamId}/playback-ids/{playbackId}/domains.LivePlayback.UpdateUserAgentRestrictionsAsyncfor
PATCH /live/streams/{streamId}/playback-ids/{playbackId}/user-agents.- Offline unit tests: model contracts, a fake-transport test for the new
endpoints, and a response-contract scan over every resource method.
Changed
- The validation harness looks for the OpenAPI snapshot as
openapi.yamlonly.
v1.1.6
Version - [1.1.6]
Changed
- Licence changed from MIT to Apache-2.0.
v1.1.5
Version - [1.1.5]
Synchronises the SDK with the current fastpix-openai.yaml. The four new
In-video AI operations (/ai/{mediaId}/advanced-summary,
/ai/{mediaId}/attributed-transcript) are not included in this entry.
Breaking
Models.Components.GetMediaResponserenamed to
Models.Components.GetMediaDetailResponse, following the schema rename on
GET /on-demand/{mediaId}. Its generated companion types were renamed to
match:GetMediaResponseMaxResolution,…MediaQuality,…Mp4Support,
…SourceResolution,…Statusand…Trackare now
GetMediaDetailResponse*. The HTTP wrapperModels.Requests.GetMediaResponse
is unchanged.UpdateTrackRequest.Urlremoved. The API does not allow a track's file to
be changed — only its language and title. Callers settingUrlmust drop it.UpdateMediaMaxResolution.ThreeHundredAndSixtyp(360p) removed, matching
theUpdate-Media.maxResolutionenum. No othermaxResolutionenum offered
360p, and no request enum accepts it, so the API cannot return it.Mp4Supporton media responses is now a list, not a scalar enum. The
schema has long declaredmp4Supportas an array of rendition objects, but
the SDK modelled it as a single string enum, so any response with MP4
renditions present failed to deserialize. OnMedia,GetAllMediaResponse,
GetMediaDetailResponse,LiveMediaClips,SourceAccessMediaand
UpdateMediathe property is nowList<Mp4SupportEntry>?, and the six
per-model enums (MediaMp4Support,GetAllMediaResponseMp4Support,
GetMediaDetailResponseMp4Support,LiveMediaClipsMp4Support,
SourceAccessMediaMp4Support,UpdateMediaMp4Support) were removed.
Read the requested setting from the request models —CreateMediaRequestMp4Support,
DirectUploadVideoMediaMp4SupportandUpdatedMp4SupportMp4Supportare
unchanged and remain string enums.
Added
Titleon ten track models:AddTrackRequest,AddTrackResponse,
UpdateTrackRequest,UpdateTrackResponse,GenerateTrackResponse,
TrackSubtitlesGenerateRequest,AudioTrack,SubtitleTrack,VideoTrack
andVideoTrackForGetAll.OptimizeAudio(bool?) onMedia,GetAllMediaResponse,
LiveMediaClips,SourceAccessMedia,GetMediaDetailResponseand
UpdateMedia.Mp4SupportEntrycomponent, describing one downloadable MP4 rendition
(Type,Status,Height,Width,Ext), together with the
Mp4SupportType(capped_4k,audioOnly),Mp4SupportStatus(preparing,
ready,failed) andMp4SupportExt(mp4,m4a) enums.360pand360added to thesourceResolutionenums for
GetAllMediaResponse,GetMediaDetailResponse,LiveMediaClips,Mediaand
SourceAccessMedia.UpdateMediaSourceResolutionalready carried both.
Fixed
- Documentation links updated for the FastPix docs reorganisation — webhook
events now under/docs/webhooks/, track and playback guides under
/docs/video-on-demand/, AI guides under/docs/in-video-ai/, live-stream
guides under/docs/live-streaming/, analytics guides under
/docs/video-data/, and/docs/error-codes→/docs/error-codes/error-codes.
Live-stream "Manage streams" links now carry their per-operation anchors. - Webhook event renamed in prose:
video.media.subtitle.generated.ready→
video.media.subtitle.generated. - The
GET /on-demand/{mediaId}andPATCH /on-demand/{mediaId}/update-mp4Support
response examples now showmp4Supportas the array of rendition objects the
schema declares, rather than the scalar"capped_4k".
Compatibility
maxDuration.minimummoved from0to60on the live-stream response
models. The SDK does not emit range validation, so there is no code change.
v1.1.4
Version - [1.1.4]
Changed
-
SDK version bump:
1.1.3→1.1.4.
A maintenance release that updates the SDK's internal version identifiers.
It contains no functional, API, or behavioral changes and is fully
backward compatible with1.1.3.Updated identifiers:
- Package
<Version>— bumped1.1.3→1.1.4. SdkVersionconstant — now reports1.1.4(kept in sync with the package
version).User-Agentheader — outbound requests now identify as
fastpix-sdk/csharp 1.1.4. This value was previously lagging at1.1.2
and is now aligned with the package version.
- Package
v1.1.3
VERSION - [1.1.3]
⚠️ Important — FastPix is migrating from .io to .com
All FastPix hosts and documentation links are moving to the .com TLD:
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/... |
The .io hosts continue to serve traffic during the transition, but they are slated for deprecation soon — please update any hard-coded references in your application as part of your next deploy. We strongly recommend upgrading to this SDK release (or later) across every language you use — every official FastPix SDK is being rolled out with the same migration.
What this means for users of the Fastpix C# SDK:
- If you rely on SDK defaults, no code change is required. The default server URL is
https://api.fastpix.com/v1/, so updating theFastpixpackage to1.1.3(e.g.dotnet add package Fastpix --version 1.1.3) is enough. - If you have an explicit server URL override (e.g.
new FastpixSDK(serverUrl: "https://api.fastpix.io/v1/")orFastpixSDK.Builder().WithServerUrl("https://api.fastpix.io/v1/")), change it tohttps://api.fastpix.com/v1/. - If you reference FastPix asset URLs directly in your app (HLS playback URLs, image CDN, dashboard deep links), update those to the
.comequivalents before.iois decommissioned.
All README and per-SDK doc links in this package have been updated to point at the new https://fastpix.com/docs/... URLs.
Fixed (SDK ↔ API parity)
ManageVideos.ListAsync(/on-demand): tracks now includeframeRate, which was being silently dropped by the previous SDK build (the field was present in the spec but missing from the generatedVideoTrackForGetAllmodel).SigningKeys.DeleteAsync: response shape now includes the optionaldata.messageconfirmation string the API has been returning.
Docs
- All README and per-service documentation pages updated from
docs.fastpix.io/...anddocs.fastpix.com/...to the newhttps://fastpix.com/docs/...URL structure.
v1.1.2
Version - [1.1.2]
Fixed
- Fixed data event field remapping in hooks.
v1.1.1
Version - [1.1.1]
- Updated documentation redirection links in README.md.
v1.1.0
Version - [1.1.0]
- Fixed missing parameters in multiple API methods.
- Improved overall developer experience through more accurate typings.