Rad TV Developer API

Engagement

The API supports likes, comments, and channel follow/unfollow. Catalog types (Feature, Episode, Stream, etc.) and Content implement like and comment interfaces.

Likes

Likeable entities

Content and catalog types (Feature, Episode, Stream, Serie, Season, Miniseries) implement Likeable: they have id (DID) and likes: ContentLikes. ContentLikes has:

  • count — Total like count
  • isLiked — Whether the current authenticated user has liked the entity

Like / unlike (by DID)

GraphQL:

mutation {
  likeContent(id: "did:rad.live:content/feature/abc123") {
    id
    likes { count isLiked }
  }
}

mutation {
  unlikeContent(id: "did:rad.live:content/feature/abc123") {
    id
    likes { count isLiked }
  }
}

MCP: like_content, unlike_content with id (content DID).

Comments

Listing comments

GraphQL: comments(contentId: DID!, limit: Int, start: Int)
MCP: list_comments with contentId, optional limit, start.

Commentable entities (Content and catalog types) also expose comments(limit, start) on the type itself.

Creating a comment

GraphQL:

mutation {
  createComment(
    contentId: "did:rad.live:content/feature:xyz"
    body: "Great video!"
  ) {
    id
    body
    contentId
    createdAt
    author { id username }
  }
}

MCP: create_comment with contentId and body.

The authenticated user is set as the comment author. Comments are stored and queried via the User API (12core).

Channel follow / unfollow

Follow / unfollow

GraphQL:

mutation {
  followChannel(channel: "did:rad.live:channel/<uuid>") { ok }
}

mutation {
  unfollowChannel(channel: "did:rad.live:channel/<uuid>") { ok }
}

MCP: follow_channel, unfollow_channel with channel (channel DID).

Followed channels

GraphQL: me.followedChannels
MCP: list_followed_channels (no arguments).