FastAPI RSS Feed Generator for your Bandcamp newsfeed
Makes RSS feed out of your https://bandcamp.com/{BANDCAMP_USERNAME}/feed, so you can follow the new releases using your favorite RSS reader
- Converts Bandcamp newsfeed to RSS/Atom feeds
- Embeds the entry HTML into the RSS entry
- Configurable caching
- Health check endpoint for monitoring
- Optional pre-order filtering (API source only)
- Get your Bandcamp identity cookie (described below)
- Create
.envfile with required variables (described below) - Run locally or deploy using one of the methods described below
- Create
.envfile using .env.example
# "identity" cookie from Bandcamp (required for private feeds)
IDENTITY=7%09ABCV1A%2B12D12D12ABCDEJbOCvA8Mfi90betEmFcYfhs%3D%09%7B%22id%22%3A135750916%2C%22ex%22%3A0%7D
BANDCAMP_USERNAME=my_bandcamp_username
PORT=8000
CACHE_DURATION_SECONDS=3600
TZ=Europe/Kyiv
# Filter out pre-order items from the feed (API source only)
BANDCAMP_FILTER_PREORDERS=0
VERBOSE=0
- Log into Bandcamp in your browser
- Open Developer Tools (F12)
- Go to Network tab
- Visit your feed page:
https://bandcamp.com/YOUR_USERNAME/feed - Look for the request to this URL
- In the request headers, find the
Cookieheader - Copy the
identity=...value
/rss- RSS 2.0 feed/atom- Atom feed/health- Health check
Both /rss and /atom endpoints support the following query parameter:
| Parameter | Type | Default | Description |
|---|---|---|---|
source |
string | scraping |
Source type. Described below. |
| Source | Description |
|---|---|
scraping |
Default. Uses web scraping to parse the Bandcamp feed page HTML. |
api |
Uses the Bandcamp API to fetch the feed. |
http://127.0.0.1:8000/rss— Default scraping source (RSS)http://127.0.0.1:8000/atom— Default scraping source (Atom)http://127.0.0.1:8000/rss?source=api— Using Bandcamp API source (RSS)http://127.0.0.1:8000/atom?source=api— Using Bandcamp API source (Atom)
- Install uv
- Pre-create
.envin your Home directory from .env.example - Run the project
uvx --from https://github.com/ALERTua/bandcamp_newsfeed_rss bandcamp_newsfeed_rss# Build the image
docker build -t bandcamp_newsfeed_rss .
# Run the container using .env file
docker run -p 8000:8000 --env-file .env bandcamp_newsfeed_rss
# Or run the container using the environment variable arguments
docker run -p 8000:8000 \
-e BANDCAMP_USERNAME=your_username \
-e IDENTITY=your_identity_cookie \
-e TZ=Europe/Kiev \
bandcamp_newsfeed_rss# Run the container using .env file
docker run -p 8000:8000 --env-file .env ghcr.io/alertua/bandcamp_newsfeed_rss
# Or run the container using the environment variable arguments
docker run -p 8000:8000 \
-e BANDCAMP_USERNAME=your_username \
-e IDENTITY=your_identity_cookie \
-e TZ=Europe/Kiev \
ghcr.io/alertua/bandcamp_newsfeed_rssFeed not loading?
- Verify your
BANDCAMP_USERNAMEis correct - Check that your identity cookie is valid (not expired)
- Ensure you have access to the Bandcamp feed
Empty feed?
- Check if your Bandcamp feed has any items
- Verify cookie permissions for private content
Docker issues?
- Ensure
.envfile exists in the current directory - Check port 8000 is not already in use
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
