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.0.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.0-py3-none-any.whl (18.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: castaway_cli-0.0.0.tar.gz
  • Upload date:
  • Size: 18.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.18

File hashes

Hashes for castaway_cli-0.0.0.tar.gz
Algorithm Hash digest
SHA256 4a9ef3f738b5eba70ba7ea409d6480c040a1c8d853be03fc22c076adedd76d80
MD5 eb2da86044ba5721491928fa3423ce3f
BLAKE2b-256 f31adaa5a3e250d5eb1021acf0d1e6716c94bc3af9a8db1c484afe66a386c751

See more details on using hashes here.

File details

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

File metadata

  • Download URL: castaway_cli-0.0.0-py3-none-any.whl
  • Upload date:
  • Size: 18.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.18

File hashes

Hashes for castaway_cli-0.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d67db4fd748ad43a6c24f74c11f4ec7b40506949a6a5c71186765db8ab1e2d32
MD5 ffd48f130890f15ce249d9fbee035566
BLAKE2b-256 54ae7585e3af0da474587bd00157b91a67adf603df268964fc5655cfe004f7d4

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