FeedCord is designed to be a 'turn key' automated RSS feed reader with the main focus on Discord Servers.
Use it for increasing community engagement and activity or just for your own personal use. The combination of FeedCord and Discord's Forum Channels can really shine to make a vibrant news feed featuring gallery-style display alongside custom threads, creating an engaging space for your private community discussions.
A showing of one channel. Run as many of these as you want!
FeedCord is very simple to get up and running. It only takes a few steps:
- Create a Discord Webhook
- Create and Edit a local file or two
Provided below is a quick guide to get up and running.
{
"Instances": [
{
"Id": "My First News Feed",
"YoutubeUrls": [
""
],
"RssUrls": [
""
],
"Forum": false,
"DiscordWebhookUrl": "...",
"RssCheckIntervalMinutes": 25,
"EnableAutoRemove": false,
"Color": 8411391,
"DescriptionLimit": 250,
"MarkdownFormat": false,
"PersistenceOnShutdown": true
}
],
"ConcurrentRequests": 40
}
There is currently 17 properties you can configure. You can read more in depth explanation of the file structure as well as view all properties and their purpose here
Be sure to populate your appsettings.json
"DiscordWebhookUrl" property with your newly created Webhook
Before you actually run FeedCord, make sure you have populated your appsettings.json
with RSS and YouTube feeds.
RSS Feeds
- For new users that aren't bringing their own list check out awesome-rss-feeds and add some that interest you
- Each url is entered by line seperating by comma. It should look like this in your
appsettings.json
file:
"RssUrls": [
"https://examplesrssfeed1.com/rss",
"https://examplesrssfeed2.com/rss",
"https://examplesrssfeed3.com/rss",
]
YouTube Feeds
- You can bring your favorite YouTube channels as well to be notified of new uploads
- FeedCord parses from the channel's base url so simply navigate to the channel home page and use that url.
- Example here if I was interested in Unbox Therapy & Tyler1:
NOTE
If a YouTube link keeps failing at retrieving the RSS Link - Directly use the xml formatted YouTube link. It is more reliable.
The format for that looks like: "https://www.youtube.com/feeds/videos.xml?channel_id={YOUR_CHANNEL_ID_HERE}"
You can use online web tools like tunepocket to get the Id for the channel.
"YoutubeUrls": [
"https://www.youtube.com/@unboxtherapy",
"https://www.youtube.com/@TYLER1LOL",
"https://www.youtube.com/feeds/videos.xml?channel_id={YOUR_CHANNEL_ID_HERE}"
]
Now that your file is set up, you have two ways to run FeedCord
docker pull qolors/feedcord:latest
Be sure to update the volume path to your appsettings.json
docker run --name FeedCord -v "/path/to/your/appsettings.json:/app/config/appsettings.json" qolors/feedcord:latest
Install the .NET SDK
Clone this repo
git clone https://github.com/Qolors/FeedCord
Change Directory
cd FeedCord
Restore Dependencies
dotnet restore
Build
dotnet build
Run with your appsettings.json
(provide your own path)
dotnet run -- path\to\your\appsettings.json
With the above steps completed, FeedCord should now be running and posting updates from your RSS feeds directly to your Discord channel.
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[3.0.0] - 2025-02-10
- Restart persistence to catch up on missed posts if it had shutdown
- UserAgent cycling for failed get requests with retry attempts
- Multiple retry attempts on getting a post image
- Control over allowed concurrent HTTP requests FeedCord can make
- Separate handling of Reddit Feeds
- Markdown Support
- Building from source
- README
- Large codebase refactoring
- Atom Feeds not returning a description
- Failed posting to Discord due to title length
[2.1.0] - 2024-02-28
- Added Support for grabbing multiple new posts if the feed has multiple new posts since the last check.
- Improved Documentation for easier setup and understanding
- Improved Logging for better readability
- Posting now has a hard-coded 10 second buffer so large feeds respect Discord's rate limits
[2.0.0] - 2024-01-30
- Added Support for Multiple Webhook Urls & Configurations
- Added Support for Discord's Forum Channels
- Configuration File formatting has changed to support multiple Webhook URLs
- Slight improvements to Logging
- Some Configuration properties are now optional rather than required
[1.3.0] - 2024-01-20
- Added Description Length Configuration
- Improved RSS & ATOM Parsing with implementing FeedReader library
- RSS/ATOM Feeds returning errors because of parsing issues
[1.2.0] - 2023-10-25
- Added Support for Youtube Channel Feeds in configuration file.
- Added an optional Auto Remove option in configuration file for bad URL Feeds to get booted out of the list after multiple failed attempts.
- Improved container logging messages for better readability.
- Color setting in configuration now properly works for the embed message
- Fixed the handling of errors and removed from logging to reduce spam.
- Fixed a known logging index error.
[1.1.0] - 2023-10-16
- Broke up
RssProcessorService
class to follow SOLID principles, adding a new service classOpenGraphService
to handle meta tags. - Added
Helper
namespace &StringHelper
class, which includes theStripTags
method for potential reuse and improved organization.
- Enhanced the RSS feed background service for more efficient feed checks, reducing chances of delays.
- Customized the
HttpClient
to set default request headers, ensuring better compatibility with certain RSS feeds. - Refined feed processing logic to include concurrent processing, beneficial for users with a large number of RSS feeds.
- ReadMe to show this change log and multiple OS images.
- Improved RSS feed initialization, ensuring only valid feeds are added to the tracking list.
- Overhauled logs to not contain as much spam and allow for better readability.