@vocalstack/player 0.1.0-alpha.0 → 0.1.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -5
- package/dist/data/connect.d.ts +1 -0
- package/dist/data/context.d.ts +10 -4
- package/dist/data/lookup.d.ts +4 -0
- package/dist/index.d.ts +9 -3
- package/dist/index.js +2680 -2464
- package/dist/index.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/ui/EndCard.d.ts +2 -1
- package/dist/ui/SourceGate.d.ts +8 -0
- package/dist/ui/VocalStackPlayer.d.ts +23 -8
- package/dist/ui/core.d.ts +26 -7
- package/dist/ui/full.d.ts +5 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -21,14 +21,45 @@ export function Video() {
|
|
|
21
21
|
|
|
22
22
|
| Prop | Default | |
|
|
23
23
|
|---|---|---|
|
|
24
|
-
| `id` |
|
|
25
|
-
| `
|
|
24
|
+
| `id` | | A share code. Or, with `token`, a transcription id. |
|
|
25
|
+
| `src` | | A video or audio link (YouTube, Vimeo, an mp3 or any media URL) instead of `id`. If the visitor has already transcribed it with VocalStack, it plays. If not, they are asked whether to start transcribing it. With `token`, the link is looked up in that account instead. |
|
|
26
|
+
| `token` | | A browser token (or a function returning one) for a private transcription. Never pass an API key to a browser. |
|
|
26
27
|
| `mode` | `'video'` | `'video'` for the full player, `'transcript'` for the reading view with a player. |
|
|
27
|
-
| `layout` | `'embed'` | `'embed'` sizes to its container (16:9 for video)
|
|
28
|
-
| `
|
|
28
|
+
| `layout` | `'embed'` | `'embed'` sizes to its container (16:9 for video). `'page'` fills the page. |
|
|
29
|
+
| `settings` | | Settings you control. Changing a value updates the player. See below. |
|
|
30
|
+
| `initial` | | The same settings, applied once at the start. The viewer can change them afterwards. |
|
|
31
|
+
| `onSettingsChange` | | Called with all the settings whenever the viewer changes one. |
|
|
32
|
+
| `controls` | all on | `{ language, subtitles, audio, export, share, fullscreen, settings }`. Pass `false` to hide one. |
|
|
33
|
+
| `autoplay` | `true` | Starts muted where the browser requires it. |
|
|
34
|
+
| `startAt` | | Start time in seconds. |
|
|
29
35
|
| `endCard` | on | At the end of a video, offers to transcribe another link in the visitor's own VocalStack account. Pass `false` to turn it off. |
|
|
30
36
|
| `baseUrl` | `https://api.vocalstack.com` | |
|
|
31
|
-
| `onSource`, `onProgress`, `onError` |
|
|
37
|
+
| `onSource`, `onProgress`, `onError` | | Called with the loaded transcription, the transcription progress (0-100, `null` when done), and errors. |
|
|
38
|
+
|
|
39
|
+
### Settings
|
|
40
|
+
|
|
41
|
+
```ts
|
|
42
|
+
{
|
|
43
|
+
lang?: string | null; // translate into this language code; null = as spoken
|
|
44
|
+
subtitles?: boolean; // captions over the video
|
|
45
|
+
speakerLabels?: boolean; // who is speaking, before each line
|
|
46
|
+
wordHighlight?: boolean; // follow each word as it is spoken
|
|
47
|
+
translateAudio?: boolean; // hear the translation read aloud
|
|
48
|
+
voices?: 'cloned' | 'synthetic';
|
|
49
|
+
removeBackground?: boolean; // play only the speech
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
```tsx
|
|
54
|
+
<VocalStackPlayer
|
|
55
|
+
id="r4m4srrrhi24"
|
|
56
|
+
settings={{ lang: 'es', speakerLabels: true, voices: 'cloned' }}
|
|
57
|
+
controls={{ export: false, share: false }}
|
|
58
|
+
onSettingsChange={(s) => console.log(s)}
|
|
59
|
+
/>
|
|
60
|
+
|
|
61
|
+
<VocalStackPlayer src="https://www.youtube.com/watch?v=QWCLiPOgeuw" />
|
|
62
|
+
```
|
|
32
63
|
|
|
33
64
|
Theme it by overriding the CSS variables on `.vsp`, for example `--vsp-radius`, `--brand` and `--vs-font-sans`.
|
|
34
65
|
|
package/dist/data/connect.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export type PopupStatus = 'signing-in' | 'consent' | 'checking' | 'starting';
|
|
|
9
9
|
export declare function openPopup(appUrl: string | undefined, ask: {
|
|
10
10
|
url?: string;
|
|
11
11
|
transcription?: string;
|
|
12
|
+
ask?: boolean;
|
|
12
13
|
}, onStatus?: (s: PopupStatus) => void): Promise<Started | null>;
|
|
13
14
|
export declare function startFromEmbed(appUrl: string | undefined, url: string, onStatus?: (s: PopupStatus) => void): Promise<Started | null>;
|
|
14
15
|
export declare function refreshToken(appUrl: string | undefined, transcriptionId: string): Promise<Started | null>;
|
package/dist/data/context.d.ts
CHANGED
|
@@ -26,10 +26,14 @@ export interface PlayerSource {
|
|
|
26
26
|
sharedBy: string | null;
|
|
27
27
|
}
|
|
28
28
|
export declare function usePlayerApi(): PlayerApi;
|
|
29
|
-
export
|
|
30
|
-
value: PlayerApi;
|
|
29
|
+
export type PlayerApiProviderProps = {
|
|
31
30
|
children: ReactNode;
|
|
32
|
-
}
|
|
31
|
+
} & ({
|
|
32
|
+
value: PlayerApi;
|
|
33
|
+
} | (Partial<ApiOptions> & {
|
|
34
|
+
value?: undefined;
|
|
35
|
+
}));
|
|
36
|
+
export declare function PlayerApiProvider(props: PlayerApiProviderProps): import("react").JSX.Element;
|
|
33
37
|
export declare function isTranscriptionId(id: string): boolean;
|
|
34
38
|
export type TokenSource = string | (() => string | undefined | null | Promise<string | undefined | null>);
|
|
35
39
|
export interface Listen {
|
|
@@ -38,10 +42,12 @@ export interface Listen {
|
|
|
38
42
|
token: string;
|
|
39
43
|
}
|
|
40
44
|
export interface ApiOptions {
|
|
41
|
-
id
|
|
45
|
+
id?: string | null;
|
|
42
46
|
token?: TokenSource | null;
|
|
43
47
|
baseUrl?: string | null;
|
|
44
48
|
listen?: Listen | null;
|
|
49
|
+
listenerToken?: string | null;
|
|
50
|
+
client?: VocalStack | null;
|
|
45
51
|
}
|
|
46
52
|
export declare function useApi(o: ApiOptions): PlayerApi;
|
|
47
53
|
export declare function withMedia(api: PlayerApi, media: string | null): PlayerApi;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import './styles.css';
|
|
2
|
-
export { VocalStackPlayer, type VocalStackPlayerProps, type PlayerSettings } from './ui/VocalStackPlayer';
|
|
2
|
+
export { VocalStackPlayer, type VocalStackPlayerProps, type PlayerSettings, type PlayerControls } from './ui/VocalStackPlayer';
|
|
3
3
|
export type { EndCardOptions } from './ui/EndCard';
|
|
4
|
-
export type
|
|
4
|
+
export { PlayerApiProvider, usePlayerApi, useApi, type PlayerApi, type PlayerApiProviderProps, type ApiOptions, type PlayerSource, type TokenSource, type Listen } from './data/context';
|
|
5
5
|
export type { ErrorLike } from './data/errors';
|
|
6
|
-
export { setErrorReporter } from './core/audio';
|
|
6
|
+
export { setErrorReporter, type MediaCred } from './core/audio';
|
|
7
|
+
export { useTranscript } from './data/transcript';
|
|
8
|
+
export { useTxPlayer, useTxVoice, useDuck, useFlash, useYtLead, useFindPull, YtFollow, MuteButton, TxLines, TxFind, lineWords, spokenWordOf, pictureT, lineEnd, PAUSE_D, PLAY_D, NO_SEEK, PUB_SIDE, type TxPlayer, type YtLead, type VoiceSheetHooks, type VoiceSheetCtx, type NoCloneNote } from './ui/core';
|
|
9
|
+
export { Transport, ReplayScrub, ExportPanel, SummaryPanel, SpeakerCast, VoiceSheetBody, useSummaryIn, useViewportTranslation, useArchiveVoice, useVoiceCatalogue, type AvailableVoice, type CastMember, type SummaryState } from './ui/shared';
|
|
10
|
+
export { FullVideo, MiniPlayer, PanelSeek, browserFull, realFull, setFullTarget, type PlayerPos, type PlayerTransport, type VoicesBtn } from './ui/full';
|
|
11
|
+
export { useBackgroundBed, useSeparatedTrack, bedNote, trackPlan, REMOVE_BG_LABEL, REMOVE_BG_NOTE, type BedState, type TrackPlan, type Separated } from './core/background';
|
|
12
|
+
export { snapPosition, placePosition, type PlayPos } from './core/playPosition';
|