place.stream.media.getVideo

moderation.stream.place

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Get a hydrated view of a place.stream.video record — the record itself plus author info plus aggregated view counts summed across every reporting node we've indexed. View counts come from place.stream.media.viewCount records; consumers see one number per metric, with the underlying multi-reporter detail collapsed away.",
      "errors": [
        {
          "description": "No record indexed at the supplied AT-URI.",
          "name": "VideoNotFound"
        }
      ],
      "output": {
        "encoding": "application/json",
        "schema": {
          "ref": "#videoView",
          "type": "ref"
        }
      },
      "parameters": {
        "properties": {
          "uri": {
            "description": "AT-URI of the place.stream.video record.",
            "format": "at-uri",
            "type": "string"
          }
        },
        "required": [
          "uri"
        ],
        "type": "params"
      },
      "type": "query"
    },
    "videoView": {
      "properties": {
        "author": {
          "ref": "app.bsky.actor.defs#profileViewBasic",
          "type": "ref"
        },
        "cid": {
          "format": "cid",
          "type": "string"
        },
        "likeCount": {
          "description": "Total number of place.stream.like records whose subject is this video. Always present; zero when none, so consumers can render a count unconditionally.",
          "minimum": 0,
          "type": "integer"
        },
        "record": {
          "type": "unknown"
        },
        "tracks": {
          "items": {
            "ref": "place.stream.media.track#trackView",
            "type": "ref"
          },
          "type": "array"
        },
        "uri": {
          "format": "at-uri",
          "type": "string"
        },
        "viewCounts": {
          "description": "Aggregated view counts across every indexed reporter. Always present; zero-valued (count=0, reporters=0) when no place.stream.media.viewCount records have been observed yet, so consumers can render a count unconditionally.",
          "ref": "#viewCountSummary",
          "type": "ref"
        }
      },
      "required": [
        "uri",
        "cid",
        "author",
        "record",
        "viewCounts",
        "likeCount"
      ],
      "type": "object"
    },
    "viewCountSummary": {
      "description": "Sums across every place.stream.media.viewCount record indexed for this video, regardless of reporter or window. The underlying records are window-bounded; the consumer sees a running total.",
      "properties": {
        "bytes": {
          "description": "Sum of bytes transferred across every track row in every indexed report.",
          "minimum": 0,
          "type": "integer"
        },
        "count": {
          "description": "Sum of `count` across every indexed report.",
          "minimum": 0,
          "type": "integer"
        },
        "durationMs": {
          "description": "Sum of playback duration (ms) across every track row in every indexed report.",
          "minimum": 0,
          "type": "integer"
        },
        "reporters": {
          "description": "Number of distinct streamplace nodes that have contributed at least one viewCount record for this video.",
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "count",
        "bytes",
        "durationMs",
        "reporters"
      ],
      "type": "object"
    }
  },
  "id": "place.stream.media.getVideo",
  "lexicon": 1
}

Validate Record

Validate a record against place.stream.media.getVideo

Validation Options
Automatically resolve and include external schemas for full validation
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:gqtagsooi75obldmytuow57q
CID
bafyreicivgnnkdoltsx4nmrsi52lgt3ic5l6gicqtzokdazwkr6jin6mdq
Indexed At
2026-08-20 16:29 UTC
AT-URI
at://did:plc:gqtagsooi75obldmytuow57q/com.atproto.lexicon.schema/place.stream.media.getVideo

Referenced Schemas (2)

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • place.stream.media.viewCount recordnot from the namespace authority

    A streamplace node's report of view counts for one place.stream.video over a closed time window. Published in the reporting node's server repo (not the streamer's), so a video served by multiple nodes accumulates multip…

  • place.stream.live.viewCount recordnot from the namespace authority

    Current view count for a livestream on a particular server.

  • place.stream.media.getVideoList querynot from the namespace authority

    List videos newest first. Scoped to a single repo when `repo` is supplied; otherwise lists videos across every indexed repo. Returns hydrated video views with author info and view counts.

  • Current viewer count for a livestream on a particular server. Record keys are streamer_did::server_did by convention.

  • place.stream.playback.getVideoPlaylist querynot from the namespace authority

    Get an HLS CMAF playlist for a video. Returns a master playlist when `track` is omitted, or a single-track media playlist when `track` is supplied. The playlist references each segment + per-track init segment via getVi…

Lexicon Garden

@