@devultur/react

中文文档
1.6.1发布于 2026/11/04MITTypeScriptES Module构建来源已验证近 30 天下载 3792

React components and hooks for Devultur media: HLS video player, uploads with progress, image cropper and captions

原始使用文档
文档目录6 节
  1. Install
  2. Example
  3. Playback metrics
  4. Labels
  5. Documentation
  6. License

@devultur/react

React components and hooks for Devultur media: an HLS video player with captions, quality and storyboard previews, drag-and-drop uploads with progress, an image cropper, transcripts and watch-progress tracking.

Install

pnpm add @devultur/react

Requires React 19.

Example

import { UploadZone, VideoPlayer } from "@devultur/react";

// `getUploadUrl` calls your backend, which returns `{ url, key }` from `@devultur/server`.
async function getUploadUrl(file: File) {
  const response = await fetch("/api/upload-url", {
    method: "POST",
    body: JSON.stringify({ filename: file.name, contentType: file.type }),
  });
  return response.json() as Promise<{ url: string; key: string }>;
}

export function Lesson({ playlistUrl, viewerToken }: { playlistUrl: string; viewerToken: string }) {
  return (
    <>
      <UploadZone onUploadUrl={getUploadUrl} onComplete={({ key }) => console.log("uploaded", key)} />
      <VideoPlayer src={playlistUrl} token={viewerToken} />
    </>
  );
}

Playback metrics

<VideoPlayer> sends playback quality metrics by default: startup time, rebuffering, errors, bitrate and watch time, in small beacons to POST /v1/metrics/playback on the host that serves the video (Devultur delivery URLs only). They're anonymous: a random id per view, the media key and counters. No cookies, no local storage and no user id. The self-host Worker discards them unless a plugin records them.

Turn them off with metrics={false}:

<VideoPlayer src={playlistUrl} token={viewerToken} metrics={false} />

Every field and when it's sent: docs/guides/video-player.md#playback-metrics, also shipped with the package as node_modules/@devultur/react/docs/guides/video-player.md.

Labels

<VideoPlayer labels={…}> replaces any of the player's strings (VideoPlayerLabels); the rest stay English. @devultur/convex/locales/es and locales/es-formal export Spanish ones as videoPlayerLabels.

Documentation

Components, hooks and guides: github.com/devultur/devultur/tree/main/docs. The video player guide ships with the package, for the installed version: node_modules/@devultur/react/docs/guides/video-player.md.

License

MIT

版本与发布记录

@devultur/react 共发布 99 个版本,首次发布于 2026/10/19;过去 12 个月发布了 99 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.6.1latest2026/11/048 天前
1.6.02026/11/048 天前
1.5.22026/10/2419 天前
1.5.12026/10/2319 天前
1.5.02026/10/2319 天前
1.4.32026/10/2319 天前

关于 @devultur/react 的常见问题

@devultur/react 是什么?

React components and hooks for Devultur media: HLS video player, uploads with progress, image cropper and captions

如何安装 @devultur/react?

在项目目录运行 npm install @devultur/react,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(>=19.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@devultur/react 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@devultur/react 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@devultur/react 可以商用吗?

@devultur/react 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@devultur/react 的下载量有多少?

根据 npm 官方下载统计,@devultur/react 在 2026/10/12 – 2026/11/10 这 30 天内被下载 3,792 次,日均约 126 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@devultur/react 还在维护吗?

最新版本 1.6.1 发布于 2026/11/04(8 天前);至今共发布 99 个版本,其中过去 12 个月发布了 99 个;首次发布于 2026/10/19。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。