diff --git a/.gitignore b/.gitignore index 487b51b9..e7e1da61 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,67 @@ node_modules # IDE .vscode *.code-workspace + +# V2 +# ------------------------------------ +# Node +# ------------------------------------ +# node_modules/ +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +package-lock.json +yarn.lock +pnpm-lock.yaml + +# Optional: ignore local `.env` files +.env +.env.*local + +# ------------------------------------ +# Logs +# ------------------------------------ +logs/ +*.log +*.log.* +debug.log + +# ------------------------------------ +# OS / Editor files +# ------------------------------------ +# .DS_Store +Thumbs.db +.idea/ + +# VSCode — allow settings.json, ignore rest +# .vscode/* +# !.vscode/settings.json +# !.vscode/extensions.json + +# ------------------------------------ +# Mintlify / Build Stuff +# ------------------------------------ +.mintlify/ +.mintlify-cache/ +.out/ +dist/ +build/ + +# ------------------------------------ +# Temporary files +# ------------------------------------ +*.tmp +*.temp +*.swp +*.swo + +# ------------------------------------ +# TypeScript +# ------------------------------------ +*.tsbuildinfo + +# ------------------------------------ +# External docs (fetched at build time) +# ------------------------------------ +snippets/external/ diff --git a/README.md b/README.md index 3238db29..6d2b0d8b 100644 --- a/README.md +++ b/README.md @@ -12,5 +12,5 @@ npm i -g mintlify Run the following command at the root of your documentation (where mint.json is) ```bash -mintlify dev +mint dev ``` diff --git a/README_V2.md b/README_V2.md new file mode 100644 index 00000000..7c97fd20 --- /dev/null +++ b/README_V2.md @@ -0,0 +1,45 @@ +V2 Docs are being ported in to this repo. + +I will work on a branch called docs-v2 and then merge into main when fully ready +and deprecate the old docs into a v1 on the new docs. + +TODO: + +- Remove/Change Navbar in V2 (Global Setting) +- Add redirects (Global Setting) +- Add Analytics (Global Setting) +- Add Footer (Global Setting) +- Add SEO (Global Setting) +- Add Custom Domain (Global Setting) +- Add Custom 404 (Global Setting)? + +Notes from stakeholders/feedback + +- “The gateways section should definitely include… technical documentation on + how to run and operate a gateway node because that’s missing.” +- + +Notes on layout + +- Consider moving resource and help anchors to right tabs on menu (styling). + Would prefer navbar buttons - but external links only there :/ + +- Consider having an Index & FAQ/Glossary page in each tab - Possibly use AI to + make it per page (llm intiially then n8n integration keeps it updated) + +About: + +- Protocol: Called Protocol Actors or Network Participants? Both? +- I am not convinced about the side bar sections. + +Removing: "v2/pages/01_about/livepeer-protocol/livepeer-actors/gateways", +"v2/pages/01_about/livepeer-protocol/livepeer-actors/orchestrators", +"v2/pages/01_about/livepeer-protocol/livepeer-actors/delegators", +"v2/pages/01_about/livepeer-protocol/livepeer-actors/end-users" + +Community + +- move HUBS to appropriate tabs +- Hate the naming of all connect items. + +Developer diff --git a/docs.json b/docs.json new file mode 100644 index 00000000..a32a043a --- /dev/null +++ b/docs.json @@ -0,0 +1,3178 @@ +{ + "$schema": "https://mintlify.com/docs.json", + "theme": "palm", + "name": "Livepeer Docs", + "colors": { + "primary": "#18794E", + "light": "#2b9a66", + "dark": "#18794E" + }, + "favicon": "/favicon.png", + "navigation": { + "versions": [ + { + "version": "v2", + "default": true, + "languages": [ + { + "language": "en", + "tabs": [ + { + "tab": "Internal Hub", + "hidden": true, + "icon": "info-circle", + "anchors": [ + { + "anchor": "Internal Hub", + "icon": "info-circle", + "groups": [ + { + "group": "Internal Hub", + "pages": [ + "v2/pages/09_internal/internal-overview", + "v2/pages/09_internal/docs-status", + "v2/pages/09_internal/strategic-alignment", + "v2/pages/09_internal/docs-philosophy", + "v2/pages/09_internal/definitions", + "v2/pages/09_internal/personas", + "v2/pages/09_internal/ecosystem", + "v2/pages/09_internal/references" + ] + } + ] + } + ] + }, + { + "tab": "Home", + "icon": "house-heart", + "anchors": [ + { + "anchor": "Home", + "icon": "house-heart", + "groups": [ + { + "group": "Home", + "icon": "house-heart", + "pages": [ + "v2/pages/00_home/Landing", + "v2/pages/00_home/home/livepeer-tl-dr", + "v2/pages/00_home/home/trending-at-livepeer" + ] + }, + { + "group": "Livepeer Showcase", + "icon": "clapperboard-play", + "pages": [ + "v2/pages/00_home/project-showcase/projects-built-on-livepeer", + "v2/pages/00_home/project-showcase/livepeer-applications", + "v2/pages/00_home/project-showcase/industry-verticals" + ] + }, + { + "group": "Get Started", + "icon": "arrow-right-to-bracket", + "pages": [ + "v2/pages/00_home/get-started/use-livepeer", + "v2/pages/00_home/get-started/stream-video-quickstart", + "v2/pages/00_home/get-started/livepeer-ai-quickstart", + "v2/pages/00_home/get-started/build-on-livepeer" + ] + } + ] + }, + { + "anchor": "Reference HUB", + "icon": "books", + "pages": ["v2/pages/07_resources/redirect"] + }, + { + "anchor": "Help Center", + "icon": "comments-question-check", + "pages": ["v2/pages/08_help/redirect"] + }, + { + "anchor": " ", + "icon": "-", + "href": " " + } + ] + }, + { + "tab": "About", + "icon": "graduation-cap", + "anchors": [ + { + "anchor": "About Livepeer", + "icon": "graduation-cap", + "groups": [ + { + "group": "About Livepeer", + "icon": "graduation-cap", + "pages": [ + "v2/pages/01_about/about-livepeer/livepeer-overview", + "v2/pages/01_about/about-livepeer/why-livepeer", + "v2/pages/01_about/about-livepeer/livepeer-evolution", + "v2/pages/01_about/about-livepeer/livepeer-ecosystem" + ] + }, + { + "group": "Livepeer Protocol", + "icon": "cube", + "pages": [ + "v2/pages/01_about/livepeer-protocol/protocol-overview", + "v2/pages/01_about/livepeer-protocol/livepeer-whitepaper", + "v2/pages/01_about/livepeer-protocol/technical-overview" + ] + }, + { + "group": "Livepeer Network", + "icon": "circle-nodes", + "pages": [ + "v2/pages/01_about/livepeer-network/actor-overview", + "v2/pages/01_about/livepeer-network/livepeer-token-economics", + "v2/pages/01_about/livepeer-network/livepeer-governance" + ] + } + ] + }, + { + "anchor": "Reference HUB", + "icon": "books", + "pages": ["v2/pages/07_resources/redirect"] + }, + { + "anchor": "Help Center", + "icon": "comments-question-check", + "pages": ["v2/pages/08_help/redirect"] + }, + { + "anchor": " ", + "icon": "-", + "href": " " + } + ] + }, + { + "tab": "Community", + "icon": "people-group", + "anchors": [ + { + "anchor": "Community", + "icon": "people-group", + "groups": [ + { + "group": "Livepeer Community", + "icon": "people-group", + "pages": [ + "v2/pages/02_community/livepeer-community/livepeer-community-hub", + "v2/pages/02_community/livepeer-community/livepeer-Latest-Topics", + "v2/pages/02_community/livepeer-community/community-guidelines" + ] + }, + { + "group": "Livepeer Connect", + "icon": "hashtag", + "pages": [ + "v2/pages/02_community/livepeer-connect/news-and-socials", + "v2/pages/02_community/livepeer-connect/events-and-community-streams", + "v2/pages/02_community/livepeer-connect/forums-and-discussions" + ] + }, + { + "group": "Livepeer Contribute", + "icon": "door-open", + "pages": [ + "v2/pages/02_community/livepeer-contribute/contribute", + "v2/pages/02_community/livepeer-contribute/opportunities", + "v2/pages/02_community/livepeer-contribute/build-livepeer" + ] + }, + { + "group": "[MOVE HERE] Help Center", + "icon": "comments-question-check", + "hidden": true, + "pages": [ + "v2/pages/02_community/livepeer-community/trending-test" + ] + }, + { + "group": "[TO DELETE] Tests", + "pages": [ + "v2/pages/02_community/livepeer-community/trending-test" + ] + } + ] + }, + { + "anchor": "Reference HUB", + "icon": "books", + "pages": ["v2/pages/07_resources/redirect"] + }, + { + "anchor": "Help Center", + "icon": "comments-question-check", + "pages": ["v2/pages/08_help/redirect"] + }, + { + "anchor": " ", + "icon": "-", + "href": " " + } + ] + }, + { + "tab": "Developers", + "icon": "display-code", + "anchors": [ + { + "anchor": "Developers", + "icon": "display-code", + "groups": [ + { + "group": "Building on Livepeer", + "icon": "code", + "pages": [ + "v2/pages/03_developers/building-on-livepeer/developer-guide" + ] + }, + { + "group": "Quickstart", + "icon": "fast-forward", + "pages": [ + { + "group": "Real-time Video", + "pages": [ + "v2/pages/03_developers/building-on-livepeer/quick-starts/livepeer-ai", + "v2/pages/03_developers/livepeer-real-time-video/video-streaming-on-livepeer/README.mdx" + ] + }, + { + "group": "AI Pipelines", + "pages": [ + "v2/pages/03_developers/building-on-livepeer/quick-starts/video-streaming", + "v2/pages/03_developers/building-on-livepeer/quick-starts/livepeer-ai" + ] + } + ] + }, + { + "group": "Developer Platforms", + "icon": "gear-code", + "pages": [ + "v2/pages/03_developers/developer-platforms/builder-hub", + { + "group": "Daydream", + "pages": [ + "v2/pages/03_developers/developer-platforms/daydream/daydream" + ] + }, + { + "group": "Livepeer Studio", + "pages": [ + "v2/pages/03_developers/developer-platforms/livepeer-studio/livepeer-studio" + ] + }, + { + "group": "Frameworks", + "pages": [ + "v2/pages/03_developers/developer-platforms/frameworks/frameworks" + ] + }, + { + "group": "Streamplace", + "pages": [ + "v2/pages/03_developers/developer-platforms/streamplace/streamplace" + ] + }, + { + "group": "All Ecosystem Products", + "pages": [ + "v2/pages/03_developers/developer-platforms/all-ecosystem/ecosystem-products/ecosystem-products" + ] + } + ] + }, + { + "group": "Developer Tools", + "icon": "tools", + "pages": [ + "v2/pages/03_developers/developer-tools/tooling-hub", + "v2/pages/03_developers/developer-tools/livepeer-explorer", + "v2/pages/03_developers/developer-tools/livepeer-cloud", + "v2/pages/03_developers/developer-tools/dashboards" + ] + }, + { + "group": "Guides & Tutorials", + "icon": "laptop-file", + "pages": [ + "v2/pages/03_developers/guides-and-resources/developer-guides", + "v2/pages/03_developers/guides-and-resources/resources", + "v2/pages/03_developers/guides-and-resources/developer-help", + "v2/pages/03_developers/guides-and-resources/contribution-guide" + ] + }, + { + "group": "Builder Opportunities", + "icon": "lightbulb", + "pages": [ + "v2/pages/03_developers/builder-opportunities/dev-programs", + "v2/pages/03_developers/builder-opportunities/livepeer-rfps" + ] + }, + { + "group": "Technical References", + "icon": "books", + "pages": [ + { + "group": "SDKs & APIs", + "pages": [ + "v2/pages/03_developers/technical-references-sdks.-and-apis/sdks", + "v2/pages/03_developers/technical-references-sdks.-and-apis/apis" + ] + }, + "v2/pages/03_developers/technical-references/awesome-livepeer", + "v2/pages/03_developers/technical-references/wiki", + "v2/pages/03_developers/technical-references/deepwiki" + ] + }, + { + "group": "Changelog & Migrations", + "icon": "swap", + "pages": [ + "v2/pages/07_resources/changelog/changelog", + "v2/pages/07_resources/changelog/migration-guides" + ] + } + ] + }, + { + "anchor": "Reference HUB", + "icon": "books", + "pages": ["v2/pages/07_resources/redirect"] + }, + { + "anchor": "Help Center", + "icon": "comments-question-check", + "pages": ["v2/pages/08_help/redirect"] + }, + { + "anchor": " ", + "icon": "-", + "href": " " + } + ] + }, + { + "tab": "Gateways", + "icon": "torii-gate", + "anchors": [ + { + "anchor": "Gateways", + "icon": "torii-gate", + "groups": [ + { + "group": "About Gateways", + "icon": "graduation-cap", + "pages": [ + "v2/pages/04_gateways/about-gateways/gateway-explainer", + "v2/pages/04_gateways/about-gateways/gateway-functions", + "v2/pages/04_gateways/about-gateways/gateway-architecture", + "v2/pages/04_gateways/about-gateways/gateways-vs-orchestrators" + ] + }, + { + "group": "Gateway Services & Providers", + "icon": "wand-magic-sparkles", + "pages": [ + "v2/pages/04_gateways/using-gateways/choosing-a-gateway", + { + "group": "Gateway Providers", + "pages": [ + "v2/pages/04_gateways/using-gateways/gateway-providers/index", + "v2/pages/04_gateways/using-gateways/gateway-providers/daydream-gateway", + "v2/pages/04_gateways/using-gateways/gateway-providers/livepeer-studio-gateway", + "v2/pages/04_gateways/using-gateways/gateway-providers/cloud-spe-gateway", + "v2/pages/04_gateways/using-gateways/gateway-providers/streamplace" + ] + } + ] + }, + { + "group": "Run Your Own Gateway", + "icon": "sign-posts-wrench", + "pages": [ + "v2/pages/04_gateways/run-a-gateway/run-a-gateway", + { + "group": "Requirements", + "pages": [ + "v2/pages/04_gateways/run-a-gateway/requirements/requirements" + ] + }, + { + "group": "Installation", + "pages": [ + "v2/pages/04_gateways/run-a-gateway/install/install-overview", + "v2/pages/04_gateways/run-a-gateway/install/docker-install", + "v2/pages/04_gateways/run-a-gateway/install/linux-install", + "v2/pages/04_gateways/run-a-gateway/install/windows-install", + "v2/pages/04_gateways/run-a-gateway/install/community-projects" + ] + }, + { + "group": "Configuration", + "pages": [ + "v2/pages/04_gateways/run-a-gateway/configure/configure-gateway" + ] + }, + { + "group": "Publish Services", + "pages": [ + "v2/pages/04_gateways/run-a-gateway/publish/publish-offerings" + ] + }, + { + "group": "Monitor & Optimize", + "pages": [ + "v2/pages/04_gateways/run-a-gateway/monitor/monitor-and-optimize" + ] + } + ] + }, + { + "group": "Gateway Guides & Resources", + "icon": "laptop-file", + "pages": [ + { + "group": "Gateway Tools & Dashboards", + "pages": [ + "v2/pages/04_gateways/gateway-tools/explorer", + "v2/pages/04_gateways/gateway-tools/livepeer-tools" + ] + }, + { + "group": "Community Resources", + "pages": [ + "v2/pages/04_gateways/guides-references/community-guides", + "v2/pages/04_gateways/guides-references/community-projects" + ] + }, + { + "group": "Technical References", + "pages": [ + "v2/pages/04_gateways/guides-references/technical-architecture", + "v2/pages/04_gateways/guides-references/protocol-specifications" + ] + }, + "v2/pages/04_gateways/guides-references/FAQ" + ] + }, + { + "group": "[moved] Gateway Tools & Dashboards", + "pages": [ + "v2/pages/04_gateways/gateway-tools/explorer", + "v2/pages/04_gateways/gateway-tools/livepeer-tools" + ] + } + ] + } + ] + }, + { + "tab": "GPU Nodes", + "icon": "microchip", + "anchors": [ + { + "anchor": "GPU Nodes", + "icon": "microchip", + "groups": [ + { + "group": "About Orchestrators (GPU Nodes)", + "icon": "graduation-cap", + "pages": [ + "v2/pages/05_orchestrators/about-orchestrators/overview", + { + "group": "Orchestrator Functions", + "pages": [ + "v2/pages/05_orchestrators/about-orchestrators/orchestrator-functions/transcoding", + "v2/pages/05_orchestrators/about-orchestrators/orchestrator-functions/ai-pipelines" + ] + } + ] + }, + { + "group": "Set up an Orchestrator", + "icon": "gear-code", + "pages": [ + "v2/pages/05_orchestrators/setting-up-an-orchestrator/hardware-requirements", + "v2/pages/05_orchestrators/setting-up-an-orchestrator/orchestrator-stats", + { + "group": "Setting Up An Orchestrator", + "pages": [ + "v2/pages/05_orchestrators/setting-up-an-orchestrator/setting-up-an-orchestrator/quickstart-add-your-gpu-to-livepeer", + "v2/pages/05_orchestrators/setting-up-an-orchestrator/join-a-pool", + "v2/pages/05_orchestrators/setting-up-an-orchestrator/setting-up-an-orchestrator/data-centres-and-large-scale-hardware-providers" + ] + } + ] + }, + { + "group": "Orchestrator Tooling", + "icon": "tools", + "pages": [ + "v2/pages/05_orchestrators/orchestrator-tooling/orchestrator-tools", + "v2/pages/05_orchestrators/orchestrator-tooling/orchestrator-dashboards" + ] + }, + { + "group": "Orchestrator Guides & Resources", + "icon": "laptop-file", + "pages": [ + "v2/pages/05_orchestrators/orchestrator-guides-and-references/orchestrator-guides-and-references", + "v2/pages/05_orchestrators/orchestrator-guides-and-references/orchestrator-resources", + "v2/pages/05_orchestrators/orchestrator-guides-and-references/orchestrator-community-and-help" + ] + } + ] + }, + { + "anchor": "Reference HUB", + "icon": "books", + "pages": ["v2/pages/07_resources/redirect"] + }, + { + "anchor": "Help Center", + "icon": "comments-question-check", + "pages": ["v2/pages/08_help/redirect"] + }, + { + "anchor": " ", + "icon": "-", + "href": " " + } + ] + }, + { + "tab": "Delegators & LPT", + "icon": "hand-holding-dollar", + "anchors": [ + { + "anchor": "Delegators & LPT", + "icon": "hand-holding-dollar", + "groups": [ + { + "group": "About LPT", + "icon": "graduation-cap", + "pages": [ + "v2/pages/06_delegators/about-lpt-livepeer-token/overview", + "v2/pages/06_delegators/about-lpt-livepeer-token/why-have-a-token", + "v2/pages/06_delegators/about-lpt-livepeer-token/livepeer-token-economics", + "v2/pages/06_delegators/about-lpt-livepeer-token/how-to-get-lpt", + "v2/pages/06_delegators/about-lpt-livepeer-token/delegators" + ] + }, + { + "group": "Delegating LPT", + "icon": "money-bill-transfer", + "pages": [ + "v2/pages/06_delegators/delegating-lpt/overview", + "v2/pages/06_delegators/delegating-lpt/delegation-economics", + "v2/pages/06_delegators/delegating-lpt/how-to-delegate-lpt" + ] + }, + { + "group": "Livepeer Governance", + "icon": "box-ballot", + "pages": [ + "v2/pages/06_delegators/livepeer-governance/overview", + "v2/pages/06_delegators/livepeer-governance/livepeer-governance", + "v2/pages/06_delegators/livepeer-governance/livepeer-treasury" + ] + }, + { "group": "Livepeer Treasury", "pages": [] }, + { + "group": "Guides & Resources", + "icon": "books", + "pages": [ + "v2/pages/06_delegators/token-resources/lpt-exchanges" + ] + } + ] + }, + { + "anchor": "Reference HUB", + "icon": "books", + "pages": ["v2/pages/07_resources/redirect"] + }, + { + "anchor": "Help Center", + "icon": "comments-question-check", + "pages": ["v2/pages/08_help/redirect"] + }, + { + "anchor": " ", + "icon": "-", + "href": " " + } + ] + }, + { + "tab": "Reference HUB", + "hidden": false, + "icon": "books", + "anchors": [ + { + "anchor": "Reference & Help HUB", + "icon": "books", + "groups": [ + { + "group": "Home", + "icon": "house", + "pages": ["v2/pages/07_resources/resources_hub"] + }, + { + "group": "Documentation Guide", + "icon": "book-open", + "pages": [ + "v2/pages/07_resources/documentation-guide/documentation-overview", + "v2/pages/07_resources/documentation-guide/documentation-guide", + "v2/pages/07_resources/documentation-guide/docs-features-and-ai-integrations", + "v2/pages/07_resources/documentation-guide/contribute-to-the-docs" + ] + }, + { + "group": "Livepeer Concepts", + "icon": "graduation-cap", + "pages": [ + "v2/pages/07_resources/concepts/livepeer-core-concepts", + "v2/pages/07_resources/livepeer-glossary", + "v2/pages/07_resources/concepts/livepeer-actors" + ] + }, + { + "group": "Developer References", + "icon": "book", + "pages": ["v2/pages/07_resources/livepeer-glossary"] + }, + { + "group": "Gateway References", + "icon": "wand-magic-sparkles", + "pages": [ + "v2/pages/07_resources/ai-inference-on-livepeer/livepeer-ai/livepeer-ai-content-directory" + ] + }, + { + "group": "Orchestrator References", + "icon": "microchip", + "pages": ["v2/pages/07_resources/livepeer-glossary"] + }, + { + "group": "LPT & Delegator References", + "icon": "hand-holding-dollar", + "pages": ["v2/pages/07_resources/livepeer-glossary"] + }, + { + "group": "Community Resources", + "icon": "", + "pages": ["v2/pages/07_resources/livepeer-glossary"] + }, + { + "group": "Partner Resources", + "icon": "handshake", + "pages": ["v2/pages/07_resources/livepeer-glossary"] + }, + { + "group": "Help Center", + "icon": "comments-question-check", + "pages": ["v2/pages/07_resources/livepeer-glossary"] + }, + { + "group": "Technical References", + "icon": "code", + "pages": [ + { + "group": "Protocol References", + "pages": [] + } + ] + }, + { + "group": "Changelog", + "icon": "swap", + "pages": [ + "v2/pages/00_home/changelog/changelog", + "v2/pages/00_home/changelog/migration-guide" + ] + } + ] + }, + { + "anchor": "Help Center", + "icon": "comments-question-check", + "pages": ["v2/pages/08_help/redirect"] + }, + { + "anchor": " ", + "icon": "-", + "href": " " + } + ] + }, + { + "tab": "Help Center", + "hidden": true, + "icon": "comments-question-check", + "anchors": [ + { + "anchor": "Help Center", + "icon": "comments-question-check", + "groups": [ + { + "group": "Home", + "pages": ["v2/pages/08_help/README"] + }, + { "group": "Delegating LPT", "pages": [] }, + { "group": "Livepeer Governance", "pages": [] }, + { "group": "Livepeer Treasury", "pages": [] }, + { "group": "Token Resources", "pages": [] } + ] + }, + { + "anchor": "Reference HUB", + "icon": "books", + "pages": ["v2/pages/07_resources/redirect"] + }, + { + "anchor": " ", + "icon": "-", + "href": " " + } + ] + } + ] + } + ] + }, + { + "version": "v1", + "languages": [ + { + "language": "en", + "dropdowns": [ + { + "dropdown": "Developers", + "icon": "code", + "anchors": [ + { + "anchor": "Documentation", + "icon": "code", + "groups": [ + { + "group": "Getting Started", + "pages": [ + "v1/developers/introduction", + "v1/developers/quick-start", + "v1/developers/livepeer-studio-cli" + ] + }, + { + "group": "Guides", + "pages": [ + "v1/developers/guides/overview", + { + "group": "Assets", + "icon": "video", + "pages": [ + "v1/developers/guides/upload-video-asset", + "v1/developers/guides/playback-an-asset", + "v1/developers/guides/listen-to-asset-events", + "v1/developers/guides/encrypted-asset", + "v1/developers/guides/thumbnails-vod" + ] + }, + { + "group": "Livestream", + "icon": "camera", + "pages": [ + "v1/developers/guides/create-livestream", + "v1/developers/guides/playback-a-livestream", + "v1/developers/guides/stream-via-obs", + "v1/developers/guides/livestream-from-browser", + "v1/developers/guides/optimize-latency-of-a-livestream", + "v1/developers/guides/monitor-stream-health", + "v1/developers/guides/listen-to-stream-events", + "v1/developers/guides/multistream", + "v1/developers/guides/clip-a-livestream", + "v1/developers/guides/thumbnails-live" + ] + }, + { + "group": "Access control", + "icon": "lock", + "pages": [ + "v1/developers/guides/access-control-webhooks", + "v1/developers/guides/access-control-jwt" + ] + }, + { + "group": "Webhooks", + "icon": "bell", + "pages": [ + "v1/developers/guides/setup-and-listen-to-webhooks" + ] + }, + { + "group": "Transcode API", + "icon": "photo-film", + "pages": [ + "v1/developers/guides/transcode-video-storj", + "v1/developers/guides/transcode-video-w3s" + ] + }, + { + "group": "Viewership Metrics", + "icon": "chart-bar", + "pages": [ + "v1/developers/guides/get-engagement-analytics-via-api", + "v1/developers/guides/get-engagement-analytics-via-grafana", + "v1/developers/guides/get-engagement-analytics-via-timeplus" + ] + }, + { + "group": "Projects", + "icon": "folder-open", + "pages": ["v1/developers/guides/managing-projects"] + }, + { + "group": "Integrations", + "icon": "puzzle-piece", + "pages": [ + "v1/developers/tutorials/decentralized-app-with-fvm", + "v1/developers/tutorials/token-gate-videos-with-lit", + { + "group": "Storage Provider Integration", + "pages": [ + "v1/developers/tutorials/upload-playback-videos-4everland", + "v1/developers/tutorials/upload-playback-videos-on-arweave", + "v1/developers/tutorials/upload-playback-videos-on-ipfs" + ] + } + ] + } + ] + }, + { + "group": "References", + "pages": [ + "v1/references/api-support-matrix", + { + "group": "Livepeer Node Software", + "icon": "golang", + "pages": [ + "v1/references/go-livepeer/bandwidth-requirements", + "v1/references/go-livepeer/cli-reference", + "v1/references/go-livepeer/gpu-support", + "v1/references/go-livepeer/hardware-requirements", + "v1/references/go-livepeer/prometheus-metrics" + ] + }, + "v1/references/contract-addresses", + "v1/references/example-applications", + "v1/references/awesome-livepeer", + { + "group": "FAQs", + "icon": "book", + "pages": [ + "v1/references/knowledge-base/livestream", + "v1/references/knowledge-base/playback", + "v1/references/knowledge-base/vod" + ] + } + ] + } + ] + }, + { + "anchor": "API Reference", + "icon": "rectangle-terminal", + "groups": [ + { + "group": "Overview", + "pages": [ + "v1/api-reference/overview/introduction", + "v1/api-reference/overview/authentication" + ] + }, + { + "group": "APIs", + "pages": [ + { + "group": "Asset", + "icon": "video", + "pages": [ + "v1/api-reference/asset/overview", + "v1/api-reference/asset/upload", + "v1/api-reference/asset/upload-via-url", + "v1/api-reference/asset/get", + "v1/api-reference/asset/update", + "v1/api-reference/asset/delete", + "v1/api-reference/asset/get-all" + ] + }, + { + "group": "Livestream", + "icon": "camera", + "pages": [ + "v1/api-reference/stream/overview", + "v1/api-reference/stream/create", + "v1/api-reference/stream/get", + "v1/api-reference/stream/update", + "v1/api-reference/stream/terminate", + "v1/api-reference/stream/add-multistream-target", + "v1/api-reference/stream/delete-multistream-target", + "v1/api-reference/stream/delete", + "v1/api-reference/stream/get-all", + "v1/api-reference/stream/create-clip", + "v1/api-reference/stream/get-clip" + ] + }, + { + "group": "Generate", + "icon": "microchip-ai", + "pages": [ + "v1/api-reference/generate/overview", + "v1/api-reference/generate/audio-to-text", + "v1/api-reference/generate/text-to-image", + "v1/api-reference/generate/image-to-image", + "v1/api-reference/generate/image-to-video", + "v1/api-reference/generate/llm", + "v1/api-reference/generate/segment-anything-2", + "v1/api-reference/generate/upscale" + ] + }, + { + "group": "Multistream target", + "icon": "arrows-split-up-and-left", + "pages": [ + "v1/api-reference/multistream/overview", + "v1/api-reference/multistream/create", + "v1/api-reference/multistream/get", + "v1/api-reference/multistream/update", + "v1/api-reference/multistream/delete", + "v1/api-reference/multistream/get-all" + ] + }, + { + "group": "Session", + "icon": "film", + "pages": [ + "v1/api-reference/session/overview", + "v1/api-reference/session/get", + "v1/api-reference/session/get-all", + "v1/api-reference/session/get-recording", + "v1/api-reference/session/get-clip" + ] + }, + { + "group": "Access control", + "icon": "lock", + "pages": [ + "v1/api-reference/signing-key/overview", + "v1/api-reference/signing-key/create", + "v1/api-reference/signing-key/get", + "v1/api-reference/signing-key/update", + "v1/api-reference/signing-key/delete", + "v1/api-reference/signing-key/get-all" + ] + }, + { + "group": "Webhook", + "icon": "bell", + "pages": [ + "v1/api-reference/webhook/overview", + "v1/api-reference/webhook/create", + "v1/api-reference/webhook/get", + "v1/api-reference/webhook/update", + "v1/api-reference/webhook/delete", + "v1/api-reference/webhook/get-all" + ] + }, + { + "group": "Task", + "icon": "gear", + "pages": [ + "v1/api-reference/task/overview", + "v1/api-reference/task/get-all", + "v1/api-reference/task/get" + ] + }, + { + "group": "Playback", + "icon": "play", + "pages": [ + "v1/api-reference/playback/overview", + "v1/api-reference/playback/get" + ] + }, + { + "group": "Transcode", + "icon": "photo-film", + "pages": [ + "v1/api-reference/transcode/overview", + "v1/api-reference/transcode/create" + ] + }, + { + "group": "Viewership", + "icon": "chart-bar", + "pages": [ + "v1/api-reference/viewership/get-realtime-viewership", + "v1/api-reference/viewership/get-viewership-metrics", + "v1/api-reference/viewership/get-usage-metrics", + "v1/api-reference/viewership/get-public-total-views", + "v1/api-reference/viewership/get-creators-metrics" + ] + } + ] + } + ] + }, + { + "anchor": "SDKs", + "icon": "brackets-curly", + "groups": [ + { + "group": "Overview", + "pages": ["v1/sdks/introduction"] + }, + { + "group": "Server-side SDKs", + "pages": [ + "v1/sdks/javascript", + "v1/sdks/go", + "v1/sdks/python" + ] + }, + { + "group": "React Components", + "icon": "circle-play", + "pages": [ + "v1/sdks/react/getting-started", + { + "group": "Player", + "icon": "circle-play", + "pages": [ + "v1/sdks/react/player/Root", + "v1/sdks/react/player/Container", + "v1/sdks/react/player/Video", + "v1/sdks/react/player/Error", + "v1/sdks/react/player/Loading", + "v1/sdks/react/player/Portal", + "v1/sdks/react/player/Poster", + { + "group": "Controls", + "pages": [ + "v1/sdks/react/player/Controls", + "v1/sdks/react/player/Clip", + "v1/sdks/react/player/Fullscreen", + "v1/sdks/react/player/Live", + "v1/sdks/react/player/PictureInPicture", + "v1/sdks/react/player/Play", + "v1/sdks/react/player/RateSelect", + "v1/sdks/react/player/Seek", + "v1/sdks/react/player/Time", + "v1/sdks/react/player/VideoQualitySelect", + "v1/sdks/react/player/Volume" + ] + }, + { + "group": "Functions", + "pages": [ + "v1/sdks/react/player/get-src", + "v1/sdks/react/player/useMediaContext" + ] + } + ] + }, + { + "group": "Broadcast", + "icon": "signal-stream", + "pages": [ + "v1/sdks/react/broadcast/Root", + "v1/sdks/react/broadcast/Container", + "v1/sdks/react/broadcast/Video", + "v1/sdks/react/broadcast/Enabled", + "v1/sdks/react/broadcast/Error", + "v1/sdks/react/broadcast/Loading", + "v1/sdks/react/broadcast/Portal", + { + "group": "Controls", + "pages": [ + "v1/sdks/react/broadcast/Controls", + "v1/sdks/react/broadcast/Audio", + "v1/sdks/react/broadcast/Camera", + "v1/sdks/react/broadcast/Fullscreen", + "v1/sdks/react/broadcast/PictureInPicture", + "v1/sdks/react/broadcast/Screenshare", + "v1/sdks/react/broadcast/Source", + "v1/sdks/react/broadcast/Status" + ] + }, + { + "group": "Functions", + "pages": [ + "v1/sdks/react/broadcast/get-ingest", + "v1/sdks/react/broadcast/useBroadcastContext" + ] + } + ] + }, + { + "group": "Examples", + "icon": "clipboard", + "pages": [ + "v1/sdks/react/Player", + "v1/sdks/react/Broadcast" + ] + }, + { + "group": "Migration", + "icon": "right-left", + "pages": [ + "v1/sdks/react/migration/migration-4.x", + { + "group": "Livepeer React (3.x and below)", + "pages": [ + "v1/sdks/react/migration/3.x/getting-started", + "v1/sdks/react/migration/3.x/client", + "v1/sdks/react/migration/3.x/LivepeerConfig", + "v1/sdks/react/migration/3.x/Player", + "v1/sdks/react/migration/3.x/Broadcast", + { + "group": "Asset", + "pages": [ + "v1/sdks/react/migration/3.x/asset/useCreateAsset", + "v1/sdks/react/migration/3.x/asset/useAsset", + "v1/sdks/react/migration/3.x/asset/useUpdateAsset", + "v1/sdks/react/migration/3.x/asset/useAssetMetrics" + ] + }, + { + "group": "Stream", + "pages": [ + "v1/sdks/react/migration/3.x/stream/useCreateStream", + "v1/sdks/react/migration/3.x/stream/useStream", + "v1/sdks/react/migration/3.x/stream/useUpdateStream", + "v1/sdks/react/migration/3.x/stream/useStreamSession", + "v1/sdks/react/migration/3.x/stream/useStreamSessions" + ] + }, + { + "group": "Playback", + "pages": [ + "v1/sdks/react/migration/3.x/playback/usePlaybackInfo" + ] + }, + { + "group": "Constants", + "pages": [ + "v1/sdks/react/migration/3.x/constants/abis", + "v1/sdks/react/migration/3.x/constants/contract-addresses" + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "anchor": "AI Video (Beta)", + "icon": { + "name": "microchip-ai", + "style": "regular" + }, + "groups": [ + { + "group": "AI Video", + "pages": [ + "v1/ai/introduction", + "v1/ai/whats-new", + { + "group": "AI Pipelines", + "icon": { + "name": "wand-magic-sparkles", + "style": "solid" + }, + "pages": [ + "v1/ai/pipelines/overview", + "v1/ai/pipelines/audio-to-text", + "v1/ai/pipelines/image-to-image", + "v1/ai/pipelines/image-to-text", + "v1/ai/pipelines/image-to-video", + "v1/ai/pipelines/llm", + "v1/ai/pipelines/segment-anything-2", + "v1/ai/pipelines/text-to-image", + "v1/ai/pipelines/text-to-speech", + "v1/ai/pipelines/upscale" + ] + }, + { + "group": "Setup an AI Orchestrator", + "icon": { + "name": "robot", + "style": "solid" + }, + "pages": [ + "v1/ai/orchestrators/get-started", + "v1/ai/orchestrators/models-config", + "v1/ai/orchestrators/models-download", + "v1/ai/orchestrators/start-orchestrator", + "v1/ai/orchestrators/ai-worker", + "v1/ai/orchestrators/benchmarking", + "v1/ai/orchestrators/onchain" + ] + }, + { + "group": "Setup an AI Gateway", + "icon": { + "name": "signal-stream", + "style": "solid" + }, + "pages": [ + "v1/ai/gateways/get-started", + "v1/ai/gateways/start-gateway", + "v1/ai/gateways/onchain" + ] + }, + { + "group": "AI Builders", + "icon": { + "name": "screwdriver-wrench", + "style": "solid" + }, + "pages": [ + "v1/ai/builders/get-started", + "v1/ai/builders/gateways", + "v1/ai/builders/showcase" + ] + }, + { + "group": "How to Contribute", + "icon": { + "name": "heart", + "style": "solid" + }, + "pages": ["ai/contributors/coming-soon"] + }, + { + "group": "SDKs", + "icon": "brackets-curly", + "pages": [ + "v1/ai/sdks/overview", + "v1/ai/sdks/go", + "v1/ai/sdks/javascript", + "v1/ai/sdks/python" + ] + }, + { + "group": "AI API Reference", + "icon": "rectangle-terminal", + "pages": [ + "v1/ai/api-reference/overview", + "v1/ai/api-reference/audio-to-text", + "v1/ai/api-reference/image-to-image", + "v1/ai/api-reference/image-to-text", + "v1/ai/api-reference/image-to-video", + "v1/ai/api-reference/llm", + "v1/ai/api-reference/segment-anything-2", + "v1/ai/api-reference/text-to-image", + "v1/ai/api-reference/text-to-speech", + "v1/ai/api-reference/upscale" + ] + } + ] + } + ] + }, + { + "anchor": " ", + "icon": "horizontal-rule", + "href": " " + }, + { + "anchor": "Livepeer Studio\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0➚", + "href": "https://livepeer.studio", + "icon": "clapperboard-play" + }, + { + "anchor": "What's New\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0➚", + "href": "https://livepeer.canny.io/changelog", + "icon": "rocket" + }, + { + "anchor": "Community\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0➚", + "href": "https://discord.gg/livepeer", + "icon": { + "name": "discord", + "style": "brands" + } + } + ] + }, + { + "dropdown": "Delegators", + "icon": "coins", + "anchors": [ + { + "anchor": "Documentation", + "icon": "code", + "groups": [ + { + "group": "Getting Started", + "pages": [ + "v1/delegators/introduction", + "v1/delegators/quick-start", + "v1/delegators/livepeer-studio-cli" + ] + }, + { + "group": "Guides", + "pages": [ + "v1/delegators/guides/bridge-lpt-to-arbitrum", + "v1/delegators/guides/migrate-stake-to-arbitrum", + "v1/delegators/guides/yield-calculation" + ] + }, + { + "group": "References", + "pages": [ + "v1/references/api-support-matrix", + { + "group": "Livepeer Node Software", + "icon": "golang", + "pages": [ + "v1/references/go-livepeer/bandwidth-requirements", + "v1/references/go-livepeer/cli-reference", + "v1/references/go-livepeer/gpu-support", + "v1/references/go-livepeer/hardware-requirements", + "v1/references/go-livepeer/prometheus-metrics" + ] + }, + "v1/references/contract-addresses", + "v1/references/example-applications", + "v1/references/awesome-livepeer", + { + "group": "FAQs", + "icon": "book", + "pages": [ + "v1/references/knowledge-base/livestream", + "v1/references/knowledge-base/playback", + "v1/references/knowledge-base/vod" + ] + } + ] + } + ] + }, + { + "anchor": "API Reference", + "icon": "rectangle-terminal", + "groups": [ + { + "group": "Overview", + "pages": [ + "v1/api-reference/overview/introduction", + "v1/api-reference/overview/authentication" + ] + }, + { + "group": "APIs", + "pages": [ + { + "group": "Asset", + "icon": "video", + "pages": [ + "v1/api-reference/asset/overview", + "v1/api-reference/asset/upload", + "v1/api-reference/asset/upload-via-url", + "v1/api-reference/asset/get", + "v1/api-reference/asset/update", + "v1/api-reference/asset/delete", + "v1/api-reference/asset/get-all" + ] + }, + { + "group": "Livestream", + "icon": "camera", + "pages": [ + "v1/api-reference/stream/overview", + "v1/api-reference/stream/create", + "v1/api-reference/stream/get", + "v1/api-reference/stream/update", + "v1/api-reference/stream/terminate", + "v1/api-reference/stream/add-multistream-target", + "v1/api-reference/stream/delete-multistream-target", + "v1/api-reference/stream/delete", + "v1/api-reference/stream/get-all", + "v1/api-reference/stream/create-clip", + "v1/api-reference/stream/get-clip" + ] + }, + { + "group": "Generate", + "icon": "microchip-ai", + "pages": [ + "v1/api-reference/generate/overview", + "v1/api-reference/generate/audio-to-text", + "v1/api-reference/generate/text-to-image", + "v1/api-reference/generate/image-to-image", + "v1/api-reference/generate/image-to-video", + "v1/api-reference/generate/llm", + "v1/api-reference/generate/segment-anything-2", + "v1/api-reference/generate/upscale" + ] + }, + { + "group": "Multistream target", + "icon": "arrows-split-up-and-left", + "pages": [ + "v1/api-reference/multistream/overview", + "v1/api-reference/multistream/create", + "v1/api-reference/multistream/get", + "v1/api-reference/multistream/update", + "v1/api-reference/multistream/delete", + "v1/api-reference/multistream/get-all" + ] + }, + { + "group": "Session", + "icon": "film", + "pages": [ + "v1/api-reference/session/overview", + "v1/api-reference/session/get", + "v1/api-reference/session/get-all", + "v1/api-reference/session/get-recording", + "v1/api-reference/session/get-clip" + ] + }, + { + "group": "Access control", + "icon": "lock", + "pages": [ + "v1/api-reference/signing-key/overview", + "v1/api-reference/signing-key/create", + "v1/api-reference/signing-key/get", + "v1/api-reference/signing-key/update", + "v1/api-reference/signing-key/delete", + "v1/api-reference/signing-key/get-all" + ] + }, + { + "group": "Webhook", + "icon": "bell", + "pages": [ + "v1/api-reference/webhook/overview", + "v1/api-reference/webhook/create", + "v1/api-reference/webhook/get", + "v1/api-reference/webhook/update", + "v1/api-reference/webhook/delete", + "v1/api-reference/webhook/get-all" + ] + }, + { + "group": "Task", + "icon": "gear", + "pages": [ + "v1/api-reference/task/overview", + "v1/api-reference/task/get-all", + "v1/api-reference/task/get" + ] + }, + { + "group": "Playback", + "icon": "play", + "pages": [ + "v1/api-reference/playback/overview", + "v1/api-reference/playback/get" + ] + }, + { + "group": "Transcode", + "icon": "photo-film", + "pages": [ + "v1/api-reference/transcode/overview", + "v1/api-reference/transcode/create" + ] + }, + { + "group": "Viewership", + "icon": "chart-bar", + "pages": [ + "v1/api-reference/viewership/get-realtime-viewership", + "v1/api-reference/viewership/get-viewership-metrics", + "v1/api-reference/viewership/get-usage-metrics", + "v1/api-reference/viewership/get-public-total-views", + "v1/api-reference/viewership/get-creators-metrics" + ] + } + ] + } + ] + }, + { + "anchor": "SDKs", + "icon": "brackets-curly", + "groups": [ + { + "group": "Overview", + "pages": ["v1/sdks/introduction"] + }, + { + "group": "Server-side SDKs", + "pages": [ + "v1/sdks/javascript", + "v1/sdks/go", + "v1/sdks/python" + ] + }, + { + "group": "React Components", + "icon": "circle-play", + "pages": [ + "v1/sdks/react/getting-started", + { + "group": "Player", + "icon": "circle-play", + "pages": [ + "v1/sdks/react/player/Root", + "v1/sdks/react/player/Container", + "v1/sdks/react/player/Video", + "v1/sdks/react/player/Error", + "v1/sdks/react/player/Loading", + "v1/sdks/react/player/Portal", + "v1/sdks/react/player/Poster", + { + "group": "Controls", + "pages": [ + "v1/sdks/react/player/Controls", + "v1/sdks/react/player/Clip", + "v1/sdks/react/player/Fullscreen", + "v1/sdks/react/player/Live", + "v1/sdks/react/player/PictureInPicture", + "v1/sdks/react/player/Play", + "v1/sdks/react/player/RateSelect", + "v1/sdks/react/player/Seek", + "v1/sdks/react/player/Time", + "v1/sdks/react/player/VideoQualitySelect", + "v1/sdks/react/player/Volume" + ] + }, + { + "group": "Functions", + "pages": [ + "v1/sdks/react/player/get-src", + "v1/sdks/react/player/useMediaContext" + ] + } + ] + }, + { + "group": "Broadcast", + "icon": "signal-stream", + "pages": [ + "v1/sdks/react/broadcast/Root", + "v1/sdks/react/broadcast/Container", + "v1/sdks/react/broadcast/Video", + "v1/sdks/react/broadcast/Enabled", + "v1/sdks/react/broadcast/Error", + "v1/sdks/react/broadcast/Loading", + "v1/sdks/react/broadcast/Portal", + { + "group": "Controls", + "pages": [ + "v1/sdks/react/broadcast/Controls", + "v1/sdks/react/broadcast/Audio", + "v1/sdks/react/broadcast/Camera", + "v1/sdks/react/broadcast/Fullscreen", + "v1/sdks/react/broadcast/PictureInPicture", + "v1/sdks/react/broadcast/Screenshare", + "v1/sdks/react/broadcast/Source", + "v1/sdks/react/broadcast/Status" + ] + }, + { + "group": "Functions", + "pages": [ + "v1/sdks/react/broadcast/get-ingest", + "v1/sdks/react/broadcast/useBroadcastContext" + ] + } + ] + }, + { + "group": "Examples", + "icon": "clipboard", + "pages": [ + "v1/sdks/react/Player", + "v1/sdks/react/Broadcast" + ] + }, + { + "group": "Migration", + "icon": "right-left", + "pages": [ + "v1/sdks/react/migration/migration-4.x", + { + "group": "Livepeer React (3.x and below)", + "pages": [ + "v1/sdks/react/migration/3.x/getting-started", + "v1/sdks/react/migration/3.x/client", + "v1/sdks/react/migration/3.x/LivepeerConfig", + "v1/sdks/react/migration/3.x/Player", + "v1/sdks/react/migration/3.x/Broadcast", + { + "group": "Asset", + "pages": [ + "v1/sdks/react/migration/3.x/asset/useCreateAsset", + "v1/sdks/react/migration/3.x/asset/useAsset", + "v1/sdks/react/migration/3.x/asset/useUpdateAsset", + "v1/sdks/react/migration/3.x/asset/useAssetMetrics" + ] + }, + { + "group": "Stream", + "pages": [ + "v1/sdks/react/migration/3.x/stream/useCreateStream", + "v1/sdks/react/migration/3.x/stream/useStream", + "v1/sdks/react/migration/3.x/stream/useUpdateStream", + "v1/sdks/react/migration/3.x/stream/useStreamSession", + "v1/sdks/react/migration/3.x/stream/useStreamSessions" + ] + }, + { + "group": "Playback", + "pages": [ + "v1/sdks/react/migration/3.x/playback/usePlaybackInfo" + ] + }, + { + "group": "Constants", + "pages": [ + "v1/sdks/react/migration/3.x/constants/abis", + "v1/sdks/react/migration/3.x/constants/contract-addresses" + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "anchor": "AI Video (Beta)", + "icon": { + "name": "microchip-ai", + "style": "regular" + }, + "groups": [ + { + "group": "AI Video", + "pages": [ + "v1/ai/introduction", + "v1/ai/whats-new", + { + "group": "AI Pipelines", + "icon": { + "name": "wand-magic-sparkles", + "style": "solid" + }, + "pages": [ + "v1/ai/pipelines/overview", + "v1/ai/pipelines/audio-to-text", + "v1/ai/pipelines/image-to-image", + "v1/ai/pipelines/image-to-text", + "v1/ai/pipelines/image-to-video", + "v1/ai/pipelines/llm", + "v1/ai/pipelines/segment-anything-2", + "v1/ai/pipelines/text-to-image", + "v1/ai/pipelines/text-to-speech", + "v1/ai/pipelines/upscale" + ] + }, + { + "group": "Setup an AI Orchestrator", + "icon": { + "name": "robot", + "style": "solid" + }, + "pages": [ + "v1/ai/orchestrators/get-started", + "v1/ai/orchestrators/models-config", + "v1/ai/orchestrators/models-download", + "v1/ai/orchestrators/start-orchestrator", + "v1/ai/orchestrators/ai-worker", + "v1/ai/orchestrators/benchmarking", + "v1/ai/orchestrators/onchain" + ] + }, + { + "group": "Setup an AI Gateway", + "icon": { + "name": "signal-stream", + "style": "solid" + }, + "pages": [ + "v1/ai/gateways/get-started", + "v1/ai/gateways/start-gateway", + "v1/ai/gateways/onchain" + ] + }, + { + "group": "AI Builders", + "icon": { + "name": "screwdriver-wrench", + "style": "solid" + }, + "pages": [ + "v1/ai/builders/get-started", + "v1/ai/builders/gateways", + "v1/ai/builders/showcase" + ] + }, + { + "group": "How to Contribute", + "icon": { + "name": "heart", + "style": "solid" + }, + "pages": ["ai/contributors/coming-soon"] + }, + { + "group": "SDKs", + "icon": "brackets-curly", + "pages": [ + "v1/ai/sdks/overview", + "v1/ai/sdks/go", + "v1/ai/sdks/javascript", + "v1/ai/sdks/python" + ] + }, + { + "group": "AI API Reference", + "icon": "rectangle-terminal", + "pages": [ + "v1/ai/api-reference/overview", + "v1/ai/api-reference/audio-to-text", + "v1/ai/api-reference/image-to-image", + "v1/ai/api-reference/image-to-text", + "v1/ai/api-reference/image-to-video", + "v1/ai/api-reference/llm", + "v1/ai/api-reference/segment-anything-2", + "v1/ai/api-reference/text-to-image", + "v1/ai/api-reference/text-to-speech", + "v1/ai/api-reference/upscale" + ] + } + ] + } + ] + }, + { + "anchor": " ", + "icon": "horizontal-rule", + "href": " " + }, + { + "anchor": "Livepeer Studio\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0➚", + "href": "https://livepeer.studio", + "icon": "clapperboard-play" + }, + { + "anchor": "What's New\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0➚", + "href": "https://livepeer.canny.io/changelog", + "icon": "rocket" + }, + { + "anchor": "Community\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0➚", + "href": "https://discord.gg/livepeer", + "icon": { + "name": "discord", + "style": "brands" + } + } + ] + }, + { + "dropdown": "Orchestrators", + "icon": "microchip", + "anchors": [ + { + "anchor": "Documentation", + "icon": "code", + "groups": [ + { + "group": "Getting Started", + "pages": [ + "v1/orchestrators/introduction", + "v1/orchestrators/quick-start", + "v1/orchestrators/livepeer-studio-cli" + ] + }, + { + "group": "Guides", + "pages": [ + "v1/orchestrators/guides/get-started", + "v1/orchestrators/guides/install-go-livepeer", + "v1/orchestrators/guides/connect-to-arbitrum", + "v1/orchestrators/guides/configure-reward-calling", + "v1/orchestrators/guides/set-session-limits", + "v1/orchestrators/guides/set-pricing", + "v1/orchestrators/guides/benchmark-transcoding", + "v1/orchestrators/guides/assess-capabilities", + "v1/orchestrators/guides/monitor-metrics", + "v1/orchestrators/guides/vote", + "v1/orchestrators/guides/dual-mine", + "v1/orchestrators/guides/o-t-split", + "v1/orchestrators/guides/migrate-to-arbitrum", + "v1/orchestrators/guides/migrate-from-contract-wallet", + "v1/orchestrators/guides/gateway-introspection", + "v1/orchestrators/guides/troubleshoot" + ] + }, + { + "group": "References", + "pages": [ + "v1/references/api-support-matrix", + { + "group": "Livepeer Node Software", + "icon": "golang", + "pages": [ + "v1/references/go-livepeer/bandwidth-requirements", + "v1/references/go-livepeer/cli-reference", + "v1/references/go-livepeer/gpu-support", + "v1/references/go-livepeer/hardware-requirements", + "v1/references/go-livepeer/prometheus-metrics" + ] + }, + "v1/references/contract-addresses", + "v1/references/example-applications", + "v1/references/awesome-livepeer", + { + "group": "FAQs", + "icon": "book", + "pages": [ + "v1/references/knowledge-base/livestream", + "v1/references/knowledge-base/playback", + "v1/references/knowledge-base/vod" + ] + } + ] + } + ] + }, + { + "anchor": "API Reference", + "icon": "rectangle-terminal", + "groups": [ + { + "group": "Overview", + "pages": [ + "v1/api-reference/overview/introduction", + "v1/api-reference/overview/authentication" + ] + }, + { + "group": "APIs", + "pages": [ + { + "group": "Asset", + "icon": "video", + "pages": [ + "v1/api-reference/asset/overview", + "v1/api-reference/asset/upload", + "v1/api-reference/asset/upload-via-url", + "v1/api-reference/asset/get", + "v1/api-reference/asset/update", + "v1/api-reference/asset/delete", + "v1/api-reference/asset/get-all" + ] + }, + { + "group": "Livestream", + "icon": "camera", + "pages": [ + "v1/api-reference/stream/overview", + "v1/api-reference/stream/create", + "v1/api-reference/stream/get", + "v1/api-reference/stream/update", + "v1/api-reference/stream/terminate", + "v1/api-reference/stream/add-multistream-target", + "v1/api-reference/stream/delete-multistream-target", + "v1/api-reference/stream/delete", + "v1/api-reference/stream/get-all", + "v1/api-reference/stream/create-clip", + "v1/api-reference/stream/get-clip" + ] + }, + { + "group": "Generate", + "icon": "microchip-ai", + "pages": [ + "v1/api-reference/generate/overview", + "v1/api-reference/generate/audio-to-text", + "v1/api-reference/generate/text-to-image", + "v1/api-reference/generate/image-to-image", + "v1/api-reference/generate/image-to-video", + "v1/api-reference/generate/llm", + "v1/api-reference/generate/segment-anything-2", + "v1/api-reference/generate/upscale" + ] + }, + { + "group": "Multistream target", + "icon": "arrows-split-up-and-left", + "pages": [ + "v1/api-reference/multistream/overview", + "v1/api-reference/multistream/create", + "v1/api-reference/multistream/get", + "v1/api-reference/multistream/update", + "v1/api-reference/multistream/delete", + "v1/api-reference/multistream/get-all" + ] + }, + { + "group": "Session", + "icon": "film", + "pages": [ + "v1/api-reference/session/overview", + "v1/api-reference/session/get", + "v1/api-reference/session/get-all", + "v1/api-reference/session/get-recording", + "v1/api-reference/session/get-clip" + ] + }, + { + "group": "Access control", + "icon": "lock", + "pages": [ + "v1/api-reference/signing-key/overview", + "v1/api-reference/signing-key/create", + "v1/api-reference/signing-key/get", + "v1/api-reference/signing-key/update", + "v1/api-reference/signing-key/delete", + "v1/api-reference/signing-key/get-all" + ] + }, + { + "group": "Webhook", + "icon": "bell", + "pages": [ + "v1/api-reference/webhook/overview", + "v1/api-reference/webhook/create", + "v1/api-reference/webhook/get", + "v1/api-reference/webhook/update", + "v1/api-reference/webhook/delete", + "v1/api-reference/webhook/get-all" + ] + }, + { + "group": "Task", + "icon": "gear", + "pages": [ + "v1/api-reference/task/overview", + "v1/api-reference/task/get-all", + "v1/api-reference/task/get" + ] + }, + { + "group": "Playback", + "icon": "play", + "pages": [ + "v1/api-reference/playback/overview", + "v1/api-reference/playback/get" + ] + }, + { + "group": "Transcode", + "icon": "photo-film", + "pages": [ + "v1/api-reference/transcode/overview", + "v1/api-reference/transcode/create" + ] + }, + { + "group": "Viewership", + "icon": "chart-bar", + "pages": [ + "v1/api-reference/viewership/get-realtime-viewership", + "v1/api-reference/viewership/get-viewership-metrics", + "v1/api-reference/viewership/get-usage-metrics", + "v1/api-reference/viewership/get-public-total-views", + "v1/api-reference/viewership/get-creators-metrics" + ] + } + ] + } + ] + }, + { + "anchor": "SDKs", + "icon": "brackets-curly", + "groups": [ + { + "group": "Overview", + "pages": ["v1/sdks/introduction"] + }, + { + "group": "Server-side SDKs", + "pages": [ + "v1/sdks/javascript", + "v1/sdks/go", + "v1/sdks/python" + ] + }, + { + "group": "React Components", + "icon": "circle-play", + "pages": [ + "v1/sdks/react/getting-started", + { + "group": "Player", + "icon": "circle-play", + "pages": [ + "v1/sdks/react/player/Root", + "v1/sdks/react/player/Container", + "v1/sdks/react/player/Video", + "v1/sdks/react/player/Error", + "v1/sdks/react/player/Loading", + "v1/sdks/react/player/Portal", + "v1/sdks/react/player/Poster", + { + "group": "Controls", + "pages": [ + "v1/sdks/react/player/Controls", + "v1/sdks/react/player/Clip", + "v1/sdks/react/player/Fullscreen", + "v1/sdks/react/player/Live", + "v1/sdks/react/player/PictureInPicture", + "v1/sdks/react/player/Play", + "v1/sdks/react/player/RateSelect", + "v1/sdks/react/player/Seek", + "v1/sdks/react/player/Time", + "v1/sdks/react/player/VideoQualitySelect", + "v1/sdks/react/player/Volume" + ] + }, + { + "group": "Functions", + "pages": [ + "v1/sdks/react/player/get-src", + "v1/sdks/react/player/useMediaContext" + ] + } + ] + }, + { + "group": "Broadcast", + "icon": "signal-stream", + "pages": [ + "v1/sdks/react/broadcast/Root", + "v1/sdks/react/broadcast/Container", + "v1/sdks/react/broadcast/Video", + "v1/sdks/react/broadcast/Enabled", + "v1/sdks/react/broadcast/Error", + "v1/sdks/react/broadcast/Loading", + "v1/sdks/react/broadcast/Portal", + { + "group": "Controls", + "pages": [ + "v1/sdks/react/broadcast/Controls", + "v1/sdks/react/broadcast/Audio", + "v1/sdks/react/broadcast/Camera", + "v1/sdks/react/broadcast/Fullscreen", + "v1/sdks/react/broadcast/PictureInPicture", + "v1/sdks/react/broadcast/Screenshare", + "v1/sdks/react/broadcast/Source", + "v1/sdks/react/broadcast/Status" + ] + }, + { + "group": "Functions", + "pages": [ + "v1/sdks/react/broadcast/get-ingest", + "v1/sdks/react/broadcast/useBroadcastContext" + ] + } + ] + }, + { + "group": "Examples", + "icon": "clipboard", + "pages": [ + "v1/sdks/react/Player", + "v1/sdks/react/Broadcast" + ] + }, + { + "group": "Migration", + "icon": "right-left", + "pages": [ + "v1/sdks/react/migration/migration-4.x", + { + "group": "Livepeer React (3.x and below)", + "pages": [ + "v1/sdks/react/migration/3.x/getting-started", + "v1/sdks/react/migration/3.x/client", + "v1/sdks/react/migration/3.x/LivepeerConfig", + "v1/sdks/react/migration/3.x/Player", + "v1/sdks/react/migration/3.x/Broadcast", + { + "group": "Asset", + "pages": [ + "v1/sdks/react/migration/3.x/asset/useCreateAsset", + "v1/sdks/react/migration/3.x/asset/useAsset", + "v1/sdks/react/migration/3.x/asset/useUpdateAsset", + "v1/sdks/react/migration/3.x/asset/useAssetMetrics" + ] + }, + { + "group": "Stream", + "pages": [ + "v1/sdks/react/migration/3.x/stream/useCreateStream", + "v1/sdks/react/migration/3.x/stream/useStream", + "v1/sdks/react/migration/3.x/stream/useUpdateStream", + "v1/sdks/react/migration/3.x/stream/useStreamSession", + "v1/sdks/react/migration/3.x/stream/useStreamSessions" + ] + }, + { + "group": "Playback", + "pages": [ + "v1/sdks/react/migration/3.x/playback/usePlaybackInfo" + ] + }, + { + "group": "Constants", + "pages": [ + "v1/sdks/react/migration/3.x/constants/abis", + "v1/sdks/react/migration/3.x/constants/contract-addresses" + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "anchor": "AI Video (Beta)", + "icon": { + "name": "microchip-ai", + "style": "regular" + }, + "groups": [ + { + "group": "AI Video", + "pages": [ + "v1/ai/introduction", + "v1/ai/whats-new", + { + "group": "AI Pipelines", + "icon": { + "name": "wand-magic-sparkles", + "style": "solid" + }, + "pages": [ + "v1/ai/pipelines/overview", + "v1/ai/pipelines/audio-to-text", + "v1/ai/pipelines/image-to-image", + "v1/ai/pipelines/image-to-text", + "v1/ai/pipelines/image-to-video", + "v1/ai/pipelines/llm", + "v1/ai/pipelines/segment-anything-2", + "v1/ai/pipelines/text-to-image", + "v1/ai/pipelines/text-to-speech", + "v1/ai/pipelines/upscale" + ] + }, + { + "group": "Setup an AI Orchestrator", + "icon": { + "name": "robot", + "style": "solid" + }, + "pages": [ + "v1/ai/orchestrators/get-started", + "v1/ai/orchestrators/models-config", + "v1/ai/orchestrators/models-download", + "v1/ai/orchestrators/start-orchestrator", + "v1/ai/orchestrators/ai-worker", + "v1/ai/orchestrators/benchmarking", + "v1/ai/orchestrators/onchain" + ] + }, + { + "group": "Setup an AI Gateway", + "icon": { + "name": "signal-stream", + "style": "solid" + }, + "pages": [ + "v1/ai/gateways/get-started", + "v1/ai/gateways/start-gateway", + "v1/ai/gateways/onchain" + ] + }, + { + "group": "AI Builders", + "icon": { + "name": "screwdriver-wrench", + "style": "solid" + }, + "pages": [ + "v1/ai/builders/get-started", + "v1/ai/builders/gateways", + "v1/ai/builders/showcase" + ] + }, + { + "group": "How to Contribute", + "icon": { + "name": "heart", + "style": "solid" + }, + "pages": ["ai/contributors/coming-soon"] + }, + { + "group": "SDKs", + "icon": "brackets-curly", + "pages": [ + "v1/ai/sdks/overview", + "v1/ai/sdks/go", + "v1/ai/sdks/javascript", + "v1/ai/sdks/python" + ] + }, + { + "group": "AI API Reference", + "icon": "rectangle-terminal", + "pages": [ + "v1/ai/api-reference/overview", + "v1/ai/api-reference/audio-to-text", + "v1/ai/api-reference/image-to-image", + "v1/ai/api-reference/image-to-text", + "v1/ai/api-reference/image-to-video", + "v1/ai/api-reference/llm", + "v1/ai/api-reference/segment-anything-2", + "v1/ai/api-reference/text-to-image", + "v1/ai/api-reference/text-to-speech", + "v1/ai/api-reference/upscale" + ] + } + ] + } + ] + }, + { + "anchor": " ", + "icon": "horizontal-rule", + "href": " " + }, + { + "anchor": "Livepeer Studio\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0➚", + "href": "https://livepeer.studio", + "icon": "clapperboard-play" + }, + { + "anchor": "What's New\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0➚", + "href": "https://livepeer.canny.io/changelog", + "icon": "rocket" + }, + { + "anchor": "Community\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0➚", + "href": "https://discord.gg/livepeer", + "icon": { + "name": "discord", + "style": "brands" + } + } + ] + }, + { + "dropdown": "Gateways", + "icon": "torii-gate", + "anchors": [ + { + "anchor": "Documentation", + "icon": "code", + "groups": [ + { + "group": "Getting Started", + "pages": [ + "v1/gateways/introduction", + "v1/gateways/quick-start", + "v1/gateways/livepeer-studio-cli" + ] + }, + { + "group": "Guides", + "pages": [ + "v1/gateways/guides/gateway-overview", + "v1/gateways/guides/docker-install", + "v1/gateways/guides/linux-install", + "v1/gateways/guides/windows-install", + "v1/gateways/guides/transcoding-options", + "v1/gateways/guides/fund-gateway", + "v1/gateways/guides/publish-content", + "v1/gateways/guides/playback-content" + ] + }, + { + "group": "References", + "pages": [ + "v1/references/api-support-matrix", + { + "group": "Livepeer Node Software", + "icon": "golang", + "pages": [ + "v1/references/go-livepeer/bandwidth-requirements", + "v1/references/go-livepeer/cli-reference", + "v1/references/go-livepeer/gpu-support", + "v1/references/go-livepeer/hardware-requirements", + "v1/references/go-livepeer/prometheus-metrics" + ] + }, + "v1/references/contract-addresses", + "v1/references/example-applications", + "v1/references/awesome-livepeer", + { + "group": "FAQs", + "icon": "book", + "pages": [ + "v1/references/knowledge-base/livestream", + "v1/references/knowledge-base/playback", + "v1/references/knowledge-base/vod" + ] + } + ] + } + ] + }, + { + "anchor": "API Reference", + "icon": "rectangle-terminal", + "groups": [ + { + "group": "Overview", + "pages": [ + "v1/api-reference/overview/introduction", + "v1/api-reference/overview/authentication" + ] + }, + { + "group": "APIs", + "pages": [ + { + "group": "Asset", + "icon": "video", + "pages": [ + "v1/api-reference/asset/overview", + "v1/api-reference/asset/upload", + "v1/api-reference/asset/upload-via-url", + "v1/api-reference/asset/get", + "v1/api-reference/asset/update", + "v1/api-reference/asset/delete", + "v1/api-reference/asset/get-all" + ] + }, + { + "group": "Livestream", + "icon": "camera", + "pages": [ + "v1/api-reference/stream/overview", + "v1/api-reference/stream/create", + "v1/api-reference/stream/get", + "v1/api-reference/stream/update", + "v1/api-reference/stream/terminate", + "v1/api-reference/stream/add-multistream-target", + "v1/api-reference/stream/delete-multistream-target", + "v1/api-reference/stream/delete", + "v1/api-reference/stream/get-all", + "v1/api-reference/stream/create-clip", + "v1/api-reference/stream/get-clip" + ] + }, + { + "group": "Generate", + "icon": "microchip-ai", + "pages": [ + "v1/api-reference/generate/overview", + "v1/api-reference/generate/audio-to-text", + "v1/api-reference/generate/text-to-image", + "v1/api-reference/generate/image-to-image", + "v1/api-reference/generate/image-to-video", + "v1/api-reference/generate/llm", + "v1/api-reference/generate/segment-anything-2", + "v1/api-reference/generate/upscale" + ] + }, + { + "group": "Multistream target", + "icon": "arrows-split-up-and-left", + "pages": [ + "v1/api-reference/multistream/overview", + "v1/api-reference/multistream/create", + "v1/api-reference/multistream/get", + "v1/api-reference/multistream/update", + "v1/api-reference/multistream/delete", + "v1/api-reference/multistream/get-all" + ] + }, + { + "group": "Session", + "icon": "film", + "pages": [ + "v1/api-reference/session/overview", + "v1/api-reference/session/get", + "v1/api-reference/session/get-all", + "v1/api-reference/session/get-recording", + "v1/api-reference/session/get-clip" + ] + }, + { + "group": "Access control", + "icon": "lock", + "pages": [ + "v1/api-reference/signing-key/overview", + "v1/api-reference/signing-key/create", + "v1/api-reference/signing-key/get", + "v1/api-reference/signing-key/update", + "v1/api-reference/signing-key/delete", + "v1/api-reference/signing-key/get-all" + ] + }, + { + "group": "Webhook", + "icon": "bell", + "pages": [ + "v1/api-reference/webhook/overview", + "v1/api-reference/webhook/create", + "v1/api-reference/webhook/get", + "v1/api-reference/webhook/update", + "v1/api-reference/webhook/delete", + "v1/api-reference/webhook/get-all" + ] + }, + { + "group": "Task", + "icon": "gear", + "pages": [ + "v1/api-reference/task/overview", + "v1/api-reference/task/get-all", + "v1/api-reference/task/get" + ] + }, + { + "group": "Playback", + "icon": "play", + "pages": [ + "v1/api-reference/playback/overview", + "v1/api-reference/playback/get" + ] + }, + { + "group": "Transcode", + "icon": "photo-film", + "pages": [ + "v1/api-reference/transcode/overview", + "v1/api-reference/transcode/create" + ] + }, + { + "group": "Viewership", + "icon": "chart-bar", + "pages": [ + "v1/api-reference/viewership/get-realtime-viewership", + "v1/api-reference/viewership/get-viewership-metrics", + "v1/api-reference/viewership/get-usage-metrics", + "v1/api-reference/viewership/get-public-total-views", + "v1/api-reference/viewership/get-creators-metrics" + ] + } + ] + } + ] + }, + { + "anchor": "SDKs", + "icon": "brackets-curly", + "groups": [ + { + "group": "Overview", + "pages": ["v1/sdks/introduction"] + }, + { + "group": "Server-side SDKs", + "pages": [ + "v1/sdks/javascript", + "v1/sdks/go", + "v1/sdks/python" + ] + }, + { + "group": "React Components", + "icon": "circle-play", + "pages": [ + "v1/sdks/react/getting-started", + { + "group": "Player", + "icon": "circle-play", + "pages": [ + "v1/sdks/react/player/Root", + "v1/sdks/react/player/Container", + "v1/sdks/react/player/Video", + "v1/sdks/react/player/Error", + "v1/sdks/react/player/Loading", + "v1/sdks/react/player/Portal", + "v1/sdks/react/player/Poster", + { + "group": "Controls", + "pages": [ + "v1/sdks/react/player/Controls", + "v1/sdks/react/player/Clip", + "v1/sdks/react/player/Fullscreen", + "v1/sdks/react/player/Live", + "v1/sdks/react/player/PictureInPicture", + "v1/sdks/react/player/Play", + "v1/sdks/react/player/RateSelect", + "v1/sdks/react/player/Seek", + "v1/sdks/react/player/Time", + "v1/sdks/react/player/VideoQualitySelect", + "v1/sdks/react/player/Volume" + ] + }, + { + "group": "Functions", + "pages": [ + "v1/sdks/react/player/get-src", + "v1/sdks/react/player/useMediaContext" + ] + } + ] + }, + { + "group": "Broadcast", + "icon": "signal-stream", + "pages": [ + "v1/sdks/react/broadcast/Root", + "v1/sdks/react/broadcast/Container", + "v1/sdks/react/broadcast/Video", + "v1/sdks/react/broadcast/Enabled", + "v1/sdks/react/broadcast/Error", + "v1/sdks/react/broadcast/Loading", + "v1/sdks/react/broadcast/Portal", + { + "group": "Controls", + "pages": [ + "v1/sdks/react/broadcast/Controls", + "v1/sdks/react/broadcast/Audio", + "v1/sdks/react/broadcast/Camera", + "v1/sdks/react/broadcast/Fullscreen", + "v1/sdks/react/broadcast/PictureInPicture", + "v1/sdks/react/broadcast/Screenshare", + "v1/sdks/react/broadcast/Source", + "v1/sdks/react/broadcast/Status" + ] + }, + { + "group": "Functions", + "pages": [ + "v1/sdks/react/broadcast/get-ingest", + "v1/sdks/react/broadcast/useBroadcastContext" + ] + } + ] + }, + { + "group": "Examples", + "icon": "clipboard", + "pages": [ + "v1/sdks/react/Player", + "v1/sdks/react/Broadcast" + ] + }, + { + "group": "Migration", + "icon": "right-left", + "pages": [ + "v1/sdks/react/migration/migration-4.x", + { + "group": "Livepeer React (3.x and below)", + "pages": [ + "v1/sdks/react/migration/3.x/getting-started", + "v1/sdks/react/migration/3.x/client", + "v1/sdks/react/migration/3.x/LivepeerConfig", + "v1/sdks/react/migration/3.x/Player", + "v1/sdks/react/migration/3.x/Broadcast", + { + "group": "Asset", + "pages": [ + "v1/sdks/react/migration/3.x/asset/useCreateAsset", + "v1/sdks/react/migration/3.x/asset/useAsset", + "v1/sdks/react/migration/3.x/asset/useUpdateAsset", + "v1/sdks/react/migration/3.x/asset/useAssetMetrics" + ] + }, + { + "group": "Stream", + "pages": [ + "v1/sdks/react/migration/3.x/stream/useCreateStream", + "v1/sdks/react/migration/3.x/stream/useStream", + "v1/sdks/react/migration/3.x/stream/useUpdateStream", + "v1/sdks/react/migration/3.x/stream/useStreamSession", + "v1/sdks/react/migration/3.x/stream/useStreamSessions" + ] + }, + { + "group": "Playback", + "pages": [ + "v1/sdks/react/migration/3.x/playback/usePlaybackInfo" + ] + }, + { + "group": "Constants", + "pages": [ + "v1/sdks/react/migration/3.x/constants/abis", + "v1/sdks/react/migration/3.x/constants/contract-addresses" + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "anchor": "AI Video (Beta)", + "icon": { + "name": "microchip-ai", + "style": "regular" + }, + "groups": [ + { + "group": "AI Video", + "pages": [ + "v1/ai/introduction", + "v1/ai/whats-new", + { + "group": "AI Pipelines", + "icon": { + "name": "wand-magic-sparkles", + "style": "solid" + }, + "pages": [ + "v1/ai/pipelines/overview", + "v1/ai/pipelines/audio-to-text", + "v1/ai/pipelines/image-to-image", + "v1/ai/pipelines/image-to-text", + "v1/ai/pipelines/image-to-video", + "v1/ai/pipelines/llm", + "v1/ai/pipelines/segment-anything-2", + "v1/ai/pipelines/text-to-image", + "v1/ai/pipelines/text-to-speech", + "v1/ai/pipelines/upscale" + ] + }, + { + "group": "Setup an AI Orchestrator", + "icon": { + "name": "robot", + "style": "solid" + }, + "pages": [ + "v1/ai/orchestrators/get-started", + "v1/ai/orchestrators/models-config", + "v1/ai/orchestrators/models-download", + "v1/ai/orchestrators/start-orchestrator", + "v1/ai/orchestrators/ai-worker", + "v1/ai/orchestrators/benchmarking", + "v1/ai/orchestrators/onchain" + ] + }, + { + "group": "Setup an AI Gateway", + "icon": { + "name": "signal-stream", + "style": "solid" + }, + "pages": [ + "v1/ai/gateways/get-started", + "v1/ai/gateways/start-gateway", + "v1/ai/gateways/onchain" + ] + }, + { + "group": "AI Builders", + "icon": { + "name": "screwdriver-wrench", + "style": "solid" + }, + "pages": [ + "v1/ai/builders/get-started", + "v1/ai/builders/gateways", + "v1/ai/builders/showcase" + ] + }, + { + "group": "How to Contribute", + "icon": { + "name": "heart", + "style": "solid" + }, + "pages": ["ai/contributors/coming-soon"] + }, + { + "group": "SDKs", + "icon": "brackets-curly", + "pages": [ + "v1/ai/sdks/overview", + "v1/ai/sdks/go", + "v1/ai/sdks/javascript", + "v1/ai/sdks/python" + ] + }, + { + "group": "AI API Reference", + "icon": "rectangle-terminal", + "pages": [ + "v1/ai/api-reference/overview", + "v1/ai/api-reference/audio-to-text", + "v1/ai/api-reference/image-to-image", + "v1/ai/api-reference/image-to-text", + "v1/ai/api-reference/image-to-video", + "v1/ai/api-reference/llm", + "v1/ai/api-reference/segment-anything-2", + "v1/ai/api-reference/text-to-image", + "v1/ai/api-reference/text-to-speech", + "v1/ai/api-reference/upscale" + ] + } + ] + } + ] + }, + { + "anchor": " ", + "icon": "horizontal-rule", + "href": " " + }, + { + "anchor": "Livepeer Studio\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0➚", + "href": "https://livepeer.studio", + "icon": "clapperboard-play" + }, + { + "anchor": "What's New\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0➚", + "href": "https://livepeer.canny.io/changelog", + "icon": "rocket" + }, + { + "anchor": "Community\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0➚", + "href": "https://discord.gg/livepeer", + "icon": { + "name": "discord", + "style": "brands" + } + } + ] + } + ] + } + ] + } + ] + }, + "logo": { + "light": "/logo/light.svg", + "dark": "/logo/dark.svg" + }, + "api": { + "openapi": "openapi.yaml", + "mdx": { + "server": "https://livepeer.studio/api" + } + }, + "appearance": { + "default": "dark" + }, + "search": { + "prompt": "Need help? Ask our AI" + }, + "footer": { + "links": [ + { + "header": "links", + "items": [ + { "label": "custom link here", "href": "https://livepeer.org" }, + { "label": "custom link here", "href": "https://livepeer.org" }, + { "label": "custom link here", "href": "https://livepeer.org" } + ] + } + ], + "socials": { + "website": "https://forum.livepeer.org", + "github": "https://github.com/livepeer", + "twitter": "https://twitter.com/livepeer", + "discord": "https://discord.gg/livepeer", + "linkedin": "https://www.linkedin.com/company/livepeer" + } + }, + "integrations": { + "ga4": { + "measurementId": "G-P1Z15F6NX4" + } + }, + "navbar": { + "links": [ + { + "label": "", + "href": "https://twitter.com/Livepeer", + "icon": "x-twitter" + }, + { + "label": "", + "href": "https://github.com/livepeer", + "icon": "github" + }, + { + "label": "", + "href": "https://discord.gg/livepeer", + "icon": "discord" + } + ] + }, + "redirects": [ + { + "source": "/v2/pages/07_resources/redirect", + "destination": "/v2/pages/07_resources/resources_hub" + }, + { + "source": "/v2/pages/08_help/redirect", + "destination": "/v2/pages/08_help/README" + }, + { + "source": "/v1/guides/developing/quickstart", + "destination": "/v1/developers/quick-start" + }, + { + "source": "/v1/guides/overview", + "destination": "/v1/developers/guides/overview" + }, + { + "source": "/v1/guides/developing/player", + "destination": "/v1/developers/guides/playback-an-asset" + }, + { + "source": "/v1/guides/developing/create-a-livestream", + "destination": "/v1/developers/guides/create-livestream" + }, + { + "source": "/v1/guides/developing/stream-via-obs", + "destination": "/v1/developers/guides/stream-via-obs" + }, + { + "source": "/v1/developing/stream-via-browser", + "destination": "/v1/developers/guides/livestream-from-browser" + }, + { + "source": "/v1/guides/developing/upload-a-video-asset", + "destination": "/v1/developers/guides/upload-video-asset" + }, + { + "source": "/v1/guides/developing/mint-a-video-nft", + "destination": "/v1/developers/guides/mint-video-nft" + }, + { + "source": "/v1/guides/developing/dstorage-playback", + "destination": "/v1/developers/guides/dstorage-playback" + }, + { + "source": "/v1/developers/guides/dstorage-playback", + "destination": "/v1/developers/guides/upload-video-asset" + }, + { + "source": "/v1/guides/developing/access-control", + "destination": "/v1/developers/guides/access-control-webhooks" + }, + { + "source": "/v1/guides/developing/access-control-vod", + "destination": "/v1/developers/guides/access-control-webhooks" + }, + { + "source": "/v1/guides/developing/encrypted-vod", + "destination": "/v1/developers/guides/encrypted-asset" + }, + { + "source": "/v1/guides/developing/listen-for-webhooks", + "destination": "/v1/developers/guides/setup-and-listen-to-webhooks" + }, + { + "source": "/v1/guides/developing/multistream", + "destination": "/v1/developers/guides/multistream" + }, + { + "source": "/v1/guides/developing/monitor-stream-health", + "destination": "/v1/developers/guides/monitor-stream-health" + }, + { + "source": "/v1/guides/developing/viewer-engagement", + "destination": "/v1/developers/guides/get-engagement-analytics-via-api" + }, + { + "source": "/v1/guides/developing/transcode-video-storj", + "destination": "/v1/developers/guides/transcode-video-storj" + }, + { + "source": "/v1/guides/developing/transcode-video-w3s", + "destination": "/v1/developers/guides/transcode-video-w3s" + }, + { + "source": "/v1/tutorials/developing/optimize-latency", + "destination": "/v1/developers/guides/optimize-latency-of-a-livestream" + }, + { + "source": "/v1/tutorials/developing/analyze-engagement-timeplus", + "destination": "/v1/developers/guides/get-engagement-analytics-via-timeplus" + }, + { + "source": "/v1/tutorials/developing/visualize-engagement-metrics-grafana", + "destination": "/v1/developers/guides/get-engagement-analytics-via-grafana" + }, + { + "source": "/v1/tutorials/developing/token-gate-videos-using-guildxyz", + "destination": "/v1/developers/tutorials/token-gate-videos-with-lit" + }, + { + "source": "/v1/tutorials/developing/token-gate-videos-using-lit", + "destination": "/v1/developers/tutorials/token-gate-videos-with-lit" + }, + { + "source": "/v1/tutorials/developing/build-decentralized-video-app-with-fvm", + "destination": "/v1/developers/tutorials/decentralized-app-with-fvm" + }, + { + "source": "/v1/tutorials/developing/upload-playback-videos-on-ipfs-4everland", + "destination": "/v1/developers/tutorials/upload-playback-videos-4everland" + }, + { + "source": "/v1/tutorials/developing/upload-playback-videos-on-ipfs", + "destination": "/v1/developers/tutorials/upload-playback-videos-on-ipfs" + }, + { + "source": "/v1/tutorials/developing/upload-playback-videos-on-arweave", + "destination": "/v1/developers/tutorials/upload-playback-videos-on-arweave" + }, + { + "source": "/v1/reference/api", + "destination": "/v1/api-reference/overview/introduction" + }, + { + "source": "/v1/reference/deployed-contract-addresses", + "destination": "/v1/references/contract-addresses" + }, + { + "source": "/v1/reference/example-applications", + "destination": "/v1/references/example-applications" + }, + { + "source": "/v1/reference/api-support-matrix", + "destination": "/v1/references/api-support-matrix" + }, + { + "source": "/v1/reference/go-livepeer", + "destination": "/v1/references/go-livepeer/bandwidth-requirements" + }, + { + "source": "/v1/reference/go-livepeer/cli-reference", + "destination": "/v1/references/go-livepeer/cli-reference" + }, + { + "source": "/v1/reference/go-livepeer/gpu-support", + "destination": "/v1/references/go-livepeer/gpu-support" + }, + { + "source": "/v1/reference/go-livepeer/hardware-requirements", + "destination": "/v1/references/go-livepeer/hardware-requirements" + }, + { + "source": "/v1/reference/go-livepeer/bandwidth-requirements", + "destination": "/v1/references/go-livepeer/bandwidth-requirements" + }, + { + "source": "/v1/reference/go-livepeer/prometheus-metrics", + "destination": "/v1/references/go-livepeer/prometheus-metrics" + }, + { + "source": "/v1/guides/delegating/bridge-lpt-to-arbitrum", + "destination": "/v1/delegators/guides/bridge-lpt-to-arbitrum" + }, + { + "source": "/v1/guides/delegating/migrate-stake-to-arbitrum", + "destination": "/v1/delegators/guides/migrate-stake-to-arbitrum" + }, + { + "source": "/v1/delegators/reference/yield-calculation", + "destination": "/v1/delegators/guides/yield-calculation" + }, + { + "source": "/v1/guides/orchestrating/get-started", + "destination": "/v1/orchestrators/guides/get-started" + }, + { + "source": "/v1/guides/orchestrating/install-go-livepeer", + "destination": "/v1/orchestrators/guides/install-go-livepeer" + }, + { + "source": "/v1/guides/orchestrating/connect-to-arbitrum", + "destination": "/v1/orchestrators/guides/connect-to-arbitrum" + }, + { + "source": "/v1/guides/orchestrating/configure-reward-calling", + "destination": "/v1/orchestrators/guides/configure-reward-calling" + }, + { + "source": "/v1/guides/orchestrating/set-session-limits", + "destination": "/v1/orchestrators/guides/set-session-limits" + }, + { + "source": "/v1/guides/orchestrating/set-pricing", + "destination": "/v1/orchestrators/guides/set-pricing" + }, + { + "source": "/v1/guides/orchestrating/benchmark-transcoding", + "destination": "/v1/orchestrators/guides/benchmark-transcoding" + }, + { + "source": "/v1/guides/orchestrating/assess-capabilities", + "destination": "/v1/orchestrators/guides/assess-capabilities" + }, + { + "source": "/v1/guides/orchestrating/monitor-metrics", + "destination": "/v1/orchestrators/guides/monitor-metrics" + }, + { + "source": "/v1/guides/orchestrating/vote", + "destination": "/v1/orchestrators/guides/vote" + }, + { + "source": "/v1/guides/orchestrating/dual-mine", + "destination": "/v1/orchestrators/guides/dual-mine" + }, + { + "source": "/v1/guides/orchestrating/o-t-split", + "destination": "/v1/orchestrators/guides/o-t-split" + }, + { + "source": "/v1/guides/orchestrating/migrate-to-arbitrum", + "destination": "/v1/orchestrators/guides/migrate-to-arbitrum" + }, + { + "source": "/v1/guides/orchestrating/migrate-from-contract-wallet", + "destination": "/v1/orchestrators/guides/migrate-from-contract-wallet" + }, + { + "source": "/v1/guides/orchestrating/gateway-introspection", + "destination": "/v1/orchestrators/guides/gateway-introspection" + }, + { + "source": "/v1/guides/orchestrating/troubleshoot", + "destination": "/v1/orchestrators/guides/troubleshoot" + }, + { + "source": "/v1/reference/react", + "destination": "/v1/react/getting-started" + }, + { + "source": "/v1/reference/react/getting-started", + "destination": "/v1/react/getting-started" + }, + { + "source": "/v1/reference/react/client", + "destination": "/v1/react/getting-started" + }, + { + "source": "/v1/reference/react/LivepeerConfig", + "destination": "/v1/sdks/react/migration/3.x/LivepeerConfig" + }, + { + "source": "/v1/reference/react/Player", + "destination": "/v1/react/player/Root" + }, + { + "source": "/v1/reference/react/Broadcast", + "destination": "/v1/react/broadcast/Root" + }, + { + "source": "/v1/reference/react/providers/studio", + "destination": "/v1/sdks/react/migration/3.x/providers/studio" + }, + { + "source": "/v1/reference/react/asset/useAsset", + "destination": "/v1/sdks/react/migration/3.x/asset/useAsset" + }, + { + "source": "/v1/reference/react/asset/useCreateAsset", + "destination": "/v1/sdks/react/migration/3.x/asset/useCreateAsset" + }, + { + "source": "/v1/reference/react/asset/useAssetMetrics", + "destination": "/v1/sdks/react/migration/3.x/asset/useAssetMetrics" + }, + { + "source": "/v1/reference/react/asset/useUpdateAsset", + "destination": "/v1/sdks/react/migration/3.x/asset/useUpdateAsset" + }, + { + "source": "/v1/reference/react/stream/useStream", + "destination": "/v1/sdks/react/migration/3.x/stream/useStream" + }, + { + "source": "/v1/reference/react/stream/useStreamSession", + "destination": "/v1/sdks/react/migration/3.x/stream/useStreamSession" + }, + { + "source": "/v1/reference/react/stream/useStreamSessions", + "destination": "/v1/sdks/react/migration/3.x/stream/useStreamSessions" + }, + { + "source": "/v1/reference/react/stream/useCreateStream", + "destination": "/v1/sdks/react/migration/3.x/stream/useCreateStream" + }, + { + "source": "/v1/reference/react/stream/useUpdateStream", + "destination": "/v1/sdks/react/migration/3.x/stream/useUpdateStream" + }, + { + "source": "/v1/reference/react/playback/usePlaybackInfo", + "destination": "/v1/sdks/react/migration/3.x/playback/usePlaybackInfo" + }, + { + "source": "/v1/reference/react/constants/abis", + "destination": "/v1/sdks/react/migration/3.x/constants/abis" + }, + { + "source": "/v1/reference/react/constants/contract-addresses", + "destination": "/v1/sdks/react/migration/3.x/constants/contract-addresses" + } + ] +} diff --git a/mint.json b/mintOld.json similarity index 97% rename from mint.json rename to mintOld.json index b70dc247..ab684bf8 100644 --- a/mint.json +++ b/mintOld.json @@ -336,12 +336,7 @@ "url": "https://discord.gg/livepeer" } ], - "versions": [ - "Developers", - "Delegators", - "Orchestrators", - "Gateways" - ], + "versions": ["Developers", "Delegators", "Orchestrators", "Gateways"], "topbarCtaButton": { "name": "Dashboard", "url": "https://livepeer.studio" @@ -430,9 +425,7 @@ { "group": "Webhooks", "icon": "bell", - "pages": [ - "developers/guides/setup-and-listen-to-webhooks" - ] + "pages": ["developers/guides/setup-and-listen-to-webhooks"] }, { "group": "Transcode API", @@ -454,9 +447,7 @@ { "group": "Projects", "icon": "folder-open", - "pages": [ - "developers/guides/managing-projects" - ] + "pages": ["developers/guides/managing-projects"] }, { "group": "Integrations", @@ -582,9 +573,7 @@ "group": "How to Contribute", "icon": "heart", "iconType": "solid", - "pages": [ - "ai/contributors/coming-soon" - ] + "pages": ["ai/contributors/coming-soon"] }, { "group": "SDKs", @@ -645,17 +634,11 @@ }, { "group": "Overview", - "pages": [ - "sdks/introduction" - ] + "pages": ["sdks/introduction"] }, { "group": "Server-side SDKs", - "pages": [ - "sdks/javascript", - "sdks/go", - "sdks/python" - ] + "pages": ["sdks/javascript", "sdks/go", "sdks/python"] }, { "group": "React Components", @@ -734,10 +717,7 @@ { "group": "Examples", "icon": "clipboard", - "pages": [ - "sdks/react/Player", - "sdks/react/Broadcast" - ] + "pages": ["sdks/react/Player", "sdks/react/Broadcast"] }, { "group": "Migration", @@ -773,9 +753,7 @@ }, { "group": "Playback", - "pages": [ - "sdks/react/migration/3.x/playback/usePlaybackInfo" - ] + "pages": ["sdks/react/migration/3.x/playback/usePlaybackInfo"] }, { "group": "Constants", diff --git a/snippets/automationData/blog/ghostBlogData.jsx b/snippets/automationData/blog/ghostBlogData.jsx new file mode 100644 index 00000000..bcaf70db --- /dev/null +++ b/snippets/automationData/blog/ghostBlogData.jsx @@ -0,0 +1,191 @@ +export const ghostData = [ + { + title: `A Real-time Update to the Livepeer Network Vision`, + href: `https://blog.livepeer.org/a-real-time-update-to-the-livepeer-network-vision/`, + author: `By Livepeer Team`, + content: `

For the past year, the Livepeer Ecosystem has been guided by the Cascade vision:  a path to transition from a pure streaming and transcoding infrastructure, to an infrastructure that could succeed at providing compute for the future of real-time AI video. The latest Livepeer quarterly report from Messari highlights that this transition is paying off, with network fees up 3x from this time last year, and over 72% of the fees now driven via AI inference. This is exemplified by the growing inspirational examples emerging from Daydream powered real-time AI, and real-time Agent avatar generation through Embody and the Agent SPE.

Source: Livepeer Q3 2025 Report by Messari

This shift has been an ecosystem wide effort – ranging from branding and communications, to productization and go to market, to hardware upgrades for orchestrators. It has successfully shifted the project under an updated mission and direction, however it has still left ambiguity in terms of what the Livepeer network itself offers as killer value propositions to new builders outside of the existing ecosystem. Is it a GPU cloud? A transcoding infra? An API engine? Now that there are signs of validation and accelerated momentum around an exciting opportunity, it’s time to really hone in on a refined vision for the future of the Livepeer network as a product itself. 

The market for video is set to massively expand

The concept of live video itself is expanding well beyond a simple single stream of video captured from a camera. Now entire worlds and scenes are generated or enhanced in real-time via AI assistance, leading to more immersive and interactive experiences than possible via old-school streaming alone. For a taste of the future, see the following examples:

  1. The future of gaming will be AI generated video and worlds in real-time:

AI games are going to be amazing

(sound on) pic.twitter.com/66aOdWJr4Y

— Matt Shumer (@mattshumer_) October 23, 2025
+
  1. Video streams can be analyzed and data leveraged programmatically in real-time, for instant insight generation and decision making:

3 years since I joined roboflow

- 68k stars on github
- 60 videos and streams on youtube
- 2.5M views in total
- 40 technical blogposts

↓ coolest stuff I made pic.twitter.com/EMy5qWq1Vp

— SkalskiP (@skalskip92) October 29, 2025
+
  1. Real-time style transfer can enable avatars and agents to participate in the global economy:

🇨🇳 We’re screwed … it becomes indistinguishable from reality

Ali’s Wan 2.2 lets you stream without showing your face. It maps your voice and motion onto another face. pic.twitter.com/iD4nQIVaRY

— Lord Bebo (@MyLordBebo) October 30, 2025
+

Video world models and real-time AI video are merging, as they both use AI to generate frame-by-frame video output with low latency on the fly, based on user input and AI inference. This requires a tremendous amount of GPU compute, and requires an amazing low latency video streaming and compute stack – two areas in which the Livepeer network and community thrive, and two areas to which the many other generic GPU inference providers in the market bring no unique skillset, experience, or software advantage. 

The big opportunity for the Livepeer network is to be the leading AI Infrastructure For Real-Time Video.
From interactive live streaming to generative world models, Livepeer’s open-access, low-latency network of GPUs will be the best compute solution for cutting edge AI video workflows. 

World models are a game changing category, and Livepeer is well suited to offer a unique and differentiated product here, that serves a huge market of diverse and varying use cases. These range from creative entertainment, to gaming, to robotics, to data analysis, to monitoring and security, to synthetic data generation for AGI itself.

While an ambitious stretch, Nvidia executives responsible for the category have even projected that due to the impact in robotics, the economic opportunity for world models could exceed $100 trillion, or approximately the size of the entire global economic output itself!  

What does it mean to productize the Livepeer network to succeed as a valuable infrastructure in this category?

From a simplified viewpoint, it needs to deliver on the following:

1. Ability for users to deploy real-time AI workflows to the Livepeer network and request inference on them

2. Industry leading latency for providing inference on real-time AI and world model workflows.

3. Cost effective scalability – users can pay as they go to scale up and down capacity and the network automagically delivers the scale required.

Imagine a gaming platform is powering world-model generated games using their unique workflows that generate game levels or areas in a certain style by combining several real-time models, LLMs, and style transfer mechanisms. Each game its powering has users exploring and creating their own corners of the interactive worlds, based on prompts and gameplay inputs. Every gamer that joins a game represents a new stream of AI video compute, and the Livepeer network is the backing infrastructure that provides the compute for this video world generation, leveraging hundreds or thousands of GPUs concurrently.

For this to be possible the Livepeer network needs to enable that game platform to deploy their game generation workflow. It needs to offer low latency on the inference that runs this workflow, relative to the generic GPU compute clouds. The pricing needs to be competitive vs alternative options in the market for this GPU compute. And the network needs to allow this company to scale up and down the number of GPUs that are currently live ready to accept new real-time inference streams based on the number of users currently live on the games it is powering.

All of this is possible on the Livepeer network, and it isn’t far away from where we are now. If we work to build, test, and iterate on the Livepeer network itself towards supporting the latency and scale required for these types of workflows, we’ll be set up to power them.
Now multiply this example gaming company by the high number of diverse industries and verticals that real-time AI and world models will touch. Each category can have one or multiple companies competing to leverage this scalable and cost effective infrastructure for unique go to markets targeting different segments. And they can all be powered by the Livepeer network’s unique value propositions.

Livepeer’s core network is strategically positioned

What are these value propositions that make the Livepeer network differentiated relative to alternative options in the market? I’d argue that there are three primary, table stakes, must-have value propositions if Livepeer is to succeed. 

1. Industry standard low latency infrastructure specializing in real-time AI and world model workflows: First of all, the network needs to let its users deploy custom workflows. Inference alone on base models is not enough and does not represent scaled demand. Users want to take base models, chain them together with other models and pre/post processors, and create unique and specialized capabilities. When one of these capabilities is defined as a workflow, that is the unit that needs to be deployed as a job on the Livepeer network, and the network needs to be able to run inference on it. Secondly, for these real-time interactive use cases, latency matters a lot. Generic GPU clouds don’t offer the specialized low latency video stacks to ingest, process, and serve video with optimal latency, but Livepeer does. And Livepeer needs to benchmark itself to have lower or equal latency to alternative GPU clouds for these particular real-time and world model use cases.

2. Cost effective scalability: GPU provisioning, reservations, and competing for scarce supply procurement creates major challenges for AI companies – often overpaying for GPUs that sit idle most of the time in order to guarantee the capacity that they need. The Livepeer network’s value proposition is that users should be able to “automagically” scale up almost instantly and pay on demand for the compute that they use, rather than having to pre-pay for reservations and let capacity sit idle. This is enabled by Livepeer taking advantage of otherwise existing idle longtail compute through its open marketplace, and its supply side incentives. The Livepeer network needs to be more cost effective than alternative GPU clouds within this category - with impacts comparable to the 10x+ cost reduction already demonstrated in live video transcoding delivered by the network.

3. Community driven, open source, open access: The Livepeer project and software stack is open source. Users can control, update, and contribute to the software they are using. They also can be owners in the infrastructure itself through the Livepeer Token, and can benefit from the network’s improvements and adoption, creating a network effect. The community that cares about its success and pushes it forward collectively, can be a superpower, relative to the uncertain and shaky relationship between builders and centralized platform providers, who have a history of getting rugged based on limitations to access, changes in functionality, or discontinuity of the platforms. Anyone can build on the Livepeer network regardless of location, jurisdiction, use case, or central party control.

The above are primary value propositions that should appeal to nearly all users. And we must work to close the gaps to live up to those value props before we could successfully hope to go to market and attract new vertical-specific companies to build directly on top of the network. Luckily, in addition to all of Livepeer’s streaming users, we have a great realtime AI design partner in Daydream, which is already going to market around creative real-time AI, using the network, and contributing to its development to live up to these requirements. While building with this design partner, the ecosystem should be working to productize to live up to these promises in a more generic perspective – it should be setting up benchmarks, testing frameworks, and building mechanisms for scaling up supply ahead of demand, so that it can represent this power to the world alongside successful Daydream case studies.

Opportunities to push towards this vision

To truly live up to these value propositions, there are a number of opportunities for the community to focus on in order to close some key gaps. There are many details to come in more technical posts laying out roadmaps and execution frameworks, but at a high level, consider a series of milestones that take the network as a product from technically functional, to production usable, to extensible, to infinitely scalable:

  1. Network MVP - Measure what matters: Establish key network performance SLAs, measure latency and performance benchmarks, and enhance the low latency client to support realtime AI workflows above industry grade standards.
  2. Network as a Product - Self adaptability and scalability: Network delivers against these SLAs and core value props for supported realtime AI workflows. Selection algorithms, failovers and redundancy, and competitive market price discovery established for realtime AI.
  3. Extensibility - Toolkit for community to deploy workflows and provision resources: Workflow deployment and signaling, LPT incentive updates to ensure compute supply for popular AI workflows exceeds demand.
  4. Parallel Scalability: Manage clusters of resources on the network for parallel workflow execution, truly unlocking job types beyond single-GPU inference. 

Many teams within the ecosystem, from the Foundation, to Livepeer Inc, to various SPEs have already started operationalizing around how they’ll be contributing to milestones 1 and 2 to upgrade the network to deliver against these key realtime AI value propositions. 

Conclusion and Livepeer’s opportunity

 The market for the opportunity to be the GPU infrastructure that powers real-time AI and world models is absolutely massive – the compute requirements are tremendous - 1000x that of AI text or images - and real-time interaction with media represents a new platform that will affect all of the above-mentioned industries. The Livepeer network can be the infrastructure that powers it. How we plan to close the needed gaps and achieve this will be the subject of an upcoming post. But when we do prove these value propositions, Livepeer will have a clear path to 100x the demand on the network

The likely target market users for the network are those startups that are building out vertical specific businesses on top of real-time AI and world model workflows. The ecosystem should look to enable one (or multiple!) startups in each category going after building real-time AI platforms that serve gaming, that serve robotics, that serve synthetic data generation, that serve monitoring and analysis, and all the additional relevant categories. The network’s value propositions will hopefully speak for themselves, but in the early stages of this journey, it is likely the ecosystem will want to use incentives (like investment or credits) to bootstrap these businesses into existence. Each will represent a chance at success, and will bring more demand and proof.

Ultimately, many users of these platforms may choose to build direct on the network themselves. Similarly to how startups start to build on platforms like Heroku, Netlify, or Vercel, and then as they scale and need more control and cost savings they build direct on AWS, and then ultimately move to their own datacenters after reaching even more scale – users of Daydream or a real-time Agent platform built on Livepeer, may ultimately choose to run their own gateways to recognize the cost savings and control and full feature set that comes from doing so. This is a good thing! As it represents even more usage and scale for the network, more proof that as an infrastructure the Livepeer network has product market fit, and that it can absorb all workflows directly. The businesses built on top will provide their own vertical specific bundles of features and services that onboard that vertical specific capacity, but they’ll be complemented by and enabled by the Livepeer Network’s superpowers.

While there’s a lot of work ahead, the Livepeer community has already stepped up to cover tremendous ground on this mission. At the moment by already powering millions of minutes of real-time AI inference per week, by our orchestrators already upgrading their capacity and procurement mechanisms to provide real-time AI-capable compute, and by the Foundation groups already working to evaluate the networks incentives and cryptoeconomics to sustainably fund and reward those contributing to this effort, we’re set up well to capture this enormous opportunity!

`, + datePosted: `Nov 13, 2025`, + img: `https://blog.livepeer.org/content/images/2025/11/LP_Blog-Header_Nov25_01_moshed-1.png`, + excerpt: `For the past year, the Livepeer Ecosystem has been guided by the Cascade vision:  a path to transition from a pure streaming and transcoding infrastructure, to an infrastructure that could succeed at providing compute for the future of real-time AI video. The latest Livepeer quarterly report from Messari highlights that this transition is paying off, with network fees up 3x from this time last year, and over 72% of the fees now driven via AI inference. This is exemplified by the growing inspirat`, + readingTime: 9, + }, + { + title: `Livepeer Onchain Builders - Streamplace: Building the Video Backbone of Decentralized Social`, + href: `https://blog.livepeer.org/livepeer-onchain-builders-streamplace-building-the-video-backbone-of-decentralized-social/`, + author: `By Livepeer Team`, + content: `

Welcome to Livepeer Onchain Builders, a new content series spotlighting the Special Purpose Entities (SPEs) funded by the Livepeer onchain treasury. SPEs are working groups funded by the community treasury to work on specific tasks and are accountable to the community for their delivery. These deep dives will explore how each initiative is driving protocol usage, expanding infrastructure, and pushing the boundaries of what’s possible in decentralized video and AI.

Streamplace is an open-source video streaming platform designed to power decentralized social applications with real-time, creator-first infrastructure. It aims to make livestreaming and video hosting as seamless as TikTok or YouTube, but built on open protocols and self-sovereign identity.

What makes it ambitious? Streamplace is not only building full-stack video infra for federated social networks, it's doing so in a way that prioritizes interoperability, scalability, and public goods. From developer SDKs to end-user apps, Streamplace is building an entire ecosystem.

What is an SPE? 

A Special Purpose Entity (SPE) is a focused, community-funded team contributing to the Livepeer ecosystem. SPEs are typically mission-driven groups that operate independently to build infrastructure, applications, or tooling that expand and improve the Livepeer protocol. These teams are funded through proposals to the onchain treasury and are accountable to the community.

SPEs are necessary for the ecosystem because no single team can build every part of a decentralized protocol. SPEs decentralize development, fund public goods, and allow the community to direct resources where they're most needed.

Why do they matter to delegators and stakeholders? Because SPEs grow in usage. More usage = more fees = more rewards. Delegators benefit when the protocol succeeds, and SPEs are among the most direct ways to make that happen.

From Aquareum to Streamplace

A clear goal drives the team behind Streamplace: to build the foundational video infrastructure for the next generation of decentralized social platforms. These platforms, such as Farcaster and the AT Protocol, promise user-owned identity and interoperability, but have thus far lacked robust support for live and on-demand video.

Streamplace solves this by providing a full-stack, developer-friendly video layer that anyone can plug into. It's a bold attempt to make decentralized video feel as native and easy as its Web2 counterparts.

Streamplace started as Aquareum, a project with the same mission and team. This evolution into Streamplace is a rebranding, not a restart, building on past momentum with a sharper focus.

Their vision is to give every user the ability to publish, stream, and remix content with the same ease as TikTok or YouTube, but backed by self-sovereign identity and decentralized networks.

Streamplace homepage

The first proposal delivered:

Now, Streamplace continues that momentum with 100,000 LPT in treasury funding and a clear mandate to scale.

Streamplace Graphana dashboard

Why Streamplace Matters

Video is the heart of online social interaction. Yet decentralized social networks have lagged in providing seamless, user-friendly video experiences. Streamplace addresses this by:

Decentralized social, spanning protocols like Farcaster, AT Protocol, and Bluesky, represents a movement toward user-owned networks and open standards. These networks are gaining traction, but video remains a missing layer. That’s where Streamplace comes in.

Video is essential because it's the most engaging, expressive medium for creators and communities. And as these decentralized platforms scale, having real-time, composable video becomes non-negotiable.

Streamplace positions itself as the default video infra layer for this new social stack, and with every stream transcoded through Livepeer, it's also a major driver of protocol usage and visibility.

What Streamplace 2.0 Will Deliver

This new phase of work, funded by the Livepeer treasury, focuses on scale, performance, and ecosystem integration:

Infrastructure Enhancements

Protocol and Developer Growth

Community-First Ethos

The Livepeer Angle

Livepeer's decentralized video infrastructure powers every second of video on Streamplace. That means more work for orchestrators, more fees flowing through the protocol, and more incentive for high-quality node operation.

Streamplace strengthens the Livepeer ecosystem in three key ways:

Without Livepeer, a decentralized video stack like Streamplace wouldn’t be possible. And without ambitious apps like Streamplace, Livepeer wouldn’t have the same opportunity to prove its value at scale.

Final Thoughts

Streamplace is a keystone piece of open video infrastructure and a cornerstone in the emerging world of decentralized social media. By fusing creator-first tooling with Livepeer’s scalable infrastructure, it offers a glimpse into what the open internet can become.

As decentralized protocols shift from vision to adoption, the need for native video is urgent. Streamplace, with the support of the Livepeer treasury and a relentless commitment to open-source infrastructure, is meeting that need head-on.

If you're a developer, creator, or community builder, now is the time to get involved.

Do you want to contribute to Streamplace's success? Explore the open roles here.

Interested in building or contributing to the Livepeer ecosystem? Learn more about current and past SPEs, open opportunities, and how to submit your own proposal here.

Follow along, fork the code, or join a stream — the future of social video is open.

Streamplace App

Streamplace Proposal

Aquareum Proposal


Livepeer is a decentralized video infrastructure network for live and on-demand streaming. It has integrated AI Video Compute capabilities (Livepeer AI) by harnessing its massive GPU network and is not building the future of real-time AI video.

Twitter | Discord | Website

`, + datePosted: `Aug 14, 2025`, + img: `https://blog.livepeer.org/content/images/2025/08/Onchain-Builders-Streamplace.jpg`, + excerpt: `Welcome to Livepeer Onchain Builders, a new content series spotlighting the Special Purpose Entities (SPEs) funded by the Livepeer onchain treasury. SPEs are working groups funded by the community treasury to work on specific tasks and are accountable to the community for their delivery. These deep dives will explore how each initiative is driving protocol usage, expanding infrastructure, and pushing the boundaries of what’s possible in decentralized video and AI. + +Streamplace is an open-source `, + readingTime: 5, + }, + { + title: `Builder Story: dotsimulate x Daydream`, + href: `https://blog.livepeer.org/builder-story-dotsimulate-x-daydream/`, + author: `By Livepeer Team`, + content: `

Building StreamDiffusionTD Operator - a Real-Time Generative Video Operator for TouchDesigner, Powered by the Daydream API

Creator:
Lyell Hintz (@dotsimulate)
Operator: StreamDiffusionTD
Backends Supported: Local + Daydream (Livepeer)

+
+ +
+ +
+
+
+ + + 0:00 +
+ /0:34 +
+ + + + + +
+
+
+ +

Overview

StreamDiffusionTD is a TouchDesigner operator that connects real-time inputs like audio, sensors, and camera feeds to StreamDiffusion, enabling live generative visuals controlled in real time. With the Daydream API, it adds remote inference capabilities on top of the existing local GPU inference and unlocks more flexibility for users.

Built by Lyell Hintz, a technical artist and TouchDesigner developer, the operator is used in live shows, installations, and experimental workflows.

Why It Was Built

Lyell began working on the operator a few hours after StreamDiffusion was released on GitHub. He wanted to use it in TouchDesigner - a powerful tool for real time interactive content creation.

“TouchDesigner is the only place this could be controlled from… it can hook into everything else.”

From the start, he avoided creating a “black box.” The operator exposes core parameters like prompt, seed, and ControlNet weights, allowing users to adjust values and see results immediately.

Key Features

+
+ +
+ +
+
+
+ + + 0:00 +
+ /0:26 +
+ + + + + +
+
+
+ +

Daydream API Integration

StreamDiffusionTD works with the Daydream API, which allows the operator to run on a remote GPU backend. This eliminates the major barrier of requiring a high-end PC with an NVIDIA RTX 4090 to run StreamDiffusion at professional quality, unlocking the flexibility to run it from any location, on any device form factor.

Just drop in your API key and hit “Start Stream.” The backend handles orchestration, model hosting, and frame delivery, so builders can stay focused on their creative and technical workflows.

Setup takes less than 1 minute and once installed, the configuration is remembered for future use.Daydream’s API brings new features to StreamDiffusion:

Daydream is adding support for more real time video generation models, and developers can request features, suggest improvements, or build on top of the API itself. It aligns with the values of open tooling and community-led infrastructure.

How Artists can use StreamDiffusionTD in TouchDesigner

Because it's built inside TouchDesigner, the operator can be extended using Python, MIDI, OSC, or any other input TouchDesigner supports.

Current State

The operator is live and ready to use, with active development underway for new features and improved performance. It’s a great time to jump in, explore, and help shape what comes next.

Try it Yourself

Operator Access: patreon.com/dotsimulate
Community and Support: discord.gg/daydreamlive
API Keys can be requested here

`, + datePosted: `Aug 5, 2025`, + img: `https://blog.livepeer.org/content/images/2025/08/DD_Builder-Story_dotsimulate_01.png`, + excerpt: `Building StreamDiffusionTD Operator - a Real-Time Generative Video Operator for TouchDesigner, Powered by the Daydream API + +Creator: Lyell Hintz (@dotsimulate) +Operator: StreamDiffusionTD +Backends Supported: Local + Daydream (Livepeer) + + + + + + + + + + + + + + + + + + + + + + + + +0:00 + +/0:34 + + +1× + + + + + + + + + + + + + + + + + +Overview + +StreamDiffusionTD is a TouchDesigner operator that connects real-time inputs like audio, sensors, and camera feeds to StreamDiffusion, enabling live generative visuals controlled in real time. Wit`, + readingTime: 2, + }, + { + title: `Livepeer Incorporated! (and realtime AI)`, + href: `https://blog.livepeer.org/livepeer-incorporated-and-realtime-ai/`, + author: `By Livepeer Team`, + content: `

Written by Doug Petkanics, Co-founder and CEO at Livepeer Inc

The past 18 months have been an energizing time to be in the Livepeer Ecosystem. An onchain treasury was introduced to fund public goods via community governance, the community has coalesced around Livepeer’s opportunity to be the leading infrastructure for realtime AI video, and fees and usage of the network have been steadily increasing due to this focus. The Livepeer Foundation has recently launched to steward the 10+ entities in the ecosystem that are core contributors to the project, and is unlocking even more funding around the opportunities recommended in the project’s strategic pillars.

With so much core development, marketing, and growth driven by the ecosystem at large, the company that I co-founded and operate, Livepeer Incorporated, has had the opportunity to shift its focus to what we deem to be the highest priority area of the project where we feel uniquely suited to make an outsized impact: executing a high conviction go to market motion in an attempt to dramatically grow demand on the Livepeer network. We, like many in the ecosystem, are fully bought in to the realtime AI video vision laid out in Livepeer Cascade, and are solely focused on productization to find product market fit for the Livepeer network as the leading infrastructure in the coming world of live video AI. Here is a bit about what Livepeer Inc is focused on, and almost equally as importantly, what we are not focused on in the coming 12 months.

Product Market Fit for Realtime AI Video 

As mentioned, the number one priority is to prove that the Livepeer network has product market fit as an infrastructure that runs the latest and greatest in realtime AI video workflows for developers. To do this, we’ll focus on three core things:

  1. Contribute to core network development to ensure Livepeer is an infrastructure that can run realtime AI video workflows.
  2. Build the developer APIs to run these workflows that developers use to build them into applications. This is a natural extension of Livepeer Studio
  3. Cultivate the leading realtime AI video community. Researchers, builders, and creators interested in this coming category need a home. They will provide the moat that ensures that an open, community led infrastructure will always be more responsive, cost effective, and full featured than centralized alternatives.

We’re going to provide the full stack product, engineering, community, and go to market motion to validate product market fit for this opportunity. This will drive significant fees and growth into the Livepeer network. We’re aligned as large LPT token holders and want the network to succeed - which represents a far bigger opportunity for Livepeer Inc than any revenue related opportunity via SaaS services in the short term. Let’s grow those network fees!

What Livepeer Inc is Not Focused On

While there are many potential products and go to markets that can be executed upon under an ambitious vision of being the world’s open video infrastructure, a single company is more likely to succeed by focusing on only one opportunity at a time. Many alternative demand generating bets will be better served by other self-motivated actors in the ecosystem - especially as the open source software around Livepeer, and the broader ecosystem has matured to the point of providing reliable access points for different categories of use cases.Regarding Livepeer Inc’s learnings on some of these categories:

A Simplified View: Foundation and Inc

While the above contains a lot of details about realtime AI and specific demand generating bets on the Livepeer network, there’s a simplified view:

If you’re interested in building within this ecosystem, there are lots of opportunities that both contribute to the core development and operations of the project in service of the realtime AI mission, but also to develop companies that service additional markets not currently being focused on. Hopefully the above post gives you a view into what some of those opportunities and gaps are. Then check out the Livepeer Foundation’s recent forum posts on tactical recommendations, and raise your hand to get involved in the ones of interest.

Join the Community
`, + datePosted: `Jul 31, 2025`, + img: `https://blog.livepeer.org/content/images/2025/07/e.png`, + excerpt: `Written by Doug Petkanics, Co-founder and CEO at Livepeer Inc + +The past 18 months have been an energizing time to be in the Livepeer Ecosystem. An onchain treasury was introduced to fund public goods via community governance, the community has coalesced around Livepeer’s opportunity to be the leading infrastructure for realtime AI video, and fees and usage of the network have been steadily increasing due to this focus. The Livepeer Foundation has recently launched to steward the 10+ entities in `, + readingTime: 5, + }, +] diff --git a/snippets/automationData/forum/Hero_Livepeer_Forum.png b/snippets/automationData/forum/Hero_Livepeer_Forum.png new file mode 100644 index 00000000..7805c1bd Binary files /dev/null and b/snippets/automationData/forum/Hero_Livepeer_Forum.png differ diff --git a/snippets/automationData/forum/forumData.jsx b/snippets/automationData/forum/forumData.jsx new file mode 100644 index 00000000..c25d3756 --- /dev/null +++ b/snippets/automationData/forum/forumData.jsx @@ -0,0 +1,38 @@ +export const forumData = [ + { + title: "It's time to ACT! Accumulation & the Treasury Ceiling", + href: 'https://forum.livepeer.org/t/3153', + author: 'By b3nnn (@b3nnn)', + content: + '

The onchain treasury was designed to provide sustainable public goods funding. It has supported many important and strategic contributions to the Livepeer Ecosystem. The AI SPE, Streamplace, Agent SPE and Cloud have all received funds and made important contributions. And through our onchain governance, the community have shown time and again their thoughtfulness and care for getting decisions right. Your desire to align decisions with long-term health has made us a shining example of simple but effective governance and how people can working together onchain.

The treasury is key to supporting strategic investments to improve UX for stakeholders, effectively manage protocol security, and fund other capital and resource needs for this exciting phase of the project.

As of now, the onchain treasury is currently not accumulating LPT. It was designed not to accept unlimited funding, hit the initial value set as the ceiling, and reset treasury contributions to 0% on or around 31st of March this year. There are a backlog of upcoming projects on highly strategic initiatives that will need treasury support, and we will all feel better about how to allocate funds if we have certainty that new funds are coming into the treasury.

I intend to post a LIP to turn on the treasury rewards again at their initial values:

The rate of 750000 LPT is currently set as the ceiling so would not be updated in the formal proposal

For what it’s worth, my personal bias is to increase one of these values, but I’m happy to punt that discussion to another day. Having seen the exciting things in the background that will require treasury support in coming weeks, the most pressing item for us as a community is to start getting the treasury repopulated.

I’ll be on the watercooler next week to discuss and am happy to set up an office hours to discuss direct if there is support for that. I look forward to proposing this for a community vote . If you have any input on the contribution percentage that goes into my proposal, please also share your input here.

', + replyCount: 7, + datePosted: 'Dec 3, 2025', + }, + { + title: 'Pre-proposal: IDOL - Improving Dex / Onchain Liquidity', + href: 'https://forum.livepeer.org/t/3151', + author: 'By b3nnn (@b3nnn)', + content: + '
TLDR

We propose to address known UX issues and ease and costs to participate by increasing DEX liquidity. Arrakis offers an optimal solution for our specific needs, and we are requesting 250,000 LPT for deployment to a Uniswap v4 pool which will significantly reduce slippage for ecosystem participants

Motivation

The Capital Markets Advisory board made improving onchain liquidity a tactical recommendation, specifically sighting:

In short, improved L2 Dex liquidity is essential for both current and future participants in Livepeer.

Recommended Solution

How to address our challenges is relatively straightforward to describe:

Any solution will require liquidity from the on-chain treasury to start bootstrapping an optimal asset mix. In addition to this liquidity requirement, using a traditional market maker is likely a major expense (in the range of $15-20K per month). While traditional market makers can do a good job in actively managing liquidity, especially on centralised exchanges, they often present new or additional challenges:

While none of this is insurmountable, it requires significant thought, effort and time to ensure oversight and manage risk.

Arrakis pro is an ideal solution to addresses these challenges.

Arrakis specifically addresses each of these challenges because:

Arrakis vaults hold ~$170M TVL and the team actively manages the on-chain liquidity for over 100 protocols. Projects such as MakerDAO, Lido, Morpho, Gelato, Redstone, Wormhole, Across, Euler, Usual, Syrup, Venice.ai, Ether.fi, etc. are benefiting from the high capital efficiency and cost effectiveness for DEX liquidity optimization enabled by Arrakis PRO.

For more information regarding Arrakis and Arrakis Pro, feel free to have a look at their docs or join their community:

Arrakis | Twitter | Resources

In addition, the team are present here and will address any questions directly - hello @Arrakis

The Ask

We want to significantly decrease slippage and costs for orchestrators and other participants to interact with the network through onchain liquidity.

We are asking for 250,000 LPT (approx. $1M in USD value) to be held in a multisig controlled by the Livepeer Foundation, to be deployed via an onchain vault with Arrakis as a concentrated pool on Uniswap v4.

Management of concentrated liquidity on Uniswap V4 allows for larger trades with minimal price impact, improving the overall trading experience. Savings to participants are substantial at approx. $1500 in slippage reduction on a $25,000 sale of LPT (estimate based on data below).

Comparison of current and estimated price impact (after successful ETH liquidity bootstrapping) for buying LPT and ETH across different amounts

Specification for Livepeer
  1. The Arrakis team uses the existing LPT/ETH pool on the 0.3% fee tier for UniswapV4

  2. Arrakis then deploys a dedicated vault managed by the Arrakis Pro smart contract for this LPT/ETH Uniswap pool.

  3. The Livepeer Foundation team establish a ⅔ Multisig for custody of the funds. If the proposal passes, funds are transferred onchain to this multisig account

  4. Through this Livepeer Foundation multisig, we deposit $1 million worth of $LPT into the Arrakis Pro vault. Transfers in and out of the vault are controlled by the multisig, meaning they cannot be deployed or moved by Arrakis elsewhere

  5. Arrakis Pro will allocate the provided liquidity in a concentrated and fully active market making strategy to facilitate trading on UniswapV4.

  6. The strategy initially operates to bootstrap ETH to establish a 50/50 inventory ratio over the first months. The primary objective is to create price stability by generating deep liquidity and reaching an even inventory over time.

For the services provided, Arrakis charges the following fees:

Arrakis Asset-under-Management (AUM) fee: 1% per year, waived for the first 6 months

Arrakis performance fee: 50% of trading fees the vault generates

FAQ

What are the risks of this model?

What happens to the capital required?

Will this impact the current liquidity on CEXs?

How does the Arrakis model differ from standard AMMs (like Uniswap v3)?

Will our liquidity still be actively managed, or will it be passively allocated in a vault?

How is the strategy for the vault determined — who sets the parameters, and how often are they rebalanced?

Who controls or can modify the AMM strategy parameters?

Will the community have visibility into performance and strategy updates?

What happens to the liquidity if the vault underperforms or becomes unbalanced?

How do fees compare to centralized market makers?

How will LP performance be measured?

What happens after funds are returned?

This is a large proportion of the current treasury. What gives?

', + replyCount: 3, + datePosted: 'Dec 1, 2025', + }, + { + title: 'Transformation SPE Release Notes', + href: 'https://forum.livepeer.org/t/3142', + author: 'By Mehrdad (@Mehrdad)', + content: + '

Release notes are a way to share work being completed by the Transformation SPE and it’s various contributors. Dive in and explore what has been happening and please reach out or reply with any questions and we will happily expand further.

', + replyCount: 2, + datePosted: 'Nov 10, 2025', + }, + { + title: 'Transcoder Campaign: organic-node.eth', + href: 'https://forum.livepeer.org/t/1970', + author: 'By Ron (@ron)', + content: + '

Hello fellow video enthusiast and web3 supporters,

Thanks for your time in reading my post. (organic-node.eth) Node has been active for about 6 months and everyday has been a great learning experience. My node has been highly reliable with 4 Orchestrators across the globe with possibility to expand more depending on the demand. If you are looking to get in touch with me please reach out to me on discord Organic-Node#9009.

It gives me great pleasure when looking at lenstube videos, thinking that some of these vides may have been transcoded by my Orch. Stakes and delegators enjoy passive income with my low reward cuts and low fee cut and help support robust Orch for a fairer web3 platforms

Stake here:
(organic-node.eth)

', + replyCount: 1, + datePosted: 'Dec 6, 2022', + }, +] diff --git a/snippets/components/buttons.jsx b/snippets/components/buttons.jsx new file mode 100644 index 00000000..ca0ecfb9 --- /dev/null +++ b/snippets/components/buttons.jsx @@ -0,0 +1,3 @@ +export const BasicBtn = () => { + return
+} diff --git a/snippets/components/buttons.tsx b/snippets/components/buttons.tsx new file mode 100644 index 00000000..0f5a12af --- /dev/null +++ b/snippets/components/buttons.tsx @@ -0,0 +1,4 @@ +export type buttonsProps = Record; +export const BasicBtn = () => { + return
+} diff --git a/snippets/components/cards.jsx b/snippets/components/cards.jsx new file mode 100644 index 00000000..2ab77e83 --- /dev/null +++ b/snippets/components/cards.jsx @@ -0,0 +1,234 @@ +// card layouts + +export const PostCard = ({ + title, + content, + href, + author = 'Unknown', + datePosted = null, + replyCount = null, + icon = 'book-open', + authorIcon = 'user-pen', + dateIcon = 'calendar', + cta = 'Read More', + img = null, +}) => { + console.log('item', title, content, href, img) + // Show hint if content is likely to overflow (>500 chars as proxy) + const showScrollHint = content && content.length > 500 + + return ( + + {author && ( +
+ + + + {author} +
+ )} + {datePosted && ( +
+ + + + {datePosted} +
+ )} + {/* {replyCount && ( +
+ + + + Replies: {replyCount} +
+ )} */} +
+
{ + const el = e.target + const atBottom = + el.scrollHeight - el.scrollTop <= el.clientHeight + 10 + const hint = el.nextSibling + if (hint) hint.style.display = atBottom ? 'none' : 'block' + }} + dangerouslySetInnerHTML={{ __html: content }} + /> + {showScrollHint && ( +
+ Scroll for more ↓ +
+ )} + + ) +} + +export const CardColumnsPostLayout = ({ cols = 2, items = [] }) => { + console.log('items', items) + return ( + + {items.map((props, idx) => ( + + ))} + + ) +} + +export const BlogCard = ({ + title, + content, + href, + author = 'Livepeer Team', + datePosted = null, + excerpt = null, //use if we prefer people to go to the actual blog site + readingTime = null, + icon = 'book-open', + authorIcon = 'user-pen', + dateIcon = 'calendar', + cta = 'Read More', + img = null, +}) => { + console.log('item', title, content, href, img) + // Show hint if content is likely to overflow (>500 chars as proxy) + const showScrollHint = content && content.length > 500 + + return ( + + {/* {author && ( +
+ + + + {author} +
+ )} */} + {datePosted && ( +
+ + + + {datePosted} +
+ )} + {readingTime && ( +
+ + + + Read Time: {readingTime} minutes +
+ )} +
+
{ + const el = e.target + const atBottom = + el.scrollHeight - el.scrollTop <= el.clientHeight + 10 + const hint = el.nextSibling + if (hint) hint.style.display = atBottom ? 'none' : 'block' + }} + dangerouslySetInnerHTML={{ __html: content }} + /> + {showScrollHint && ( +
+ Scroll for more ↓ +
+ )} + + ) +} + +export const CardBlogDataLayout = ({ items = [] }) => { + console.log('items', items) + return ( +
+ {items.map((props, idx) => ( + + ))} +
+ ) +} diff --git a/snippets/components/embed.jsx b/snippets/components/embed.jsx new file mode 100644 index 00000000..3471ed08 --- /dev/null +++ b/snippets/components/embed.jsx @@ -0,0 +1,23 @@ +export const MarkdownEmbed = ({ url }) => { + const [content, setContent] = useState('') + + useEffect(() => { + fetch(url) + .then((res) => res.text()) + .then(setContent) + }, [url]) + + return {content} +} + +export const EmbedMarkdown = ({ url }) => { + const [content, setContent] = useState('') + + useEffect(() => { + fetch(url) + .then((res) => res.text()) + .then(setContent) + }, [url]) + + return {content} +} diff --git a/snippets/components/embed.mdx b/snippets/components/embed.mdx new file mode 100644 index 00000000..583f2d5e --- /dev/null +++ b/snippets/components/embed.mdx @@ -0,0 +1,44 @@ +export const ExternalEmbed = ({ + children, + repoName, + repoUrl, + maxHeight = '1000px' +}) => ( +
+
+ + + {repoName} + + + View on GitHub + +
+
+ {children} +
+
+); + diff --git a/snippets/components/external-content.jsx b/snippets/components/external-content.jsx new file mode 100644 index 00000000..c6b6c41d --- /dev/null +++ b/snippets/components/external-content.jsx @@ -0,0 +1,60 @@ +/** + * ExternalContent - A reusable component for displaying external GitHub content + * Usage: + * import { ExternalContent } from '/snippets/components/external-content.jsx' + * import MyContent from '/snippets/external/my-content.mdx' + * + * + * + */ + +export const ExternalContent = ({ + repoName, + githubUrl, + maxHeight = '1000px', + icon = 'github', + children +}) => { + return ( +
+
+ + + {repoName} + + + View on GitHub + +
+
+ {children} +
+
+ ); +}; + diff --git a/snippets/components/image.jsx b/snippets/components/image.jsx new file mode 100644 index 00000000..1a61b1ad --- /dev/null +++ b/snippets/components/image.jsx @@ -0,0 +1,30 @@ +export const Image = ({ src, alt, caption, icon, hint, fullwidth = true }) => { + icon = icon ? icon : 'arrow-turn-down-right' + return ( + + {alt} + + ) +} + +export const LinkImage = ({ src, alt, caption, icon, hint, href }) => { + icon = icon ? icon : 'arrow-turn-down-right' + return ( + + + {alt} + + + ) +} + +// +// Livepeer Community GIF +// diff --git a/snippets/components/image.tsx b/snippets/components/image.tsx new file mode 100644 index 00000000..dfeb946f --- /dev/null +++ b/snippets/components/image.tsx @@ -0,0 +1,31 @@ +export type imageProps = Record; +export const Image = ({ src, alt, caption, icon, hint, fullwidth = true }) => { + icon = icon ? icon : 'arrow-turn-down-right' + return ( + + {alt} + + ) +} + +export const LinkImage = ({ src, alt, caption, icon, hint, href }) => { + icon = icon ? icon : 'arrow-turn-down-right' + return ( + + + {alt} + + + ) +} + +// +// Livepeer Community GIF +// diff --git a/snippets/components/links.jsx b/snippets/components/links.jsx new file mode 100644 index 00000000..ceef09b3 --- /dev/null +++ b/snippets/components/links.jsx @@ -0,0 +1,51 @@ +export const GotoLink = ({ + label, + relativePath, + text = '', + icon = 'arrow-turn-down-right', +}) => { + return ( + +

{text}

+ + + {label} + +
+ ) +} + +export const GotoCard = ({ label, relativePath, icon, text, cta = '' }) => { + icon = icon ? icon : 'arrow-turn-down-right' + return ( + + {text} + + ) +} + +export const DownloadLink = ({ + label = 'Download Transcript', + icon = 'download', + downloadLink, + rightIcon = false, +}) => { + console.log('dllink', downloadLink) + downloadLink = downloadLink ? downloadLink : 'https://Livepeer.org' + console.log('dllink2', downloadLink) + return ( + + {!rightIcon && } + + {label} + + {rightIcon && } + + ) +} diff --git a/snippets/components/links.tsx b/snippets/components/links.tsx new file mode 100644 index 00000000..286562fe --- /dev/null +++ b/snippets/components/links.tsx @@ -0,0 +1,21 @@ +// export type linksProps = Record; +// export const GotoLink = ({ label, relativePath, text }) => { +// return ( +// +//

{text}

+// +// +// {label} +// +//
+// ) +// } + +// export const GotoCard = ({ label, relativePath, icon, text }) => { +// icon = icon ? icon : 'arrow-turn-down-right' +// return ( +// +// {text} +// +// ) +// } diff --git a/snippets/components/lists.jsx b/snippets/components/lists.jsx new file mode 100644 index 00000000..2879b21e --- /dev/null +++ b/snippets/components/lists.jsx @@ -0,0 +1,62 @@ +// Lists +import { GotoLink } from './links' + +export const BasicList = ({ listItems: array }) => { + return <> +} + +export const IconList = ({ listItems: array }) => { + return <> +} + +export const StepList = ({ listItems }) => { + console.log('listItems', listItems) + return ( + + {listItems.map(({ title, icon, content }, idx) => ( + + {content} + + ))} + + ) +} + +export const StepLinkList = ({ listItems }) => { + console.log('listItems', listItems) + return ( + + {listItems.map(({ title, icon, content, link }, idx) => ( + + + + ))} + + ) +} + +export const UpdateList = ({ listItems: array }) => { + return ( + +
+ Learn what Livepeer is and how it can benefit you + [About Livepeer](../../01_about/about-home/) +
+
+ ) +} + +export const UpdateLinkList = ({ listItems: array }) => { + return ( + <> + {array.map(({ title, icon, content, link }, idx) => ( + +
+ {content} + +
+
+ ))} + + ) +} diff --git a/snippets/components/stuff.js b/snippets/components/stuff.js new file mode 100644 index 00000000..8ed09d40 --- /dev/null +++ b/snippets/components/stuff.js @@ -0,0 +1,9 @@ +// export const embedUrl = url.replace('watch?v=', 'embed/') + +// import { Video } from '/snippets/video.jsx' +//