go-twitch/api/streams/models.go

88 lines
2.7 KiB
Go
Raw Permalink Normal View History

2024-03-03 17:34:18 -05:00
package streams
import "time"
type Stream struct {
// An ID that identifies the stream. You can use this ID later to look up the video on demand (VOD).
ID string `json:"id"`
// The ID of the user thats broadcasting the stream.
UserID string `json:"user_id"`
// The users login name.
UserLogin string `json:"user_login"`
// The users display name.
UserName string `json:"user_name"`
// The ID of the category or game being played.
GameID string `json:"game_id"`
// The name of the category or game being played.
GameName string `json:"game_name"`
// The type of stream. Possible values are:
//
// live
//
// If an error occurs, this field is set to an empty string.
Type string `json:"type"`
// The streams title. Is an empty string if not set.
Title string `json:"title"`
// The tags applied to the stream.
Tags []string `json:"tags"`
// The number of users watching the stream.
ViewerCount int `json:"viewer_count"`
// The UTC date and time (in RFC3339 format) of when the broadcast began.
StartedAt time.Time `json:"started_at"`
// The language that the stream uses.
// This is an ISO 639-1 two-letter language code or other if the stream uses a language not in the list of supported stream languages.
Language string `json:"language"`
// A URL to an image of a frame from the last 5 minutes of the stream.
// Replace the width and height placeholders in the URL ({width}x{height}) with the size of the image you want, in pixels.
ThumbnailURL string `json:"thumbnail_url"`
// A Boolean value that indicates whether the stream is meant for mature audiences.
IsMature bool `json:"is_mature"`
}
type StreamMarker struct {
// An ID that identifies this marker.
ID string `json:"id"`
// The UTC date and time (in RFC3339 format) of when the user created the marker.
CreatedAt time.Time `json:"created_at"`
// The relative offset (in seconds) of the marker from the beginning of the stream.
PositionSeconds int `json:"position_seconds"`
// A description that the user gave the marker to help them remember why they marked the location.
Description string `json:"description"`
}
type StreamMarkers struct {
// The ID of the user that created the marker.
UserID string `json:"user_id"`
// The users display name.
UserName string `json:"user_name"`
// The users login name.
UserLogin string `json:"user_login"`
// A list of videos that contain markers. The list contains a single video.
Videos []struct {
// An ID that identifies this video.
VideoID string `json:"video_id"`
// The list of markers in this video. The list in ascending order by when the marker was created.
Markers []StreamMarker `json:"markers"`
} `json:"videos"`
}