← LiveReactingCONTENT HISTORY

Update to LiveReacting

Snapshot Oct 29, 2026 · 19:09 UTC · version 1.0.2

Collection source: downloaded plugin package.

WHAT CHANGED

First saved snapshot

No earlier snapshot is available to establish a change.

Save LiveReacting and check future changes in Following.

Up to 10 plugins free · no card required.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "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.",
  "included_files": [],
  "name": "create-24-7-channel",
  "skill_md_contents": "---\nname: create-24-7-channel\ndescription: 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.\n---\n\n# Create a 24/7 channel\n\nUse the new-channel steps below only when the user requests a new channel. For changes to\nan existing channel, follow 'Changing the playlist later' instead. Do not create another\nproject or start a stream for a playlist edit. Respect requests to prepare a channel without\nstarting it. Ask before going on air unless the user already authorized that action.\n\n## 1. Choose where it streams\n\n1. Call `livereacting_list_destinations`.\n2. If the destination the user wants is missing, stop. Tell the user to connect it once in the\n   LiveReacting Studio (studio.livereacting.com). Destinations cannot be added from here.\n3. Confirm the destination by name with the user.\n\n## 2. Get the videos ready\n\n1. Call `livereacting_list_media` with `type: \"video\"` and find the videos the user named.\n   Follow `nextOffset` before treating a video as missing.\n2. For a video that is not in the library yet:\n   - Google Drive, Dropbox, or one video from the user's own YouTube channel:\n     `livereacting_import_media`. YouTube playlist and channel links are refused; import one\n     video link at a time.\n   - A direct link to a video file: `livereacting_import_from_url`.\n   - Only one import runs at a time per account. Import the videos one after another.\n3. Poll `livereacting_get_import_status` no more than every 10 seconds. `done` is not enough:\n   read `usable`. Stop and report an import error when `status` is `error`. Otherwise,\n   when `usable` is false, follow `nextStep`.\n4. Read each selected file with `livereacting_get_media_file`, including files already in\n   the library. If it needs encoding, call `livereacting_encode_media` once. If it is\n   already queued or encoding, wait for that job instead.\n5. Poll `livereacting_get_encode_status` no more than every 15 seconds. After each check,\n   read the selected file again with `livereacting_get_media_file`. While `issues.errors`\n   includes `encoding_in_progress`, keep waiting. A file missing from one queue page is\n   not proof that encoding finished or succeeded.\n6. Once encoding is no longer active, require `issues.errors` to be empty. If errors\n   remain, stop and report them. Do not automatically encode the same file again.\n7. Every video must pass this file-level check before building or changing a playlist.\n\n## 3. Build the channel\n\n1. Call `livereacting_create_project` with the destination ids, `duration: { manual: true }` and\n   `autoSynch: true`. A project without a duration stops after one hour.\n2. Call `livereacting_create_scene_with_playlist` with the video file ids in the order the user\n   wants. The playlist loops by default.\n3. Call `livereacting_validate_destinations` for the chosen destinations. If one is not valid,\n   tell the user to reconnect it in the Studio before going live.\n\n## 4. Go live\n\n1. State the destinations and that the new stream is public. Obtain authorization to\n   start unless the user already gave it. Stop here for a prepare-only request.\n2. Call `livereacting_start_stream` once. Never repeat it after a timeout: call\n   `livereacting_get_stream_status` instead. `PREPARING` or `LIVE` means it started.\n3. Poll `livereacting_get_stream_status` no more than every 5 seconds for at most two\n   minutes. Stop polling when it reports `LIVE`, `OFFLINE`, an overall error, or a\n   destination error or completed destination. Report which destinations succeeded\n   and which failed; overall `LIVE` does not prove that every destination works.\n4. If it still reports `PREPARING` after two minutes, report that it is still starting\n   and include the project and live ids for a later status check. Do not start again\n   or stop the stream automatically.\n5. Share a destination watch link only when its `viewingUrl` is present. If a\n   destination reports `AUTH_ERROR`, the user must reconnect it in the Studio.\n\n## Limits to tell the user up front\n\n- A 24/7 stream needs a plan without a stream-length limit. Every plan stops the stream at its\n  maximum length, even with a manual duration.\n- A Facebook-only stream stops after 8 hours. Add another destination for longer runs.\n- The account allows 150 requests per minute across all tools. Do not poll faster than stated.\n\n## Changing the playlist later\n\n1. Find the existing project with `livereacting_list_projects`, following `nextOffset`\n   as needed. Use `livereacting_get_scenes` to find its playlist layer. If more than\n   one project or playlist matches, ask which one the user wants to change.\n2. For added videos, follow section 2 to import and check them. Then return here; do\n   not run the new-channel build or start steps.\n3. Read the whole playlist with `livereacting_get_layer`, using the existing `projectId`\n   and `layerId`. Follow `nextOffset` until it is null.\n4. Tell the user before writing: replacing the playlist restarts playback from the\n   first video. Preserve the existing order and settings except for the requested edit.\n5. Apply the change to the complete list and send it to `livereacting_set_playlist` with\n   the existing `projectId` and `layerId`. Sending only the new video deletes the others.\n   After a timeout, read the playlist instead of repeating the write.\n6. Report whether the response says the edit reached the running stream. If it did not,\n   explain that the saved playlist changed; do not claim that viewers see the edit.\n"
}

SHA-256 of public snapshot: fa6451c1bf455256081706df8e82220cf0be82e45a00c05edc3c82ee418c47d3