> ## Documentation Index
> Fetch the complete documentation index at: https://na-36-changelog-go-livepeer-2026-05-18.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Solutions Platform Integrations

> Secrets and environment variables required by the solutions social data pipeline — the automated system that fetches YouTube, blog, Discord, GitHub, and forum data for each product page under v2/solutions/.

# Solutions Platform Integrations

## Pipeline Overview

The solutions social data pipeline fetches live content from external platforms and writes static JSX data modules into `snippets/data/social-feed-solutions/{product}/`, plus shared feed modules under `snippets/data/social-feeds/`. These files are imported by product community pages under `v2/solutions/{product}/`.

```
External APIs (YouTube, Ghost, Discord, GitHub, RSS)
        │
        ▼
GitHub Actions workflows (scheduled cron)
        │
        ▼
Fetch scripts (.github/scripts/fetch-*.js)
        │  read product-social-config.json
        ▼
Static JSX data files (snippets/data/social-feed-solutions/{product}/*.jsx + snippets/data/social-feeds/*.jsx)
        │
        ▼
React display components → MDX product pages
```

Each fetch script reads `operations/scripts/config/product-social-config.json` to determine which products have which channels configured, then writes per-product data files that are auto-committed by the workflow.

## Secrets Required

These must be configured in **GitHub Settings → Secrets and variables → Actions → Secrets**.

| Secret | Script | Workflow | Schedule | How to Obtain |
| - | - | - | - | - |
| `YOUTUBE_API_KEY` | `fetch-youtube-data.js` | `update-youtube-data.yml` | Weekly (Sun 00:00 UTC) | [Google Cloud Console](https://console.cloud.google.com/apis/credentials) — enable YouTube Data API v3 |
| `GHOST_CONTENT_API_KEY` | `fetch-ghost-blog-data.js` | `update-ghost-blog-data.yml` | Daily (00:00 UTC) | Ghost Admin → Integrations → Custom integration → Content API Key. Instance: `livepeer-studio.ghost.io` |
| `DISCORD_BOT_TOKEN` | `fetch-discord-announcements.js` | `update-discord-data.yml` | Daily (01:00 UTC) | [Discord Developer Portal](https://discord.com/developers/applications) — create app → Bot → Token. Requires "Read Message History" permission in target announcements channels. |
| `DOCS_V2` | Ghost blog + forum workflows | `update-ghost-blog-data.yml`, `update-forum-data.yml` | Daily | GitHub [Personal Access Token](https://github.com/settings/tokens) (Classic) with `repo` scope. Needed because `GITHUB_TOKEN` cannot trigger downstream workflows. |
| `GITHUB_TOKEN` | `fetch-github-discussions.js`, `fetch-github-releases.js` | `update-github-data.yml` | Daily (02:00 UTC) | Auto-provided by GitHub Actions. No setup needed for CI. For local dev, create a [fine-grained PAT](https://github.com/settings/tokens) with public repo read access. |

## RSS Blog Pipeline (No Secret Required)

| Script | Workflow | Schedule | Notes |
| - | - | - | - |
| `fetch-rss-blog-data.js` | `update-rss-blog-data.yml` | Daily (03:00 UTC) | Fetches public RSS feeds (Daydream Ghost RSS, Streamplace Leaflet RSS). No API key needed. Skips products that use the Ghost API script. |

## Products and Their Active Pipelines

| Product | YouTube | Blog | Discord | GitHub Discussions | GitHub Releases | Forum |
| - | - | - | - | - | - | - |
| **Daydream** | Own channel (needs `YOUTUBE_API_KEY`) | Ghost RSS (no key) | Needs `DISCORD_BOT_TOKEN` + channel IDs in config | GraphQL (needs `GITHUB_TOKEN`) | REST (needs `GITHUB_TOKEN`) | — |
| **Embody** | — | — | Needs manual Discord config | Needs verification | REST | Livepeer Forum (existing script) |
| **Frameworks** | — | — | Needs `DISCORD_BOT_TOKEN` + channel IDs | GraphQL (0 posts currently) | REST (active, 8 releases) | Own Discourse + Livepeer Forum |
| **Livepeer Studio** | Shared channel (existing `YOUTUBE_API_KEY`) | Ghost API (existing `GHOST_CONTENT_API_KEY`) | Existing n8n → migrating to `DISCORD_BOT_TOKEN` | GraphQL (minimal) | REST (active) | Livepeer Forum (existing script) |
| **Streamplace** | — | Leaflet RSS (no key) | Needs `DISCORD_BOT_TOKEN` + channel IDs | GraphQL | — (tags only) | Livepeer Forum |

## Configuration

All fetch scripts read from a central config file:

```
operations/scripts/config/product-social-config.json
```

This file maps each product to its social channels (YouTube channel ID, Discord server/channel IDs, blog RSS URL, GitHub org/repo, forum URL). Scripts skip products where the relevant field is `null` or missing.

## Setup Checklist for New Deployment

1. [ ] Add `YOUTUBE_API_KEY` to GitHub Secrets
2. [ ] Add `GHOST_CONTENT_API_KEY` to GitHub Secrets
3. [ ] Add `DISCORD_BOT_TOKEN` to GitHub Secrets — invite bot to each product Discord with "Read Message History" permission
4. [ ] Add `DOCS_V2` PAT to GitHub Secrets (for auto-commit workflows)
5. [ ] Verify `product-social-config.json` has correct channel IDs for each product
6. [ ] Enable workflow dispatch on each `update-*.yml` and trigger a manual run to verify

## Related

* `docs-guide/repo-ops/config/.env.example` — full repo env var reference (grouped by pipeline)
* `operations/scripts/config/product-social-config.json` — central product social config
* `workspace/plan/active/SOLUTIONS-SOCIAL-DATA/plan.md` — implementation plan
* `workspace/plan/active/SOLUTIONS-SOCIAL-DATA/_workspace/research/socials-research.md` — research audit
* `docs-guide/features/data-integrations.mdx` — broader data integrations map


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.