Automatically post RSS feed content to Bluesky Social with intelligently generated relevant hashtags using GitHub Actions.
- 🤖 Automated posting from RSS feeds to Bluesky
- 🏷️ Smart hashtag generation with natural language processing
- 🔗 Properly hyperlinked URLs and clickable hashtags
- 🔄 Runs on schedule (configurable)
- 📝 Tracks posted content to avoid duplicates
- ⚡ Easy setup using GitHub Actions
- 🛡️ Robust error handling and fallback mechanisms
- A Bluesky account
- A GitHub account
- An RSS feed to monitor
-
Fork this repository
-
Set up environment secrets
Go to your repository's Settings > Secrets and variables > Actions:
- Add the following repository secrets:
BLUESKY_HANDLE
: Your Bluesky handle (without @)BLUESKY_PASSWORD
: Your Bluesky password
- Add the following repository secrets:
-
Configure RSS Feed
Edit
src/post_to_bluesky.py
and replace the RSS feed URL: rss_url = "https://your-rss-feed-url.com/feed" -
Enable GitHub Actions
Go to Actions tab in your repository and enable workflows.
- The GitHub Action runs on schedule (configurable in
.github/workflows/bluesky-poster.yml
) - It fetches new posts from your RSS feed
- For each new post:
- Extracts and filters relevant terms for hashtags
- Creates a Bluesky post with the title, properly hyperlinked URL, and interactive hashtags
- Tracks posted content to avoid duplicates
- Changes are committed back to the repository
Edit the cron schedule in .github/workflows/bluesky-poster.yml
:
on:
schedule:
- cron: '0 */4 * * *' # Runs every 4 hours
Edit the create_bluesky_post
function in src/post_to_bluesky.py
to modify how posts appear.
Modify the extract_relevant_hashtags
function to adjust which words are filtered out or included in hashtag generation.
src/post_to_bluesky.py
: Main script for posting to Bluesky.github/workflows/bluesky-poster.yml
: GitHub Actions workflowrequirements.txt
: Python dependenciesposted_entries.json
: Tracks posted content (auto-generated)
- atproto: Bluesky API client
- feedparser: RSS feed parser
-
Posts not appearing?
- Check the Actions tab for error logs
- Verify your Bluesky credentials
- Ensure RSS feed URL is correct
-
Hashtags not clickable?
- Ensure you're using the latest version of the code
- Check that facets are properly configured
-
Workflow not running?
- Ensure GitHub Actions is enabled
- Check if the repository secrets are properly configured
- Verify workflow file syntax
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the GPL 3 - see the LICENSE file for details.
- Bluesky Social for the platform
- The open source community for libraries and tools