> For the complete documentation index, see [llms.txt](https://docs.hello-lisa.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hello-lisa.com/developers/guides/player-communication/message-api-reference/media/media-progress.md).

# Media — Progress

The LiSA Player regularly sends a media progress message to report the current playback status and track visitor dwell time.

### Properties

Along with all standard [Media Message properties](/developers/guides/player-communication/message-api-reference/media.md#properties), a **Progress** message includes the following additional properties:

<table><thead><tr><th width="243" valign="top">Name</th><th width="192" valign="top">Type</th><th valign="top">Description</th></tr></thead><tbody><tr><td valign="top"><code>messageType</code></td><td valign="top"><pre><code>Literal
</code></pre><p>Required.</p></td><td valign="top"><code>lsc:media:progress</code></td></tr></tbody></table>

### Legacy Properties

{% hint style="warning" %}
If your integration uses **LiSA Player Version 1**, none of the properties described above will be available.

For **LiSA Player Version 2**, legacy properties can be ignored.
{% endhint %}

<table><thead><tr><th width="197" valign="top">Name</th><th width="190" valign="top">Type</th><th valign="top">Description</th></tr></thead><tbody><tr><td valign="top"><code>action</code></td><td valign="top"><pre><code>Literal
</code></pre><p>Required.</p></td><td valign="top"><code>time</code><br><br><span data-gb-custom-inline data-tag="emoji" data-code="26a0">⚠️</span> Please use <code>messageType</code> instead.</td></tr><tr><td valign="top"><code>playing</code></td><td valign="top"><pre><code>Boolean
</code></pre><p>Required.</p></td><td valign="top">The <code>playing</code> property indicates, whether the current media item is playing or paused.<br><br><span data-gb-custom-inline data-tag="emoji" data-code="26a0">⚠️</span> Please use <code>progress.isPlaying</code> instead.</td></tr><tr><td valign="top"><code>target</code></td><td valign="top"><pre><code>Literal
</code></pre><p>Required.</p></td><td valign="top"><code>player</code><br><br><span data-gb-custom-inline data-tag="emoji" data-code="26a0">⚠️</span> Please use <code>messageType</code> instead.</td></tr><tr><td valign="top"><code>time</code></td><td valign="top"><pre><code>Number
</code></pre><p>Optional.</p></td><td valign="top"><p>The <code>time</code> property represents the current playback position of the media item, measured in seconds from the start.</p><ul><li><strong>For live streams</strong>, this value represents the current timestamp relative to the live broadcast</li><li><strong>For on-demand content</strong> (e.g., replays, stories), this value indicates the exact position the user is watching.</li></ul><p><span data-gb-custom-inline data-tag="emoji" data-code="26a0">⚠️</span> Please use <code>progress.currentTimeInMs</code> instead.</p></td></tr></tbody></table>

***

### Type Definition

```typescript
interface MediaProgressMessage extends Omit<MediaMessage, 'messageType'> {
  messageType: 'lsc:media:progress';
}
```

***

### Examples

```json
{
  "clockDriftInMs": 0,
  "mediaItemId": "9f333331-45cb-4289-8bcd-9023c1871111",
  "mediaItemType": "live",
  "messageType": "lsc:media:progress",
  "progress": {
    "bufferedTimeInMs": 648036,
    "currentTimeInMs": 628008,
    "durationInMs": 4616000,
    "elapsedTimeInMs": 28784,
    "skipTimeInMs": 600000,
    "isLive": true,
    "visitorDwellTimeInMs": 29135,
    "isPlaying": true
  },
  "sender": "LiSA",
  
  "action": "time",
  "playing": true,
  "target": "player",
  "time": 628
}
```
