package main
import (
"context"
"fmt"
"io"
"os"
"github.com/kernel/kernel-go-sdk"
)
func main() {
ctx := context.Background()
client := kernel.NewClient()
sessionID := "brw_01jwv4tn5m8k3q2v7x9p0a1bc2"
replays, err := client.Browsers.Replays.List(ctx, sessionID)
if err != nil {
panic(err)
}
for _, replay := range *replays {
fmt.Printf("Replay ID: %s\n", replay.ReplayID)
fmt.Printf("View URL: %s\n", replay.ReplayViewURL)
videoData, err := client.Browsers.Replays.Download(ctx, replay.ReplayID, kernel.BrowserReplayDownloadParams{
ID: sessionID,
})
if err != nil {
panic(err)
}
filename := fmt.Sprintf("replay-%s-%s.mp4", replay.ReplayID, sessionID)
file, err := os.Create(filename)
if err != nil {
videoData.Body.Close()
panic(err)
}
_, copyErr := io.Copy(file, videoData.Body)
closeErr := videoData.Body.Close()
fileErr := file.Close()
if copyErr != nil {
panic(copyErr)
}
if closeErr != nil {
panic(closeErr)
}
if fileErr != nil {
panic(fileErr)
}
fmt.Printf("Saved replay to %s\n", filename)
}
}