Coder Social home page Coder Social logo

podfox's Introduction

podfox - podcatching for the terminal.

podfox logo

A program for managing & catching podcasts from the terminal.

Work in Progress and unfinished. Use at your own risk.

Requirements

requires feedparser, requests and colorama

install automatically via pip:

pip install podfox

Configuration

podfox main configuration file is called .podfox.json and should be located in your home directory. Here is mine:

{
    "podcast-directory" : "/home/basti/podcasts",
    "maxnum"            : 5
}

podcast-directory is your main directory to store podcast data. This directory should be empty before you begin adding feeds. maxnum describes the maximum number of episodes you want to download with a single download-command.

Directory Structure

In podfox, every podcast is identified with its own shortname, which is restricted to lowercase-letters, numbers, and dashes. If the shortname is not specifically given during import, it will be derived from the title of the feed. The following shows a directory tree for such a setup, including two podcasts, each with its own feed.json file for bookkeeping.

+ podcast-directory
|              
+-----------+ python-for-rockstars
|           |
|           + feed.json
|           + episode1.ogg
|           + episode2.ogg
|
+-----------+ cobol-today
            |
            + feed.json
            + episode289.ogg
            + episode288.ogg

Usage:

    podfox.py import <feed-url> [<shortname>]
    podfox.py update [<shortname>]
    podfox.py feeds
    podfox.py episodes <shortname>
    podfox.py download [<shortname> --how-many=<n>]

Import

To import a new feed use: podfox.py import <feed-url> [<shortname>] For example, to import the haskell cast feed:

podfox import http://www.haskellcast.com/feed.xml To import the techsnap podcast, and to store the episodes to a specific folder ts, use

podfox import http://feeds.feedburner.com/techsnapmp3 ts

Update

podfox update will update all feeds (This does not include downloading any new episodes)

podfox update <shortname> will only update the feed associated with the given shortname

Feeds

podfox feeds will give an overview over the imported pocasts, and their shortnames. In the example:

$ podfox feeds
title                                     |  shortname           
================================================================
TechSNAP MP3                              |  ts                  
The Haskell Cast                          |  the-haskell-cast    

Episodes

podfox episodes <shortname> will produce a list of episodes available for this podcast, and wether they have been downloaded yet.

$ podfox episodes ts
A Rip in NTP | TechSNAP 237               |  Not Downloaded      
National Security Breaking Agency | Tech  |  Not Downloaded      
Catching the Angler | TechSNAP 235        |  Not Downloaded      
Key Flaw With GPL | TechSNAP 234          |  Not Downloaded      
Dukes of Cyber Hazard | TechSNAP 233      |  Not Downloaded      
Hardware Insecurity Module | TechSNAP 23  |  Not Downloaded      
Leaky RSA Keys | TechSNAP 231             |  Not Downloaded      
Trojan Family Ties | TechSNAP 230         |  Not Downloaded      
Extortion Startups | TechSNAP 229         |  Not Downloaded      
[...]

Downloading

podfox download will download maxnum not yet downloaded episodes for every feed (if possible.)

podfox download ts --how-many=3 will download the 3 newest techsnap podcasts that have not yet been downloaded. (Skipping newer, but already downloaded ones). If the --how-many parameter is omitted, the maxnum parameter from the configuration file is used instead.

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.