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

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

    To create a self-contained binary that runs without Python installed:

    pip install pyinstaller
    pyinstaller --onefile --hidden-import=rich --hidden-import=textual castAway/cli.py
    

📂 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. #\x00 \x00c\x00a\x00s\x00t\x00a\x00w\x00a\x00y\x00 \x00 \x00

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.1.tar.gz (18.5 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.1-py3-none-any.whl (18.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: castaway_cli-0.0.1.tar.gz
  • Upload date:
  • Size: 18.5 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.1.tar.gz
Algorithm Hash digest
SHA256 10213d2120f4f8c5bd0b6ea940bd150d705317c0e88652cb8eefbe664c90716d
MD5 261e43d922930e95dce6b1ff81d48ac3
BLAKE2b-256 e7721d91e862cb280fdcc8b0de7916a7dda7eb26ce70044cebcddf3330ad36e8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: castaway_cli-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 18.0 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d1c9bc18316de225da732c7fa49478149b92dbb53b499c7a13a2224a7a90ff8a
MD5 35470a3e193b8410b6c54a1b5feb751c
BLAKE2b-256 8f17d9b72c93acb3a8d941868b360ab3566824bf90ecf6b36d4d4daa64af4ee3

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