@vanillaskyai/video 0.4.0 → 0.4.1
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/CHANGELOG.md +6 -0
- package/README.md +3 -3
- package/dist/react.d.ts +1 -1
- package/dist/react.js +1 -1
- package/docs/getting-started.md +2 -2
- package/docs/integrate-nextjs.md +2 -2
- package/docs/live-channels.md +5 -2
- package/docs/media-and-audio.md +7 -0
- package/examples/nextjs-quickstart/package.json +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,12 @@ VanillaSky follows semantic versioning. This changelog begins with the 0.1 beta.
|
|
|
4
4
|
|
|
5
5
|
## Unreleased
|
|
6
6
|
|
|
7
|
+
## 0.4.1
|
|
8
|
+
|
|
9
|
+
- Keeps soundtrack audio continuous when a saved `VideoPlayer` uses `loop`.
|
|
10
|
+
A track shorter than the visual timeline now repeats as soon as it ends,
|
|
11
|
+
instead of leaving silence until the video itself wraps.
|
|
12
|
+
|
|
7
13
|
## 0.4.0
|
|
8
14
|
|
|
9
15
|
- Adds `loop` to `VideoPlayer` for saved videos. A completed video previously
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Give your AI a video output
|
|
2
2
|
|
|
3
|
-

|
|
4
4
|
|
|
5
5
|
**VanillaSky is the open-source video response layer.** Turn text, structured
|
|
6
6
|
data, and live application context into personalized video responses that start
|
|
@@ -17,7 +17,7 @@ the planning prompt, trusted templates, validation, streaming, and player.
|
|
|
17
17
|
For humans:
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
|
-
npm install @vanillaskyai/video@0.4.
|
|
20
|
+
npm install @vanillaskyai/video@0.4.1 ai @ai-sdk/openai
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
For coding agents:
|
|
@@ -106,7 +106,7 @@ shows each complete, validated scene as soon as it is ready and returns a
|
|
|
106
106
|
deterministic `Video` object when generation finishes.
|
|
107
107
|
|
|
108
108
|
A copy-and-run app is in
|
|
109
|
-
[`examples/nextjs-quickstart`](https://github.com/VanillaSkyAi/video/tree/v0.4.
|
|
109
|
+
[`examples/nextjs-quickstart`](https://github.com/VanillaSkyAi/video/tree/v0.4.1/examples/nextjs-quickstart).
|
|
110
110
|
|
|
111
111
|
## Shape the response
|
|
112
112
|
|
package/dist/react.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ interface VideoPlayerSharedProps {
|
|
|
22
22
|
style?: CSSProperties;
|
|
23
23
|
/** Accessible name for the player region. */
|
|
24
24
|
ariaLabel?: string;
|
|
25
|
-
/**
|
|
25
|
+
/** Repeat the saved video and its soundtrack instead of showing the replay affordance. */
|
|
26
26
|
loop?: boolean;
|
|
27
27
|
onComplete?: (video: Video) => void;
|
|
28
28
|
onError?: (error: Error) => void;
|
package/dist/react.js
CHANGED
|
@@ -733,7 +733,7 @@ function VideoPlayerRuntime({
|
|
|
733
733
|
autoPlay: isPlaying,
|
|
734
734
|
muted: isMuted,
|
|
735
735
|
preload: "auto",
|
|
736
|
-
loop: state.status === "streaming" || introPlaying
|
|
736
|
+
loop: loop || state.status === "streaming" || introPlaying
|
|
737
737
|
},
|
|
738
738
|
config.audio.audioUrl
|
|
739
739
|
) : null,
|
package/docs/getting-started.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
Install VanillaSky:
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
npm install @vanillaskyai/video@0.4.
|
|
8
|
+
npm install @vanillaskyai/video@0.4.1 ai @ai-sdk/openai
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
Set your provider key in `.env.local` (never commit it):
|
|
@@ -50,7 +50,7 @@ sets its marker only for `next dev`, and it accepts only localhost. Every
|
|
|
50
50
|
production request is denied. Replace it with your real session validation
|
|
51
51
|
before deploying. For literal files and commands,
|
|
52
52
|
use the tested
|
|
53
|
-
[`examples/nextjs-quickstart` directory](https://github.com/VanillaSkyAi/video/tree/v0.4.
|
|
53
|
+
[`examples/nextjs-quickstart` directory](https://github.com/VanillaSkyAi/video/tree/v0.4.1/examples/nextjs-quickstart).
|
|
54
54
|
|
|
55
55
|
`model` can come from any AI SDK provider, registry, gateway, compatible API,
|
|
56
56
|
or custom implementation. The application can choose a cheaper or faster model
|
package/docs/integrate-nextjs.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
Install VanillaSky and one AI SDK provider:
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
npm install @vanillaskyai/video@0.4.
|
|
8
|
+
npm install @vanillaskyai/video@0.4.1 ai @ai-sdk/openai
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
Create an ignored `.env.local`:
|
|
@@ -74,7 +74,7 @@ requests; replace it with your application's session validation before
|
|
|
74
74
|
deploying.
|
|
75
75
|
|
|
76
76
|
The copy-and-run app is in the
|
|
77
|
-
[`examples/nextjs-quickstart` directory](https://github.com/VanillaSkyAi/video/tree/v0.4.
|
|
77
|
+
[`examples/nextjs-quickstart` directory](https://github.com/VanillaSkyAi/video/tree/v0.4.1/examples/nextjs-quickstart).
|
|
78
78
|
|
|
79
79
|
For another LLM, replace `openai(...)` with the matching AI SDK model. The route
|
|
80
80
|
shape and React code stay the same. See [Provider integration](provider-integration.md)
|
package/docs/live-channels.md
CHANGED
|
@@ -33,7 +33,9 @@ The job owns the data and the mapping. The player owns nothing but playback.
|
|
|
33
33
|
## Play without stopping
|
|
34
34
|
|
|
35
35
|
Pass `loop` alongside a saved video. The player restarts from the beginning
|
|
36
|
-
instead of showing its replay affordance
|
|
36
|
+
instead of showing its replay affordance and loops its soundtrack continuously.
|
|
37
|
+
A track shorter than the channel repeats as soon as it ends; when the visual
|
|
38
|
+
timeline wraps, the soundtrack restarts from the beginning with it.
|
|
37
39
|
|
|
38
40
|
<!-- verify:live-channel-example:start -->
|
|
39
41
|
```tsx
|
|
@@ -130,7 +132,8 @@ reading time will stretch its animation instead and give them none.
|
|
|
130
132
|
- **Never replace a good channel with a broken one.** Validate first, and on
|
|
131
133
|
failure leave the previous configuration in place.
|
|
132
134
|
- **Autoplay needs `playbackMode="muted-autoplay"`.** Browsers refuse unmuted
|
|
133
|
-
autoplay
|
|
135
|
+
autoplay. A channel can still carry a looping soundtrack: it starts muted and
|
|
136
|
+
becomes audible when a viewer uses the player's sound control.
|
|
134
137
|
- **Host your media.** Loops re-request assets over long sessions; serving them
|
|
135
138
|
from your own origin keeps a content policy simple and avoids depending on
|
|
136
139
|
someone else's CDN.
|
package/docs/media-and-audio.md
CHANGED
|
@@ -87,6 +87,13 @@ generated scene exists, and render it with `autoPlay` and `startMuted={false}`.
|
|
|
87
87
|
If the browser blocks the audible start, the player returns to the first frame
|
|
88
88
|
and exposes its sound-start control.
|
|
89
89
|
|
|
90
|
+
For a saved video rendered with `<VideoPlayer video={video} loop />`, the
|
|
91
|
+
soundtrack loops too. A track shorter than the visual timeline repeats without
|
|
92
|
+
a silent gap, and the player restarts it from the beginning when the visual
|
|
93
|
+
timeline wraps. This does not bypass browser autoplay policy: use muted autoplay
|
|
94
|
+
for unattended playback and let a viewer unmute, or start audible playback from
|
|
95
|
+
a user interaction.
|
|
96
|
+
|
|
90
97
|
## Media providers
|
|
91
98
|
|
|
92
99
|
VanillaSky is provider-independent. When `resolveMedia` is configured, the
|