Skip to content

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.

Notifications You must be signed in to change notification settings

MadushankaRajapaksha/castaway

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Jan 24, 2026
3f14ec7Β Β·Β Β· Jan 24, 2026

History

10 Commits
Dec 30, 2025
Jan 24, 2026
Dec 30, 2025
Dec 30, 2025
Jan 24, 2026
Dec 30, 2025
Jan 24, 2026

Repository files navigation

πŸŽ™οΈ 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

  • One-Click Popular Feeds: Add 12+ popular podcasts with a single click from curated categories.
  • RSS Integration: Add any public podcast RSS feed or enter custom URLs.
  • Smooth Playback: Non-blocking audio streaming using Pygame.mixer.
  • ASCII Visualizer: Real-time audio Processbar 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  .

    or via pip

    pip install castaway-cli
    
    
  2. Upgrade: Ensure you have the latest version of Cast-Away by running:

    pip install --upgrade castaway-cli
    
    
  3. 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
ities

πŸ“– User Guide: How to Get RSS Feeds

This comprehensive guide will help you find and add RSS feeds to your Cast-Away podcast library.

🎯 What is an RSS Feed?

RSS (Really Simple Syndication) feeds are web feeds that allow you to receive updates from websites, including podcast episodes. For podcasts, RSS feeds contain information about episodes, audio files, and show metadata.

πŸ” Finding RSS Feeds for Your Favorite Podcasts

Method 1: Direct from Podcast Websites

  1. Visit the podcast's official website
  2. Look for RSS feed links - usually marked with:
    • An RSS icon (πŸ“‘ or πŸ“»)
    • "Subscribe" or "RSS" buttons
    • Links ending in .xml or containing /feed/

Example Podcasts with Direct RSS Links:

  • Darknet Diaries: https://feeds.megaphone.fm/darknetdiaries
  • This American Life: https://www.thisamericanlife.org/podcast/rss.xml
  • NPR Podcasts: Look for "RSS" links on individual show pages
  • BBC Sounds: Check the podcast's page for RSS subscription options

Method 2: Using Podcast Aggregators

Popular podcast platforms often provide RSS feeds:

  1. Apple Podcasts:

    • Search for your podcast
    • Click the "Share" button
    • Copy the RSS feed URL
  2. Spotify:

    • Some podcasts show RSS links in their description
    • Use third-party tools to extract RSS from Spotify
  3. Google Podcasts:

    • Open the podcast page
    • Look for RSS feed information

Method 3: Podcast Search Engines

Use these websites to search for podcasts and get their RSS feeds:

Method 4: Using RSS Feed Discovery Tools

  • RSS.com Podcast Directory: https://rss.com/podcasts/
  • Podcast Republic: Offers RSS feed discovery
  • gPodder Directory: Open-source podcast directory

πŸ“ Popular Podcast RSS Feed Examples

Here are some popular podcasts with their RSS feeds to get you started:

Technology & Hackingking

  • Darknet Diaries: https://feeds.megaphone.fm/darknetdiaries
  • Security Now: https://feeds.twit.tv/sn.xml
  • Command Line Heroes: https://www.redhat.com/en/command-line-heroes/feed.xml

News & Current Affairsairs

  • NPR News Now: https://www.npr.org/rss/podcast.php?id=500005
  • BBC Global News: https://podcasts.files.bbci.co.uk/p02nq0gn.rss
  • The Daily (NYT): https://feeds.simplecast.com/54nAGcIl

Technology & Developmentment

  • Syntax.fm: https://feeds.simplecast.com/4qg_LgQw
  • Software Engineering Daily: https://softwareengineeringdaily.com/feed/podcast/
  • The Changelog: https://changelog.com/podcast/feed

Storytelling & Entertainmentment

  • This American Life: https://www.thisamericanlife.org/podcast/rss.xml
  • Radiolab: https://feeds.wnyc.org/radiolab
  • 99% Invisible: https://feeds.99percentinvisible.org/99percentinvisible

βž• Adding RSS Feeds to Cast-Away

Cast-Away offers two easy ways to add podcasts:

Method 1: One-Click Popular Feeds (Recommended for Beginners)

  1. Launch Cast-Away
  2. Click "Add New Feed" button
  3. Browse curated categories of popular podcasts:
    • Technology & Hackingking: Darknet Diaries, Security Now, Command Line Heroes
    • News & Current Affairsairs: NPR News Now, BBC Global News, The Daily (NYT)
    • Technology & Developmentment: Syntax.fm, Software Engineering Daily, The Changelog
    • Storytelling & Entertainmentment: This American Life, Radiolab, 99% Invisible
  4. Click "Add" next to any podcast to subscribe instantly
  5. The app automatically fetches episodes and adds them to your library

Method 2: Custom RSS Feeds

If you want to add a podcast that's not in our curated list:

  1. Launch Cast-Away
  2. Click "Add New Feed" button
  3. Scroll to "Or Add Custom Feed" section
  4. Paste the RSS feed URL in the input field
  5. Click "Add Feed"
  6. The app will fetch and validate the feed automatically

Both methods support the same RSS feed formats and will automatically detect podcast metadata like titles, descriptions, and episode information.

βœ… Verifying RSS Feeds

Before adding an RSS feed to Cast-Away:

  1. Test the feed URL in a web browser - you should see XML content
  2. Check feed validity using tools like:

πŸ”§ Troubleshooting RSS Feeds

Common Issues and Solutions:

  1. "Invalid RSS Feed" Error

    • Verify the URL is correct
    • Ensure the feed is still active
    • Check if the feed requires authentication
  2. "Feed Not Updating" Issue

    • Some feeds may have caching delays
    • Check the feed's update frequency
    • Verify the podcast is still producing episodes
  3. "Cannot Parse Feed" Error

    • The feed format might be incompatible
    • Try a different feed source for the same podcast
    • Check if the feed uses non-standard elements

πŸ“Š Understanding the Interface

The Cast-Away interface consists of:

  1. Podcast Library: List of your subscribed podcasts
  2. Episode List: Episodes for the selected podcast
  3. Audio Visualizer: Real-time ASCII waveform display
  4. Status Bar: Current playback information

🎯 Quick Start Checklist

  • Install Cast-Away
  • Launch the app and click "Add New Feed"
  • Browse popular podcasts and add 3+ with one click
  • Or add custom podcasts by pasting RSS URLs
  • Test audio playback on any episode
  • Explore keyboard shortcuts for navigation

πŸ†˜ Getting Help

If you encounter issues:

  1. Check this guide for RSS feed troubleshooting
  2. Verify your RSS feed URLs are correct
  3. Ensure you have internet connectivity
  4. Check the application logs for error messages
  5. Report issues on the GitHub repository

❓ Frequently Asked Questions

Q: How do I add podcasts? A: Click "Add New Feed" and choose from popular podcasts with one click, or paste a custom RSS URL..

Q: Can I import my podcast subscriptions from other apps? A: Yes, you can export OPML files from most podcast apps and import them into Cast-Away..

Q: How do I update my podcast feeds? A: Use the 'r' key to refresh all feeds or restart the application..

Q: Can I download episodes for offline listening? A: Cast-Away streams episodes but may cache recently played content..

Q: What audio formats are supported? A: Most common audio formats including MP3, AAC, and OGG..

Q: How do I backup my podcast subscriptions? A: Your subscriptions are stored in a local database file in the application directory..

πŸ”§ Development & Contributingting

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/y/

πŸ“¦ 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.00

πŸ‘₯ 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.ion..


Happy podcast listening with Cast-Away! πŸŽ™οΈ

About

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.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages