リスナー操作
APIトークンで認証すると、Webやアプリと同様にフォロー、再生位置、コメント、プレイリストを操作できます。
番組のフォロー
mutation FollowPodcast($podcastId: ID!) {
followPodcast(podcastId: $podcastId) {
id
title
isFollowing
}
}
解除にはunfollowPodcast(podcastId:)を使います。
再生位置
positionはエピソード先頭からの秒数です。オフライン中の操作を後から送信する場合は、記録時刻をISO 8601形式のclientUpdatedAtで指定すると、より新しい位置の上書きを防げます。
mutation SavePlaybackPosition($episodeId: ID!, $position: Float!) {
updatePlaybackPosition(
episodeId: $episodeId
position: $position
isCompleted: false
clientUpdatedAt: "2026-09-01T11:30:00+09:00"
) {
id
playbackPosition {
position
isCompleted
updatedAt
}
}
}
コメント
mutation CreateComment($episodeId: ID!, $body: String!) {
createComment(episodeId: $episodeId, body: $body) {
episode { id commentsCount }
moderationWarning { message reason }
}
}
moderationWarningが返った場合、コメントはまだ投稿されていません。内容を確認し、投稿を続ける場合だけconfirmedFlagged: trueを付けて再送します。削除にはdeleteComment(commentId:)、スターにはaddCommentStar(commentId:)を使います。
プレイリスト
mutation CreatePlaylist($title: String!) {
createPlaylist(title: $title, visibility: PRIVATE) {
id
title
visibility
}
}
mutation AddEpisode($playlistId: ID!, $episodeId: ID!) {
addEpisodeToPlaylist(playlistId: $playlistId, episodeId: $episodeId) {
id
title
containsEpisode(episodeId: $episodeId)
}
}
ほかにupdatePlaylist、deletePlaylist、removeEpisodeFromPlaylist、addPodcastToPlaylist、removePodcastFromPlaylist、updatePlaylistsOrderを利用できます。自分が閲覧できるプレイリストはme { playlists { ... } }で取得できます。