https://github.com/benekenobi/podcast_filter
Science Score: 13.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.0%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: BeneKenobi
- License: mit
- Language: Python
- Default Branch: main
- Size: 0 Bytes
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 1
Metadata Files
README.md
Podcast Filter
A simple web service that filters podcast RSS feeds based on episode title patterns. Built with FastAPI and Python.
Features
- Filter podcast episodes using regex patterns
- Web interface for generating filtered feed URLs
- Caching of RSS feeds for better performance
- Docker support for easy deployment
- Configurable via environment variables or config file
Quick Start
Using Docker
bash
docker pull ghcr.io/benekenobi/podcast-filter
docker run -p 8000:8000 ghcr.io/benekenobi/podcast-filter
Local Development
- Clone the repository
Install dependencies with uv:
bash curl -LsSf https://astral.sh/uv/install.sh | sh uv sync --frozen uv pip install --no-cache .Run the server:
bash python -m app.main
Visit http://localhost:8000 to access the web interface.
Configuration
Configuration can be done via environment variables or the config.ini file:
| Config Option | Environment Variable | Default | Description | |--------------|---------------------|---------|-------------| | Cache Size | PODCASTFILTERCACHEMAXSIZE | 100 | Maximum number of RSS feeds to cache | | Cache TTL | PODCASTFILTERCACHETTLSECONDS | 3600 | Time-to-live for cached feeds in seconds | | Server Port | PODCASTFILTERSERVERPORT | 8000 | Port the server listens on | | Server Host | PODCASTFILTERSERVERHOST | 0.0.0.0 | Host address to bind to | | Base URL | PODCASTFILTERBASE_URL | http://localhost:8000 | Base URL for the server |
API Usage
Filter Endpoint
GET /filter?url={podcast_url}&filter={regex_pattern}
Parameters:
- url: URL-encoded podcast RSS feed URL
- filter: URL-encoded regex pattern to match episode titles
Example:
http://localhost:8000/filter?url=https://example.com/feed.rss&filter=Interview
Development
Running Tests
bash
pytest tests/
Docker Build
bash
docker build -t podcast-filter .
Owner
- Name: Benedikt Schnur
- Login: BeneKenobi
- Kind: user
- Location: Germany
- Company: @MHH-Humangenetik
- Repositories: 7
- Profile: https://github.com/BeneKenobi
GitHub Events
Total
- Release event: 1
- Create event: 3
Last Year
- Release event: 1
- Create event: 3
Dependencies
- actions/checkout v4 composite
- docker/build-push-action v5 composite
- docker/login-action v3 composite
- docker/metadata-action v5 composite
- actions/checkout v4 composite
- actions/setup-python v5 composite
- python 3.10-alpine build
- cachetools *
- fastapi *
- httpx *
- pytest *
- requests *
- uvicorn *
- annotated-types 0.7.0
- anyio 4.8.0
- cachetools 5.5.1
- certifi 2025.1.31
- charset-normalizer 3.4.1
- click 8.1.8
- colorama 0.4.6
- exceptiongroup 1.2.2
- fastapi 0.115.8
- h11 0.14.0
- httpcore 1.0.7
- httpx 0.28.1
- idna 3.10
- iniconfig 2.0.0
- packaging 24.2
- pluggy 1.5.0
- podcast-filter 0.1.0
- pydantic 2.10.6
- pydantic-core 2.27.2
- pytest 8.3.4
- requests 2.32.3
- sniffio 1.3.1
- starlette 0.45.3
- tomli 2.2.1
- typing-extensions 4.12.2
- urllib3 2.3.0
- uvicorn 0.34.0