Skip to main content

castAway

Project description

🎙️ Cast-Away

Minimalist TUI Podcast Client for Hackers

Cast-Away is a lightweight, keyboard-driven terminal application designed for developers who want to listen to podcasts without leaving their terminal environment. Built with Python and Textual, it provides a distraction-free experience with real-time audio visualization.

✨ Features

  • RSS Integration: Add any public podcast RSS feed (NPR, BBC, Darknet Diaries, etc.).
  • Dynamic UI: Responsive grid layout that maps your podcast library from a local JSON store.
  • Smooth Playback: Non-blocking audio streaming using Pygame.mixer.
  • ASCII Visualizer: Real-time audio waveform animation in the terminal.
  • Self-Contained: No external dependencies required once compiled.

🛠️ Requirements (TerminalCraft v2)

  • Real Problem: Solves the "heavy GUI" problem of modern podcast apps.
  • Unix Support: Tested on Linux, macOS, and WSL.
  • Open Source: Licensed under MIT for the community.
  • No Wrapper: Custom built RSS parser and audio manager (not just a wrapper).

🚀 Quick Start 🚀 Quick Start

  1. Installation

    Ensure you have Python 3.8+ installed. Clone the repo and install dependencies:

    git clone https://github.com/MadushankaRajapaksha/castAway.git
    cd castAway
    pip install -e .
    
  2. Run the App

    castAway
    

    Or run directly with Python:

    python -m castAway
    

📂 Project Structure

castAway/
├── cli.py          # Main entry point and CLI interface
├── core.py         # Core RSS parsing and podcast logic
├── db.py           # Database management for subscriptions
├── player.py       # Audio playback functionality
├── screen.py       # TUI interface using Textual
└── test.py         # Testing utilities

📸 Screenshots & Demo (Tip: Add a GIF here showing you searching for a podcast and playing it!)

🔧 Development & Contributing

We welcome contributions! Here's how to set up your development environment:

# Clone the repository
git clone https://github.com/MadushankaRajapaksha/castAway.git
cd castAway

# Install in development mode
pip install -e .

# Install development dependencies
pip install pytest pytest-cov flake8 black isort mypy

# Run tests
pytest

# Format code
black castAway/
isort castAway/

📦 Automated Releases

This project uses GitHub Actions for CI/CD:

  • CI Pipeline: Runs on every push and PR with:

    • Unit tests across Python 3.8-3.12
    • Code linting (flake8, black, isort)
    • Type checking (mypy)
    • Code coverage reporting
  • PyPI Release: Automatically publishes to PyPI when you push a version tag:

    git tag v0.1.0
    git push origin v0.1.0
    

👥 User Testing We are looking for at least 10 active users! If you find a bug or have a feature request, please Open an Issue.

🌍 Open Source & License Distributed under the MIT License. See LICENSE for more information.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

castaway_cli-0.0.2.tar.gz (18.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

castaway_cli-0.0.2-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

File details

Details for the file castaway_cli-0.0.2.tar.gz.

File metadata

  • Download URL: castaway_cli-0.0.2.tar.gz
  • Upload date:
  • Size: 18.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for castaway_cli-0.0.2.tar.gz
Algorithm Hash digest
SHA256 13c77ba03118585d47d5fa3fc4fdfc8d89e5e818805da96d47a5b66a66b5b716
MD5 e0ec9478ea19b9aa1336a9ed79f43165
BLAKE2b-256 c5487ee2f1c831be6a250cf549dfb1e7b3d4ca2d5268c8cab7664bef22371908

See more details on using hashes here.

File details

Details for the file castaway_cli-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: castaway_cli-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 18.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for castaway_cli-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6b9a765d9c68568985458503b9fc3af021dad13b28dfc59ef0de9d21cb900212
MD5 6cb617676176deb502f6f19e54287226
BLAKE2b-256 6057d044b1347868403625cd6412a838b411ae41c2302e8df6570b248746f2cf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page