# IRecordingSession
Immutable snapshot of a completed recording's metadata. Returned by `IRecordingManager.stopRecording()`.
---
## Source
```java
package gg.lode.recap.api.recording;
import java.util.UUID;
public interface IRecordingSession {
String getId();
String getName();
String getPlayerName();
UUID getPlayerUuid();
long getStartTimestamp();
long getEndTimestamp();
int getDurationTicks();
double getDurationSeconds();
String getWorldName();
double getOriginX();
double getOriginY();
double getOriginZ();
boolean isPersist();
}
```
---
## Methods
| Method | Description |
|---|---|
| `getId()` | Unique UUID for this recording. |
| `getName()` | The name assigned to the recording. |
| `getPlayerName()` | In-game name of the recorded player. |
| `getPlayerUuid()` | UUID of the recorded player. |
| `getStartTimestamp()` | Epoch milliseconds when recording started. |
| `getEndTimestamp()` | Epoch milliseconds when recording ended. |
| `getDurationTicks()` | Total frame count. |
| `getDurationSeconds()` | Duration in seconds (frames / 20.0). |
| `getWorldName()` | World where the recording took place. |
| `getOriginX/Y/Z()` | Player position at recording start. |
| `isPersist()` | `true` if full recording, `false` if rolling buffer mode. |
---
## Example
```java
IRecordingSession session = RecapAPI.getRecordingManager().stopRecording(player, "evidence-123");
if (session != null) {
player.sendMessage("Saved " + session.getDurationSeconds() + "s recording: " + session.getName());
}
```
---
## Related Pages
- [[Recap/API/IRecordingManager]] — start, stop, and manage recordings
- [[Recap/API/RecapAPI]] — accessor class