https://github.com/benekenobi/podcast_filter

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
Last synced: 9 months ago · JSON representation

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
Created over 1 year ago · Last pushed over 1 year ago
Metadata Files
Readme License

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

  1. Clone the repository
  2. Install dependencies with uv: bash curl -LsSf https://astral.sh/uv/install.sh | sh uv sync --frozen uv pip install --no-cache .

  3. 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

GitHub Events

Total
  • Release event: 1
  • Create event: 3
Last Year
  • Release event: 1
  • Create event: 3

Dependencies

.github/workflows/docker-build.yml actions
  • actions/checkout v4 composite
  • docker/build-push-action v5 composite
  • docker/login-action v3 composite
  • docker/metadata-action v5 composite
.github/workflows/tests.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
Dockerfile docker
  • python 3.10-alpine build
pyproject.toml pypi
  • cachetools *
  • fastapi *
  • httpx *
  • pytest *
  • requests *
  • uvicorn *
uv.lock pypi
  • 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