跳转到内容

Video

视频嵌入插件,支持 Bilibili、YouTube、AcFun 和 ArtPlayer。

安装

sh
pnpm add vitepress-plugin-video
sh
npm install vitepress-plugin-video
sh
bun add vitepress-plugin-video
sh
deno add vitepress-plugin-video
sh
yarn add vitepress-plugin-video

使用

vitepress-tuck 模式 推荐

.vitepress/config.ts
ts
import { defineConfig } from 'vitepress-tuck'
import video from 'vitepress-plugin-video'

export default defineConfig({
  plugins: [
    video({
      // 可选项,全部默认为 true
      artplayer: true,
      youtube: true,
      bilibili: true,
      acfun: true,
    }),
  ],
})

查看 vitepress-tuck 了解更多

传统模式

.vitepress/config.ts
ts
import { defineConfig } from 'vitepress'
import { videoMarkdownPlugin } from 'vitepress-plugin-video'

export default defineConfig({
  markdown: {
    config: (md) => {
      md.use(videoMarkdownPlugin, {
        artplayer: true,
        youtube: true,
        bilibili: true,
        acfun: true,
      })
    },
  },
})
.vitepress/theme/index.ts
ts
import type { Theme } from 'vitepress'
import { enhanceAppWithVideo } from 'vitepress-plugin-video/client'
import DefaultTheme from 'vitepress/theme'

export default {
  extends: DefaultTheme,
  enhanceApp(ctx) {
    enhanceAppWithVideo(ctx)
  },
} satisfies Theme

语法

Bilibili

嵌入 Bilibili 视频

md
@[bilibili](bvid)
@[bilibili](aid cid)
@[bilibili p2 autoplay time=30](bvid)
配置项类型描述
p{number}-视频分 P 号
autoplayboolean自动播放
timenumber | string开始时间,秒数或 HH:MM:SS 格式

YouTube

嵌入 YouTube 视频

md
@[youtube](video_id)
@[youtube autoplay loop start=10 end=120](video_id)
配置项类型描述
autoplayboolean自动播放
loopboolean循环播放
startnumber开始时间,秒数
endnumber结束时间,秒数

AcFun

嵌入 AcFun 视频

md
@[acfun](ac_id)

ArtPlayer

使用 ArtPlayer 播放器嵌入本地或远程视频:

md
@[artPlayer](/videos/demo.mp4)
@[artPlayer muted autoplay poster="/cover.jpg" width="800px"](/videos/demo.mp4)
配置项类型默认值描述
autoplaybooleanfalse自动播放
mutedbooleanfalse静音
loopbooleanfalse循环播放
volumenumber0.75音量等级
posterstring-封面图片 URL
autoMinibooleanfalse自 mini模式
widthstring"100%"播放器宽度
heightstring-播放器高度
ratiostring-比例,例如 "16:9"

支持 mp4, mp3, webm, ogg, mkv, mov 格式。

如果您的视频格式为 'mpd', 'dash', 还需要再手动安装 dashjs

sh
pnpm add dashjs
sh
npm i dashjs
sh
bun add dashjs
sh
deno add dashjs
sh
yarn add dashjs

如果您的视频格式为 'm3u8', 'hls', 还需要再手动安装 hls.js

sh
pnpm add hls.js
sh
npm i hls.js
sh
bun add hls.js
sh
deno add hls.js
sh
yarn add hls.js

如果您的视频格式为 'ts', 'flv', 还需要再手动安装 mpegts.js

sh
pnpm add mpegts.js
sh
npm i mpegts.js
sh
bun add mpegts.js
sh
deno add mpegts.js
sh
yarn add mpegts.js

配置

ts
interface VideoPluginOptions {
  /**
   * 启用 ArtPlayer 播放器
   * @default true
   */
  artplayer?: boolean

  /**
   * 启用 YouTube 视频嵌入
   * @default true
   */
  youtube?: boolean

  /**
   * 启用 Bilibili 视频嵌入
   * @default true
   */
  bilibili?: boolean

  /**
   * 启用 AcFun 视频嵌入
   * @default true
   */
  acfun?: boolean
}

示例

Bilibili

md
@[bilibili](BV1EZ42187Hg)

YouTube

md
@[youtube](0JJPfz5dg20)

AcFun

md
@[acfun](ac47431669)

ArtPlayer

md
@[artPlayer](https://artplayer.org/assets/sample/video.mp4)

基于 MIT 许可发布