syntax = "proto2"; import "steammessages_unified_base.proto"; option py_generic_services = true; message CVideo_ClientGetVideoURL_Request { optional uint64 video_id = 1 [(description) = "Video ID"]; optional uint32 client_cellid = 2 [(description) = "Cell ID of client, zero if unknown"]; } message CVideo_ClientGetVideoURL_Response { optional uint64 video_id = 1 [(description) = "Video ID"]; optional string video_url = 2 [(description) = "URL for video manifest"]; } message VideoBookmark { optional uint32 app_id = 1 [(description) = "App ID"]; optional uint32 playback_position_in_seconds = 2 [(description) = "How many seconds into the video the bookmark is for"]; optional uint64 video_track_id = 3 [(description) = "video track choice."]; optional uint64 audio_track_id = 4 [(description) = "audio track choice."]; optional uint64 timedtext_track_id = 5 [(description) = "timedtimed or subtitle track choice"]; } message CVideo_SetVideoBookmark_Notification { repeated .VideoBookmark bookmarks = 1 [(description) = "list of bookmarks we want to store."]; } message CVideo_GetVideoBookmarks_Request { repeated uint32 appids = 1 [(description) = "List of App IDs to grab bookmarks for. Can be empty if using updated_since."]; optional uint32 updated_since = 2 [(description) = "Only return results after time. Min value is 1. (seconds since epoch January 1st, 1970 Unix Time)"]; } message CVideo_GetVideoBookmarks_Response { repeated .VideoBookmark bookmarks = 1 [(description) = "List of bookmarks we found. Can be empty."]; } message CVideo_UnlockedH264_Notification { optional bytes encryption_key = 1; } message CFovasVideo_ClientGetOPFSettings_Request { optional uint32 app_id = 1 [(description) = "App ID"]; optional uint32 client_cellid = 2 [(description) = "Cell ID of client, zero if unknown"]; } message CFovasVideo_ClientGetOPFSettings_Response { optional uint32 app_id = 1 [(description) = "App ID"]; optional string opf_settings = 2 [(description) = "JSON blob of OPF Settings"]; } service Video { option (service_description) = "Video methods"; rpc ClientGetVideoURL (.CVideo_ClientGetVideoURL_Request) returns (.CVideo_ClientGetVideoURL_Response) { option (method_description) = "Get the initial URL to begin streaming a video"; } rpc SetVideoBookmark (.CVideo_SetVideoBookmark_Notification) returns (.NoResponse) { option (method_description) = "Bookmarks the locations in the video the user has reached. As as record playback settings per video. Fire and forget."; } rpc GetVideoBookmarks (.CVideo_GetVideoBookmarks_Request) returns (.CVideo_GetVideoBookmarks_Response) { option (method_description) = "Returns the video bookmarks locations for the specific videos. Includes playback settings per video"; } } service VideoClient { option (service_execution_site) = k_EProtoExecutionSiteSteamClient; rpc NotifyUnlockedH264 (.CVideo_UnlockedH264_Notification) returns (.NoResponse) { option (method_description) = "Notification from server to client that h264 has been unlocked"; } } service FovasVideo { option (service_description) = "Fovas Video Service Methods"; rpc ClientGetOPFSettings (.CFovasVideo_ClientGetOPFSettings_Request) returns (.CFovasVideo_ClientGetOPFSettings_Response) { option (method_description) = "Retrieve the OPF settings JSON blob. Available via the Client for 360 Player App"; } }