mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-06-14 20:21:23 +08:00
174e31b3fc
Translated 85 skill sub-reference files to achieve full parity with the English source: - skills/angular-developer/references/ — 35 files (all references) - skills/remotion-video-creation/rules/ — 28 files (all rules) - skills/tinystruct-patterns/references/ — 5 files - skills/openclaw-persona-forge/references/ — 6 files - skills/skill-comply/prompts/ — 3 files - skills/lead-intelligence/agents/ — 4 files - skills/brand-voice/references/ — 1 file - skills/frontend-slides/ — 2 files - hooks/memory-persistence/README.md — 1 file English source parity: 0 missing files (excluding rules/zh/, internal docs, and experimental examples absent from zh-CN)
1.5 KiB
1.5 KiB
name, description, metadata
| name | description | metadata | ||
|---|---|---|---|---|
| get-video-duration | Mediabunnyを使ってビデオファイルの長さを秒単位で取得する |
|
Mediabunnyを使ったビデオ長さの取得
Mediabunnyはビデオファイルの長さを取得できます。ブラウザ、Node.js、Bun環境で動作します。
ビデオの長さを取得する
import { Input, ALL_FORMATS, UrlSource } from "mediabunny";
export const getVideoDuration = async (src: string) => {
const input = new Input({
formats: ALL_FORMATS,
source: new UrlSource(src, {
getRetryDelay: () => null,
}),
});
const durationInSeconds = await input.computeDuration();
return durationInSeconds;
};
使用例
const duration = await getVideoDuration("https://remotion.media/video.mp4");
console.log(duration); // 例: 10.5 (秒)
ローカルファイルで使用する
ローカルファイルの場合、UrlSource の代わりに FileSource を使用します:
import { Input, ALL_FORMATS, FileSource } from "mediabunny";
const input = new Input({
formats: ALL_FORMATS,
source: new FileSource(file), // inputまたはドラッグ&ドロップのFileオブジェクト
});
const durationInSeconds = await input.computeDuration();
RemotionのstaticFileと組み合わせて使用する
import { staticFile } from "remotion";
const duration = await getVideoDuration(staticFile("video.mp4"));