Giter VIP home page Giter VIP logo

allcasts's Introduction

allcasts ๐Ÿ“ป ๐Ÿ—ƒ

PyPI version

A Python package for downloading all available episodes from a podcast RSS feed. Useful for making private archives of your favourite podcasts.

Demonstration GIF

Installation

pip install allcasts

Usage

Command Line: Interactive Mode

From your terminal run allcasts which will kindly ask you for the an RSS feed's URL and download all available episodes for that podcast.

$ allcasts
==========================================================
 ========= Welcome to the AllCasts App! ========
==========================================================
Please enter the URL of the podcast feed you want to download: https://atp.fm/rss
Please enter the directory you want to download the podcast to [leave blank for current dir]: 
Downloading all podcasts from https://atp.fm/rss to /Users/lewis/Documents/Python-Projects/allcasts
Downloading https://traffic.libsyn.com/atpfm/atp464.mp3
[............................................................................................]
๐ŸŽง Downloaded 464: Monks at Drafting Tables
Downloading https://traffic.libsyn.com/atpfm/atp463.mp3
[............................................................................................]
๐ŸŽง Downloaded 463: No Indication of Progress
Downloading https://traffic.libsyn.com/atpfm/atp462.mp3
[............................................................................................]
๐ŸŽง Downloaded 462: Xcode X
Downloading https://traffic.libsyn.com/atpfm/atp461.mp3
[...........                                                                                 ]

Command Line: Arguments

Allcasts supports a variety of command line arguments. To display help message below use allcasts -h

usage: allcasts.py [-h] (-f <URL> | -i <FILE>) [-d <DIRECTORY>] [-t] [-s <NUMBER>] [-e <NUMBER>] [-a] [-n <NUMBER>] [-l] [-v]

A friendly command line podcast downloader - supports downloading entire feeds, individual episodes, and a range of episodes

optional arguments:
  -h, --help            show this help message and exit
  -f <URL>, --feed <URL>
                        the url of the podcast feed
  -i <FILE>, --input <FILE>
                        the input file containing a list of podcast feeds
  -d <DIRECTORY>, --directory <DIRECTORY>
                        the directory to save the podcast episodes
  -t, --transcribe      transcribe the podcast episodes to text
  -s <NUMBER>, --start <NUMBER>
                        the number of the first episode to download
  -e <NUMBER>, --end <NUMBER>
                        the number of the last episode to download
  -a, --all             download all episodes
  -n <NUMBER>, --number <NUMBER>
                        download a specific episode
  -l, --latest          download the latest episode
  -v, --version         display the version number

Example Commands

  • Download episodes 100 to 120
allcasts -f "https://atp.fm/rss" -s 100 -e 120
  • Download all episodes of a podcast
allcasts -f "https://atp.fm/rss" -a
  • Download episode 200
allcasts -f "https://atp.fm/rss" -n 100
  • Download a list of RSS feeds
allcasts -i "podcast_feeds.txt"
  • Transcribe downloaded episodes to a txt file for keyword searching
allcasts -f "https://atp.fm/rss" -t

As a Python module

allcasts is a Python module that can be imported and used in your own Python code too!

from allcasts import AllCasts

AllCasts.download_all('https://atp.fm/rss', '/Users/lewis/Documents/Python-Projects/allcasts')

Limitations

  • Private Patreon RSS feeds are not currently supported due to their strange DRM measures.

Todo

  • Add audio transcription using speech_recognition module
  • Add support for private Patreon RSS feeds
  • Add support for downloading multiple podcasts at once.
  • Add support for command line arguments.
  • Add itunes API support to search for podcasts and select the correct feed.

allcasts's People

Contributors

illegalbyte avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.