LiveReacting
LiveReacting v1.0.2
Pre-recorded, 24/7 livestreams
Save this plugin to Following and return to review observed changes. Follow up to 10 plugins free.
Description
From the marketplace listing
Run a 24/7 live stream of pre-recorded videos, or live stream one recorded video at the time you choose, from ChatGPT. Your old videos, lessons, podcast episodes or lofi beats play as one continuous livestream, looped from a playlist in the order you choose. LiveReacting's servers do the streaming, so your computer can be off. With this plugin you build the stream from your LiveReacting video library, multistream it to YouTube, Facebook, Twitch or any other platform, schedule it to go live later, change the playlist while it is live, and check how it is running. Streams you built in LiveReacting with overlays, polls or trivia start from here too. You need a LiveReacting account that includes API access. Connect your channels once in LiveReacting, and the plugin uses them. Videos come from your library, a direct link, Google Drive, Dropbox, or videos you already published on your own YouTube channel.
Language: English · Automatically detected from descriptions.
Competitor profile
From the developer’s listing and package; capabilities are not independently tested. Package observed Nov 2, 2026.
Declared capabilities
Pre-recorded, 24/7 livestreams
Declared limitations
Specific limitations have not been established. Missing information does not mean unrestricted capabilities.
Cost & access
Pricing and account requirements have not been established from the available package declarations. Unknown pricing does not mean free access.
Starter prompt
Loop the videos from my LiveReacting library as a 24/7 live stream on my YouTube channel
Files & skills
File archives
Skill instructions
create-24-7-channel5.54 KB
---
name: create-24-7-channel
description: Build and start a 24/7 LiveReacting live stream that loops pre-recorded videos on YouTube, Facebook, Twitch or a custom RTMP destination. Use when the user wants a continuous, always-on or looping live stream from their videos, or wants to add videos to such a channel.
---
# Create a 24/7 channel
Use the new-channel steps below only when the user requests a new channel. For changes to
an existing channel, follow 'Changing the playlist later' instead. Do not create another
project or start a stream for a playlist edit. Respect requests to prepare a channel without
starting it. Ask before going on air unless the user already authorized that action.
## 1. Choose where it streams
1. Call `livereacting_list_destinations`.
2. If the destination the user wants is missing, stop. Tell the user to connect it once in the
LiveReacting Studio (studio.livereacting.com). Destinations cannot be added from here.
3. Confirm the destination by name with the user.
## 2. Get the videos ready
1. Call `livereacting_list_media` with `type: "video"` and find the videos the user named.
Follow `nextOffset` before treating a video as missing.
2. For a video that is not in the library yet:
- Google Drive, Dropbox, or one video from the user's own YouTube channel:
`livereacting_import_media`. YouTube playlist and channel links are refused; import one
video link at a time.
- A direct link to a video file: `livereacting_import_from_url`.
- Only one import runs at a time per account. Import the videos one after another.
3. Poll `livereacting_get_import_status` no more than every 10 seconds. `done` is not enough:
read `usable`. Stop and report an import error when `status` is `error`. Otherwise,
when `usable` is false, follow `nextStep`.
4. Read each selected file with `livereacting_get_media_file`, including files already in
the library. If it needs encoding, call `livereacting_encode_media` once. If it is
already queued or encoding, wait for that job instead.
5. Poll `livereacting_get_encode_status` no more than every 15 seconds. After each check,
read the selected file again with `livereacting_get_media_file`. While `issues.errors`
includes `encoding_in_progress`, keep waiting. A file missing from one queue page is
not proof that encoding finished or succeeded.
6. Once encoding is no longer active, require `issues.errors` to be empty. If errors
remain, stop and report them. Do not automatically encode the same file again.
7. Every video must pass this file-level check before building or changing a playlist.
## 3. Build the channel
1. Call `livereacting_create_project` with the destination ids, `duration: { manual: true }` and
`autoSynch: true`. A project without a duration stops after one hour.
2. Call `livereacting_create_scene_with_playlist` with the video file ids in the order the user
wants. The playlist loops by default.
3. Call `livereacting_validate_destinations` for the chosen destinations. If one is not valid,
tell the user to reconnect it in the Studio before going live.
## 4. Go live
1. State the destinations and that the new stream is public. Obtain authorization to
start unless the user already gave it. Stop here for a prepare-only request.
2. Call `livereacting_start_stream` once. Never repeat it after a timeout: call
`livereacting_get_stream_status` instead. `PREPARING` or `LIVE` means it started.
3. Poll `livereacting_get_stream_status` no more than every 5 seconds for at most two
minutes. Stop polling when it reports `LIVE`, `OFFLINE`, an overall error, or a
destination error or completed destination. Report which destinations succeeded
and which failed; overall `LIVE` does not prove that every destination works.
4. If it still reports `PREPARING` after two minutes, report that it is still starting
and include the project and live ids for a later status check. Do not start again
or stop the stream automatically.
5. Share a destination watch link only when its `viewingUrl` is present. If a
destination reports `AUTH_ERROR`, the user must reconnect it in the Studio.
## Limits to tell the user up front
- A 24/7 stream needs a plan without a stream-length limit. Every plan stops the stream at its
maximum length, even with a manual duration.
- A Facebook-only stream stops after 8 hours. Add another destination for longer runs.
- The account allows 150 requests per minute across all tools. Do not poll faster than stated.
## Changing the playlist later
1. Find the existing project with `livereacting_list_projects`, following `nextOffset`
as needed. Use `livereacting_get_scenes` to find its playlist layer. If more than
one project or playlist matches, ask which one the user wants to change.
2. For added videos, follow section 2 to import and check them. Then return here; do
not run the new-channel build or start steps.
3. Read the whole playlist with `livereacting_get_layer`, using the existing `projectId`
and `layerId`. Follow `nextOffset` until it is null.
4. Tell the user before writing: replacing the playlist restarts playback from the
first video. Preserve the existing order and settings except for the requested edit.
5. Apply the change to the complete list and send it to `livereacting_set_playlist` with
the existing `projectId` and `layerId`. Sending only the new video deletes the others.
After a timeout, read the playlist instead of repeating the write.
6. Report whether the response says the edit reached the running stream. If it did not,
explain that the saved playlist changed; do not claim that viewers see the edit.
schedule-recorded-broadcast4.43 KB
---
name: schedule-recorded-broadcast
description: Schedule one pre-recorded video to go live on YouTube, Facebook, Twitch or a custom RTMP destination at a set date and time with LiveReacting, like a premiere or a webinar replay. Use when the user wants a recorded video to air live later, at a specific time.
---
# Schedule a recorded broadcast
Air one recorded video as a live stream at a time the user chooses. The stream starts and ends
by itself. Confirm the time with the user before scheduling anything.
## 1. Confirm the time
1. Get the date, the time and the user's time zone. If the time zone is unclear, ask.
2. Convert it to an ISO 8601 time in UTC.
3. The start must be at least 3 minutes and at most 28 days in the future. If it is not, ask
for another time.
4. Repeat the time back to the user in their time zone and in UTC.
## 2. Get the video ready
1. Call `livereacting_list_media` with `type: "video"` to find the video. Follow
`nextOffset` before treating it as missing.
2. If it is not in the library:
- Google Drive, Dropbox, or one video from the user's own YouTube channel:
`livereacting_import_media`.
- A direct link to a video file: `livereacting_import_from_url`.
3. Poll `livereacting_get_import_status` no more than every 10 seconds. Read `usable`, not only
`done`. Stop and report an import error when `status` is `error`. Otherwise, when
`usable` is false, follow `nextStep`.
4. Read the file with `livereacting_get_media_file`, including a file already in the
library. If it needs encoding, call `livereacting_encode_media` once. If it is
already queued or encoding, wait for that job instead.
5. Poll `livereacting_get_encode_status` no more than every 15 seconds. After each check,
read the selected file again with `livereacting_get_media_file`. While `issues.errors`
includes `encoding_in_progress`, keep waiting. A file missing from one queue page is
not proof that encoding finished or succeeded.
6. Once encoding is no longer active, require `issues.errors` to be empty. If errors
remain, stop and report them. Do not automatically encode the same file again.
7. Call `livereacting_get_media_file` with `includeMetadata: true` and note `durationSec`.
Require a positive duration; if it is missing, stop rather than inventing a length.
## 3. Build the broadcast
1. Call `livereacting_list_destinations` and confirm the destination with the user. If it is
missing, the user must connect it once in the LiveReacting Studio.
2. Call `livereacting_create_project` with the destination ids and a fixed duration:
`duration: { manual: false, planned: <durationSec rounded up, at least 30> }`. The stream then
ends when the video ends. Do not add extra time: the stream keeps running for the whole planned
duration, after the video has finished.
3. Call `livereacting_create_scene_with_playlist` with the one file id and `loop: false`, so the
video plays once.
## 4. Schedule it
1. Call `livereacting_get_project` with `includeScheduledLives: true`. If the project already has
a schedule, ask whether the user wants to replace it. Do not cancel it yet.
2. Recheck the requested start against the current UTC time. It must still be at least
3 minutes and at most 28 days ahead. Preparation may have taken several minutes. If it is
outside that range, stop and ask for another time. Never move it silently.
3. If an existing schedule needs replacement and the user authorized it, call
`livereacting_cancel_schedules`. Recheck the time range again after cancellation.
If the time is now outside the range, stop and ask for another time before scheduling.
4. Immediately after the time check, call `livereacting_schedule_stream` with the created
`projectId` and `dates: [<the UTC time>]`. If it rejects the date as too soon, ask for another
time instead of retrying the same date or choosing a new time yourself.
5. After a successful response, report the confirmed start time in the user's time zone and
in UTC, the length, and the destination. Say that LiveReacting starts and stops it by itself,
so the user's computer can be off.
## Good to know
- Do not call `livereacting_start_stream` on a scheduled project: it returns the existing
schedule and starts nothing.
- To change the time, cancel the schedule with `livereacting_cancel_schedules`, then schedule
again.
- Title and description changes made later with `livereacting_update_project` also update the
scheduled broadcast on the platform.
Package details
Publisher declarations from the archived package. These are separate from our research and the live service's terms.
- Package author
- LiveReacting
Package observed Nov 2, 2026.
Technical details
- First seen
- Oct 29, 2026 · 18:00 UTC
- Last seen
- Nov 3, 2026 · 18:00 UTC
- Collection status
- Collected
plugin_asdk_app_6abbfaf2da708191bcbf683951ca32ff
Download plugin data (JSON)