A self-hosted podcast manager/downloader/archiver tool to download podcast episodes as soon as they become live with an integrated player.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Go to file
Akhil Gupta 8a76a55a2e
Merge pull request #40 from akhilrex/player
4 years ago
.github/workflows fix github token 4 years ago
client added podcast player 4 years ago
controllers added podcast player 4 years ago
db dark mode is ON! 4 years ago
images added more screenshots 4 years ago
internal/sanitize added podcast player 4 years ago
model Export OPML 4 years ago
service added podcast player 4 years ago
webassets added podcast player 4 years ago
.env enable basic authentication 4 years ago
.gitignore move backups to config path 4 years ago
Dockerfile add image label for github repo 4 years ago
LICENSE
Readme.md added developer note to readme 4 years ago
Screenshots.md added more screenshots 4 years ago
docker-compose.yml
go.mod fix missing podcast image issue #37 4 years ago
go.sum fix missing podcast image issue #37 4 years ago
main.go added podcast player 4 years ago

Readme.md

Contributors Forks Stargazers Issues MIT License LinkedIn


Podgrab

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.

Motivation

Podgrab started 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 by 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

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

Environment Variables

Name Description Default
CHECK_FREQUENCY How frequently to check for new episodes and missing files (in minutes) 30
PASSWORD Set to some no empty value to enable Basic Authentication, username podgrab (empty)

License

Distributed under the MIT 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)
  • Rudimentary downloading/downloaded indicator
  • Played/Unplayed Flag
  • OPML import
  • OPML export
  • Set ID3 tags if not set
  • Filtering and Sorting options
  • In built podcast player

Contact

Akhil Gupta - @akhilrex

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

Buy Me A Coffee