Skip to content

Chapters

Chapters split the timeline into named segments. Hovering a segment highlights it and shows a tooltip with the chapter name and timestamp.

Basic Usage

Pass an array of Chapter objects to the chapters prop. Each chapter starts at the given time (in seconds) and ends where the next one begins:

vue
<script setup lang="ts">
import { VideoPlayer } from '@vue-player/vue'
import type { Chapter } from '@vue-player/core'

const chapters: Chapter[] = [
  { time: 0,   label: 'Introduction' },
  { time: 45,  label: 'Getting Started' },
  { time: 180, label: 'Advanced Usage' },
  { time: 360, label: 'Conclusion' },
]
</script>

<template>
  <VideoPlayer
    src="https://example.com/video.mp4"
    :chapters="chapters"
  />
</template>

Chapter Type

ts
interface Chapter {
  time: number    // start time in seconds
  label: string   // displayed in the tooltip
}

How It Works

  • The timeline track is divided into segments proportional to each chapter's duration.
  • A small gap (--vp-timeline-gap) separates each segment visually.
  • On hover, the active segment brightens and the tooltip shows label • HH:MM:SS.
  • Chapters are sorted by time automatically — order in the array doesn't matter.

Released under the MIT License.