cld4h / podgrab

A self-hosted podcast manager/downloader/archiver tool to download podcast episodes as soon as they become live with an integrated player.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Contributors Forks Stargazers Issues MIT License LinkedIn


Podgrab

Current Version -2022.07.07

A self-hosted podcast manager to download episodes as soon as they become live
Explore the docs »

Report Bug · Request Feature · Screenshots

Table of Contents

About The Project

Podgrab is a is a self-hosted podcast manager which automatically downloads latest podcast episodes. It is a light-weight application built using GO.

It works best if you already know which podcasts you want to monitor. However there is a podcast search system powered by iTunes built into Podgrab

Developers Note: This project is under active development which means I release new updates very frequently. It is recommended that you use something like watchtower which will automatically update your containers whenever I release a new version or periodically rebuild the container with the latest image manually.

Also check out my other self-hosted, open-source solution - Hammond - Vehicle and Expense management system.

Motivation

Podgrab started as a tool that I initially built to solve a specific problem I had. During the COVID pandemic times I started going for a run. I do not prefer taking my phone along so I would add podcast episodes to my smart watch which could be connected with my bluetooth earphones. Most podcasting apps do not expose the mp3 files directly which is why I decided to build this quick tool for myself. Once it reached a stage where my requirements were fulfilled I decided to make it a little pretty and share it with everyone else.

Product Name Screen Shot More Screenshots

Built With

Features

  • Download/Archive complete podcast
  • Auto-download new episodes
  • Tag/Label podcasts into groups
  • Download on demand
  • Podcast Discovery - Search and Add podcasts using iTunes API
  • Full-fledged podcast player - Play downloaded files or stream from original source. Play single episodes, full podcasts and podcast groups(tags)
  • Add using direct RSS feed URL / OMPL import / Search
  • Basic Authentication
  • Existing episode file detection - Prevent re-downloading files if already present
  • Easy OPML import/export
  • Customizable episode names
  • Dark Mode
  • Self Hosted / Open Source
  • Docker support

Installation

The easiest way to run Podgrab is to run it as a docker container.

Using Docker

Simple setup without mounted volumes (for testing and evaluation)

  docker run -d -p 8080:8080 --name=podgrab akhilrex/podgrab

Binding local volumes to the container

   docker run -d -p 8080:8080 --name=podgrab -v "/host/path/to/assets:/assets" -v "/host/path/to/config:/config"  akhilrex/podgrab

Using Docker-Compose

Modify the docker compose file provided here to update the volume and port binding and run the following command

version: "2.1"
services:
  podgrab:
    image: akhilrex/podgrab
    container_name: podgrab
    environment:
      - CHECK_FREQUENCY=240
     # - PASSWORD=password     ## Uncomment to enable basic authentication, username = podgrab
    volumes:
      - /path/to/config:/config
      - /path/to/data:/assets
    ports:
      - 8080:8080
    restart: unless-stopped
   docker-compose up -d

Build from Source / Ubuntu Installation

Although personally I feel that using the docker container is the best way of using and enjoying something like Podgrab, a lot of people in the community are still not comfortable with using Docker and wanted to host it natively on their Linux servers. Follow the link below to get a guide on how to build Podgrab from source.

Build from source / Ubuntu Guide

Environment Variables

Name Description Default
CHECK_FREQUENCY How frequently to check for new episodes and missing files (in minutes) 30
PASSWORD Set to some non empty value to enable Basic Authentication, username podgrab (empty)
BIND_ADDR Change the binding address of the application. If you change this you might have to change your docker configuration as well "127.0.0.1:1251"

Setup

  • Enable websocket support if running behind a reverse proxy. This is needed for the "Add to playlist" functionality.
  • Go through the settings page once and change relevant settings before adding podcasts.

License

Distributed under the GPL-3.0 License. See LICENSE for more information.

Roadmap

  • Basic Authentication
  • Append Date to filename
  • iTunes Search
  • Existing episodes detection (Will not redownload if files exist even with a fresh install)
  • Downloading/downloaded indicator
  • Played/Unplayed Flag
  • OPML import
  • OPML export
  • In built podcast player
  • Set ID3 tags if not set
  • Filtering and Sorting options
  • Native installer for Windows/Linux/MacOS

Contact

Akhil Gupta - @akhilrex

Project Link: https://github.com/akhilrex/podgrab

Buy Me A Coffee

About

A self-hosted podcast manager/downloader/archiver tool to download podcast episodes as soon as they become live with an integrated player.

License:GNU General Public License v3.0


Languages

Language:JavaScript 56.5%Language:HTML 23.6%Language:Go 19.7%Language:Dockerfile 0.1%