Skip to content

Add Telegram Channels, X Profiles and YouTube Channels extensions - #536

Merged
Alkarex merged 2 commits into
FreshRSS:mainfrom
shcheglovnd:add-telegram-channels-and-x-profiles
Sep 30, 2026
Merged

Alkarex merged 2 commits into
FreshRSS:mainfrom
shcheglovnd:add-telegram-channels-and-x-profiles

Conversation

@shcheglovnd

@shcheglovnd shcheglovnd commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Summary

extensions.json is left to the daily Update extension list workflow.

The extensions

Telegram Channels — follow public Telegram channels without RSSHub or any other proxy.
Paste a t.me/<channel> link into Add a feed. The extension reads the channel's public web preview
(https://t.me/s/<channel>) and hands SimplePie an RSS document built from it (simplepie_before_init).
Posts keep their formatting and links, every photo (albums included; Telegram draws them as CSS
backgrounds, which HTML scrapers lose), video thumbnails, forwards, replies, link previews, documents,
polls and buttons. Existing RSSHub /telegram/channel/… subscriptions can be read directly or
converted in one click.

X Profiles — follow X (Twitter) profiles without Nitter or an X account.
x.com renders public profile pages for logged-out visitors on the server and embeds the latest
posts' data in the page. The extension decodes that data with a small strict reader (no eval), and
builds RSS with full text, large photos, playable videos, quoted posts and link cards. Each refresh
sees the latest few original posts, and FreshRSS keeps collecting them. Nitter / xcancel
subscriptions can be read directly or converted in one click.

YouTube Channels — subscribe to YouTube channels with any link to them.
Add a feed accepts @handle, /channel/…, /c/…, /user/…, video and playlist links, and
subscribes to YouTube's own feed of that channel or playlist; when the link does not name the channel,
it is read from YouTube's page. Since late 2025 the feed server answers servers with random 404/500
errors (FreshRSS#8808), so the extension downloads
YouTube feeds itself with retries, and reads new uploads from the channel's Videos tab when every
attempt fails. Channel avatars become feed icons. Entries are the same as those FreshRSS gets from
YouTube directly, so the YouTube Video Feed extension keeps working with them.

Checks

  • metadata.json sits at each repository root (directory: ".") with every field generate.php
    requires; checked by replaying its clone-and-extract step on the three repositories.
  • All three pass PHPStan level 10 with this repository's strict settings against FreshRSS 1.30.0.
  • Tested on FreshRSS 1.28.1 and 1.30.0. Hooks are registered by name, to keep 1.28 working.
  • npm run markdownlint passes.
  • All three run on my own instance: 185 Telegram channels, 7 X profiles and 40 YouTube channels.

🤖 Generated with Claude Code

Register two third-party extension repositories and list them in the
README's third-party section:

- Telegram Channels: follow public Telegram channels directly from
  their t.me/s/ web preview, without RSSHub
- X Profiles: follow X (Twitter) profiles directly from x.com's
  logged-out page, without Nitter or an X account

Assisted-by: Claude <noreply@anthropic.com>
@shcheglovnd
shcheglovnd marked this pull request as ready for review September 30, 2026 00:48
Assisted-by: Claude <noreply@anthropic.com>
@shcheglovnd shcheglovnd changed the title Add Telegram Channels and X Profiles extensions Add Telegram Channels, X Profiles and YouTube Channels extensions Sep 30, 2026
@Alkarex
Alkarex merged commit eab7870 into FreshRSS:main Sep 30, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants