{"id":25735696,"url":"https://github.com/alertua/bandcamp_newsfeed_rss","last_synced_at":"2026-07-09T14:31:05.597Z","repository":{"id":262220444,"uuid":"886572755","full_name":"ALERTua/bandcamp_newsfeed_rss","owner":"ALERTua","description":"RSS Feed generator for your Bandcamp newsfeed","archived":false,"fork":false,"pushed_at":"2026-06-17T14:57:10.000Z","size":816,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-06-17T16:58:23.765Z","etag":null,"topics":["bandcamp","rss","rss-feed-generator"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ALERTua.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-11-11T08:12:05.000Z","updated_at":"2026-06-17T14:59:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"a2f8c0b2-379e-4cb2-9254-b417bf313796","html_url":"https://github.com/ALERTua/bandcamp_newsfeed_rss","commit_stats":null,"previous_names":["alertua/bandcamp_newsfeed_rss"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ALERTua/bandcamp_newsfeed_rss","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ALERTua%2Fbandcamp_newsfeed_rss","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ALERTua%2Fbandcamp_newsfeed_rss/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ALERTua%2Fbandcamp_newsfeed_rss/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ALERTua%2Fbandcamp_newsfeed_rss/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ALERTua","download_url":"https://codeload.github.com/ALERTua/bandcamp_newsfeed_rss/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ALERTua%2Fbandcamp_newsfeed_rss/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35303290,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-09T02:00:07.329Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bandcamp","rss","rss-feed-generator"],"created_at":"2025-02-26T05:31:40.917Z","updated_at":"2026-07-09T14:31:05.585Z","avatar_url":"https://github.com/ALERTua.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner-direct-single.svg)](https://stand-with-ukraine.pp.ua)\n[![Made in Ukraine](https://img.shields.io/badge/made_in-Ukraine-ffd700.svg?labelColor=0057b7)](https://stand-with-ukraine.pp.ua)\n[![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg)](https://stand-with-ukraine.pp.ua)\n[![Russian Warship Go Fuck Yourself](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/RussianWarship.svg)](https://stand-with-ukraine.pp.ua)\n\nBandcamp Newsfeed RSS Feed Generator\n---------------------------\n\nFastAPI RSS Feed Generator for your Bandcamp newsfeed\n\nMakes RSS feed out of your https://bandcamp.com/{BANDCAMP_USERNAME}/feed,\nso you can follow the new releases using your favorite RSS reader\n\n![](media/screenshot_1.png)\n\n\n## Features\n\n- Converts Bandcamp newsfeed to RSS/Atom feeds\n- Embeds the entry HTML into the RSS entry\n- Configurable caching\n- Health check endpoint for monitoring\n- Optional pre-order filtering (API source only)\n\n\n## Usage\n\n1. Get your Bandcamp identity cookie (described below)\n2. Create `.env` file with required variables (described below)\n3. Run locally or deploy using one of the methods described below\n\n\n## Configuration\n\n* Create `.env` file using [.env.example](.env.example)\n```\n# \"identity\" cookie from Bandcamp (required for private feeds)\nIDENTITY=7%09ABCV1A%2B12D12D12ABCDEJbOCvA8Mfi90betEmFcYfhs%3D%09%7B%22id%22%3A135750916%2C%22ex%22%3A0%7D\n\nBANDCAMP_USERNAME=my_bandcamp_username\n\nPORT=8000\nCACHE_DURATION_SECONDS=3600\nTZ=Europe/Kyiv\n\n# Filter out pre-order items from the feed (API source only)\nBANDCAMP_FILTER_PREORDERS=0\n\nVERBOSE=0\n```\n\n## Getting Your Bandcamp Identity Cookie\n\n1. Log into Bandcamp in your browser\n2. Open Developer Tools (F12)\n3. Go to Network tab\n4. Visit your feed page: `https://bandcamp.com/YOUR_USERNAME/feed`\n5. Look for the request to this URL\n6. In the request headers, find the `Cookie` header\n7. Copy the `identity=...` value\n\n\n## Endpoints\n\n- `/rss` - RSS 2.0 feed\n- `/atom` - Atom feed\n- `/health` - Health check\n\n\n### Query Parameters\n\nBoth `/rss` and `/atom` endpoints support the following query parameter:\n\n| Parameter | Type   | Default    | Description                   |\n|-----------|--------|------------|-------------------------------|\n| `source`  | string | `scraping` | Source type. Described below. |\n\n\n#### Source Types\n\n| Source     | Description                                                                               |\n|------------|-------------------------------------------------------------------------------------------|\n| `scraping` | **Default**. Uses web scraping to parse the Bandcamp feed page HTML.                      |\n| `api`      | Uses the [Bandcamp API](https://github.com/ALERTua/bandcamp_async_api) to fetch the feed. |\n\n\n#### Examples\n\n- `http://127.0.0.1:8000/rss` — Default scraping source (RSS)\n- `http://127.0.0.1:8000/atom` — Default scraping source (Atom)\n- `http://127.0.0.1:8000/rss?source=api` — Using Bandcamp API source (RSS)\n- `http://127.0.0.1:8000/atom?source=api` — Using Bandcamp API source (Atom)\n\n## Running locally\n\n* Install [uv](https://docs.astral.sh/uv/getting-started/installation/)\n* Pre-create `.env` in your Home directory from [.env.example](.env.example)\n* Run the project\n```bash\nuvx --from https://github.com/ALERTua/bandcamp_newsfeed_rss bandcamp_newsfeed_rss\n```\n\n## Docker Deployment\n\n### Building the image and running the container\n```bash\n# Build the image\ndocker build -t bandcamp_newsfeed_rss .\n\n# Run the container using .env file\ndocker run -p 8000:8000 --env-file .env bandcamp_newsfeed_rss\n\n# Or run the container using the environment variable arguments\ndocker run -p 8000:8000 \\\n  -e BANDCAMP_USERNAME=your_username \\\n  -e IDENTITY=your_identity_cookie \\\n  -e TZ=Europe/Kiev \\\n  bandcamp_newsfeed_rss\n```\n\n### Using the pre-built image\n```bash\n# Run the container using .env file\ndocker run -p 8000:8000 --env-file .env ghcr.io/alertua/bandcamp_newsfeed_rss\n\n# Or run the container using the environment variable arguments\ndocker run -p 8000:8000 \\\n  -e BANDCAMP_USERNAME=your_username \\\n  -e IDENTITY=your_identity_cookie \\\n  -e TZ=Europe/Kiev \\\n  ghcr.io/alertua/bandcamp_newsfeed_rss\n```\n\n## Troubleshooting\n\n**Feed not loading?**\n- Verify your `BANDCAMP_USERNAME` is correct\n- Check that your identity cookie is valid (not expired)\n- Ensure you have access to the Bandcamp feed\n\n**Empty feed?**\n- Check if your Bandcamp feed has any items\n- Verify cookie permissions for private content\n\n**Docker issues?**\n- Ensure `.env` file exists in the current directory\n- Check port 8000 is not already in use\n\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falertua%2Fbandcamp_newsfeed_rss","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falertua%2Fbandcamp_newsfeed_rss","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falertua%2Fbandcamp_newsfeed_rss/lists"}