---
title: SiriKit Cloud Media
framework: SiriKit Cloud Media
role: collection
role_heading: Web Service
platforms: [sirikit cloud media 1.0.2+]
path: sirikitcloudmedia
---

# SiriKit Cloud Media

Stream music directly to HomePod speakers from your media service.

## Overview

Overview When the user asks an authorized HomePod speaker to play some media, the media device can contact your SiriKitCloudMedia service directly, rather than send requests through an intermediary iOS device. Download the SiriKit Cloud Media OpenAPI Specification. For details about applying for the SiriKit Media Intents on HomePod program, see the HomePod section of Siri for Developers. Configure the User’s HomePod Authorize HomePod speakers to contact your media service by adopting Media Setup in your iOS app and vending tokens from an OAuth service. After the user enables your service for devices in their home, they can manage access in the Home app. Provide a HomePod speaker with details about sending requests to your service by implementing the configuration endpoint. Include paths and required headers for the endpoints you support. See  Configure Your Service Endpoints for more information. note: During a single session, some requests may come from a different HomePod speaker or an Apple TV within the user’s home. Respond to these requests the same as you do when a single device sends all of them. Use the Session object to maintain continuity. Respond to a Siri Intent with a Media Playback Queue Implement the Process a Play Media Intent endpoint to receive the user’s request, resolve the media they want to play, and handle the intent. Respond with a UserActivity, which the client uses to request a Queue of media Content from the Get a Media Queue endpoint. Manage how frequently the user can skip content in a queue, and what playback controls are available with each piece of content, with the PlayMediaControl you include in each queue. Monitor user interactions and playback progress with periodic updates on the Report Playback Progress and Activity endpoint. You may optionally respond to Report Playback Progress and Activity requests with a queue segment to replace or modify the current playback queue. Adapt to the User’s Tastes Empower the user to customize their library and playlists with the Process an Add Media Intent endpoint. They might ask Siri to add a certain artist’s latest album to their library, or to add the currently playing song to their Karaoke Practice playlist. You can also tune algorithmic playlists by incorporating the preferences users share as Process an Update Media Affinity Intent intents. For example, if the user says “I like rock-and-roll,” you might include more songs from that genre the next time they ask to play some music. Or if they say “I don’t like this song,” you might exclude the currently playing song from future recommendations.

## Topics

### Device Configuration

- [Configure Your Service Endpoints](sirikitcloudmedia/configuration-resource.md)
- [ExtensionConfigTag](sirikitcloudmedia/extensionconfigtag.md)
- [ExtensionConfig](sirikitcloudmedia/extensionconfig.md)
- [PlayMediaControlActivity](sirikitcloudmedia/playmediacontrolactivity.md)

### Media Play Queues

- [Process a Play Media Intent](sirikitcloudmedia/playmedia-1g2o9.md)
- [Get a Media Queue](sirikitcloudmedia/playmedia-1onzj.md)

### Content Protection

- [Retrieve an Asset’s Content Protection Key](sirikitcloudmedia/contentprotectionkey.md)
- [ContentProtectionKeyRequest](sirikitcloudmedia/contentprotectionkeyrequest.md)
- [ContentProtectionKeyResponse](sirikitcloudmedia/contentprotectionkeyresponse.md)
- [ContentProtectionKeySystem](sirikitcloudmedia/contentprotectionkeysystem.md)

### Playback Events

- [QueueActivityReportEvent](sirikitcloudmedia/queueactivityreportevent.md)
- [Report Playback Progress and Activity](sirikitcloudmedia/updateactivity.md)
- [UpdateActivityRequest](sirikitcloudmedia/updateactivityrequest.md)
- [UpdateActivityResponse](sirikitcloudmedia/updateactivityresponse.md)
- [Process an Update Media Affinity Intent](sirikitcloudmedia/updatemediaaffinity.md)

### Playback Failure

- [Recover from Content Playback Failure](sirikitcloudmedia/contentplaybackfailure.md)
- [ContentFailure](sirikitcloudmedia/contentfailure.md)
- [ContentPlaybackFailureRequest](sirikitcloudmedia/contentplaybackfailurerequest.md)
- [ContentPlaybackFailureResponse](sirikitcloudmedia/contentplaybackfailureresponse.md)

### Library and Playlists

- [Process an Add Media Intent](sirikitcloudmedia/addmedia.md)

### Media Items

- [MediaItem](sirikitcloudmedia/mediaitem.md)
- [MediaReference](sirikitcloudmedia/mediareference.md)
- [MediaSearch](sirikitcloudmedia/mediasearch.md)
- [MediaItemType](sirikitcloudmedia/mediaitemtype.md)

### Requests

- [Invocation](sirikitcloudmedia/invocation.md)
- [Session](sirikitcloudmedia/session.md)
- [Constraints](sirikitcloudmedia/constraints.md)
- [PlayerContext](sirikitcloudmedia/playercontext.md)
- [InvocationResponse](sirikitcloudmedia/invocationresponse.md)

### Intents

- [Intent](sirikitcloudmedia/intent.md)
- [IntentResponse](sirikitcloudmedia/intentresponse.md)
- [UserActivity](sirikitcloudmedia/useractivity.md)
- [IntentResolutionResult](sirikitcloudmedia/intentresolutionresult.md)
- [BooleanResolutionResult](sirikitcloudmedia/booleanresolutionresult.md)

### Exceptions

- [ProtocolExceptionInvocationResponse](sirikitcloudmedia/protocolexceptioninvocationresponse.md)
- [ProtocolException](sirikitcloudmedia/protocolexception.md)
- [ProtocolExceptionReason](sirikitcloudmedia/protocolexceptionreason.md)

### Errors

- [UnderlyingError](sirikitcloudmedia/underlyingerror.md)
