{
  "_readme": [
    "Social-media accounts read by digest-engine/ingest/rci_social.py and fed to the",
    "political section as category=\"theory_social\". JSON has no comment syntax, so",
    "the documentation lives in these underscore-prefixed keys; the module ignores",
    "every key it does not know about.",
    "",
    "THIS FILE IS MEANT TO BE EDITED — same as feeds/curated-feeds.opml, and unlike",
    "IDSconf.json it holds no credentials, so it is committed as-is. Set",
    "ENABLE_RCI_SOCIAL_INGEST=true in digest-engine.env to switch it on.",
    "",
    "Per entry:",
    "  platform  'youtube' | 'rss' | 'telegram'",
    "  name      what the digest calls the account",
    "  scope     'section' (your own national section) or 'international' (the RCI",
    "            as a whole). Passed to the prompt, which is told not to merge the",
    "            two voices — 'my branch is doing X' is not 'the International says X'.",
    "  enabled   set false to keep an entry here without fetching it",
    "",
    "  content_type  'episode' (something to watch or listen to later) or 'post'",
    "            (something said now). Episodes are collected into the political",
    "            section's own watch-later window instead of competing with the",
    "            analysis. Defaults to 'episode' for youtube, 'post' otherwise.",
    "",
    "  youtube   needs channel_id, the opaque UC... id — YouTube's feed endpoint does",
    "            not accept an @handle. Find it by opening the channel and reading",
    "            'externalId' in View Source, or from a /channel/UC... URL.",
    "  rss       needs url. Works for a Mastodon account (https://<instance>/@user.rss),",
    "            a podcast feed, or any site feed.",
    "  telegram  needs channel, the public @username without the @. Read through the",
    "            SAME Telethon session ingest/telegram_ingest.py uses — nothing joins",
    "            or subscribes to the channel, and without that session these entries",
    "            are skipped while the rest still run.",
    "",
    "NOT SUPPORTED, ON PURPOSE: Instagram, Facebook, WhatsApp channels, TikTok and",
    "X/Twitter. None has a keyless read path that stays inside its own terms, and",
    "this component does not scrape. The module docstring says what each of them",
    "would actually require. Instagram is the real gap — it is where the section",
    "posts most, and reading it here would mean scraping it."
  ],

  "sources": [
    {
      "_verified": "Feed fetched and confirmed live 2026-08-06 (channel 'RKP – Revolutionäre Kommunistische Partei').",
      "platform": "youtube",
      "name": "RKP Österreich (YouTube)",
      "scope": "section",
      "channel_id": "UCMXItw4ipjk2CigCHuXHqlw"
    },
    {
      "_verified": "Feed fetched and confirmed live 2026-08-06 (channel 'Revolutionary Communist International').",
      "platform": "youtube",
      "name": "RCI (YouTube)",
      "scope": "international",
      "channel_id": "UCtO2zDQt-AhF6SwYbXDdFKA"
    },
    {
      "_verified": [
        "Linked from marxist.com's own footer (checked 2026-08-06). NOT fetched during",
        "verification — reading it needs the Telegram session, which only exists on the",
        "real deployment. If the channel name is wrong this entry logs a warning and",
        "costs nothing else."
      ],
      "platform": "telegram",
      "name": "marxist.com (Telegram)",
      "scope": "international",
      "channel": "marxistcom"
    },
    {
      "_verified": [
        "Feed fetched and confirmed live 2026-08-06 ('Der Funke - die kommunistische",
        "Stimme'). This is the RSS behind anchor.fm/derfunkeat — the section's own",
        "podcast, and the audio half of the watch-later list."
      ],
      "platform": "rss",
      "name": "Der Funke — Podcast",
      "scope": "section",
      "content_type": "episode",
      "url": "https://anchor.fm/s/1b913a00/podcast/rss"
    },
    {
      "_example": [
        "Template for a Mastodon (or any other) feed — off until you fill in a real",
        "URL. marxist.com itself needs no entry here: its podcast episodes are posted",
        "as articles prefixed '[Podcast]' and already arrive through",
        "feeds/curated-feeds.opml's category=\"theory\" feed (checked 2026-08-06)."
      ],
      "platform": "rss",
      "name": "Example — a Mastodon account",
      "scope": "section",
      "url": "https://instance.example/@account.rss",
      "enabled": false
    }
  ]
}
