akhilrex / podgrab Goto Github PK
View Code? Open in Web Editor NEWA 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
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
First off, thanks for publishing this, at first glance it seems much faster than a dockerized instance of gPodder that I've been running with for a while. However, the former has a few niceties, and missing features, that hopefully wouldn't be too hard to add:
Demo link is just the github page.
Podgrab is downloading the latest podcasts, however, it's not creating update entries in the GUI.
RSS Link of Podcast: https://www.kuow.org/feeds/podcasts/seattlenow/podcasts/rss.xml
ls of the podcast folder:
"1-0001-01-01-'Defund'-ideas-police-can-get-behind.mp3" 1-0001-01-01-Phase-2.mp3 "1-0001-01-01-Who-will-be-Seattle's-next-mayor.mp3" 1-0001-01-01-Casual-Friday-with-Chase-Burns-and-Michael-Shawn-Dugar.mp3 1-0001-01-01-The-vaccine-line-jumpers.mp3
I think the new image being built by github actions is still set to private on your github account. The only public one is the old one from october (not docker hub but the packages tab on the profile)
I've tried to import both of these files and get an error that says Invalid File Format
, not sure what's going on. I've renamed them with a .txt
extension so I could upload, but they were originally .opml
PodcastAddict_OPML_export_20200916_062024.txt
all-subscriptions.txt
Just after seeing AntennaPod/AntennaPod#4960 and having read the readme, but without having tried or tested anything, I just felt like chipping in and be a podcastindex.org evengalist. It's a free and open source database with podcasts - integration with it would be a nice alternative to iTunes search.
when you show more it duplicates the episode info example
Born and raised in South America, chilis were the earliest crop domesticated in the continent and among the first items brought back to Europe by Columbus. Today people are really, really into them. Find out all about 'em in this classic episode. Learn more about your ad-choices at https://www.iheartpodcastnetwork.com show less
Born and raised in South America, chilis were the earliest crop domesticated in the continent and among the first items brought back to Europe by Columbus. Today people are really, really into them. Find out all about 'em in this classic episode. Learn more about your ad-choices at https://www.ihea show more
I have an enhancement request for you. Add the ability to import podcasts from an OPML file.
The episode summary is captured in the db but i dont see any way that will show it. hover, or show summary button in episode list would be nice
Love the new selectable layout. Is it possible to make the grid width variable? Its certainly much nicer now but lots of whitespace on screen still.. Loving the progress
Ive tried safari and firefox. When i hit play for an episode it just sits there. nothing happends
Thank you for working on this, the project looks amazing - it's great to see modern self-hosted projects like this!
Are you planning on adding some form of basic authentication? I would love to have podgrab exposed to the web, accessible on the go.
looks like all podcasts on the relay.fm site and other squarespace based sites are missing the icon on the home page. for example add a podcast like The Test Drivers. it has the default podgrab art. If you click on the podcast, individual episodes have the icon picture. Other podcasts are fine (serial, soundcloud based feed, other hosts, etc)
I am encountering an issue when using the web interface to download an episode already downloaded to my server by the docker container. The podcast player works but when I click the download episode file button it takes me to "https://assests/..." as opposed to the appropriate location to download the file.
Feature request for a visualized tab to view pending download queue. Bonus if we can pause/cancel/change order. Bonus if we can change setting for simultaneous downloads, set speed, etc.
Thanks for all your effort in developing this!
I posted feature request here
An integration between a self-hosted project like Podgrab and an open source client like AntennaPod would be great.
I like the abilities. I was thinking about it and would it be use to mark podcasts as "inactive" and add that as a filter somehow? that way only active are displayed on main page unless you switch filters. I can then see old ones so I dont download them again. Just thinking out loud
Hello!
Thanks for making this app, it's great. I had a few questions on possible features. Could you possibly add:
Thanks again.
It could be literally any podcast I have in my system. I have about 39 podcasts added.
For example:
Serial
Making
Lost Mountain Saga
As soon as I enable the 'automatically download new episodes to disk', then attempt to download all episodes of a different podcasts, both podcasts begin downloading.
If I then uncheck the option and add another podcast to the 'download all' queue, it sits there again.
I tested this both with, and without, the 'download episodes whenever a new podcast is added' enabled and it didn't seem to impact things. Only when 'automatically download new episodes to disk' is enabled will the podcasts download all episodes.
Again, this also doesn't impact single episode downloads, which always trigger as soon as I click them.
Unrelated but tangentially related, is there a reason all podcasts need to be queued (asking since I have 39 of them) for a 200 response before the one I just tried to download will begin downloading?
Thanks very much.
Originally posted by @undaunt in #9 (comment)
I am not sure if it was already happening before the latest update to fix the podcast list thumbnails but in episode tab, Accidental Tech Podcast and Robot or Not do not have thumbnails.
Similar to #25, could the ability to add an episode number to the file name based off of order of upload?
I found a podcast that did a bulk re-upload of their episodes on the same day and they reuse titles as it is a theatrical reading of a book.
I noticed when I ask an episode to download it says that it's adding to a download queue, but I don't see any way to see the status of that queue in the interface. It would be helpful to know what's being downloaded/how long the queue is.
To reproduce:
When I listen to podcasts, it is easiest to keep them in folders for each podcast. You have done this and it works well. Now, it would be nice if the filenames started with the Julian date (2021-01-14-PodcastName.mp3) so that they naturally sorted themselves. Currently, you are using just the name and they all just get jumbled out of chronological order.
I suppose you could get sophisticated and add a metadata mask like many other downloaders do, but for me, <podcast name>/<julian date>-<episode name>.<file extension>
is good enough. The mask might be popular because others would probably prefer all podcasts in one folder as: <podcast name>-<julian date>-<episode name>.<file extension>
.
Examples:
multi-folder
My Podcast/2021-01-01-Happy New Year.mp3
or
single folder
My Podcast-2021-01-01-Happy New Year.mp3
Thanks for your hard work on this, @akhilrex !
I'm wondering if you have plans to make this project a potential go-to for podcast listening? A few major things I see that could help get there:
When a feed has an episode with the same name podgrab simply overwrites the previous file.
Example feed had 3 years with each 12 episodes named "Drunksmas Day _":
Half Hour Happy Hour
I know I know... docker is the future, but I am not part of that future yet lol.
At some point I would love to install this on a fresh Ubuntu Server install minus docker.
Looks great!!
Related to #13
Would it be possible to have predefined lists of podcasts in separate queues? IE: I add two politics podcasts (Lets say 538 politics and NPR politics) to one predefined filter, "Political Shows" or whatever. I can then play through that queue, or come back to it later and go to the default recently added queue or another custom queue?
Basically this - https://support.pocketcasts.com/article/episode-filters/
I have a podcast containing the "|" character in the title. Once the file is saved, the character gets converted into "" instead (U+F027) on a SMB share. As a result, the file cannot be downloaded using the "Download episode file" button since it looks for the file with "|" in it. In addition, the player cannot play the episode either.
I have not tested this with other illegal characters so I don't know if this problem applies to those as well (such as * . " / \ [ ] : ; | ,).
There seems to be a date parsing error somewhere in your code.
I added Dan Carlin's hardcore history rss feed, and just one episode wasn't appearing. I thought it got skipped somehow, but went to "older" episodes and it showed up. Somehow the pub date was parsed and entered into the DB incorrectly for just that entry.
Here is the SQL insert command for that entry.
[100.376ms] [rows:1] INSERT INTO `podcast_items` (`id`,`created_at`,`updated_at`,`deleted_at`,`podcast_id`,`title`,`summary`,`episode_type`,`duration`,`pub_date`,`file_url`,`guid`,`image`,`download_date`,`download_path`,`download_status`) VALUES ("591fb0a7-dc26-42e2-a95b-3b151eb5d346","2021-01-02 02:51:17.31","2021-01-02 02:51:17.31",NULL,"3d015866-159e-41d3-9152-09524343d10f","Supernova in the East IV","Coral Sea, Midway and Guadalcanal are three of the most famous battles of the Second World War. Together they will shift the momentum in the Pacific theater and usher in the era of modern naval and amphibious warfare.","",0,"0000-00-00 00:00:00","http://feedproxy.google.com/~r/dancarlin/history/~5/lkhm6J41OJc/dchha65_Supernova_in_the_East_IV.mp3","http://traffic.libsyn.com/dancarlinhh/dchha65_Supernova_in_the_East_IV.mp3","","0000-00-00 00:00:00","",0)
Here is the line from the XLM that failed:
<pubDate>Wed, 3 Jun 2020 15:20:44 PST</pubDate>
Here is the line from the next episode that worked fine:
<pubDate>Fri, 13 Nov 2020 17:08:26 PST</pubDate>
Hello,
I was re-setting up the app from scratch after adding user: 1000:1000 into my compose. I then did precisely the following steps:
This kicked off every podcast downloading 5 episodes, the default from 'How many episodes to be downloaded when a new podcast is added' - even though the parent choice of 'Download episodes whenever new podcast is added' was disabled.
I intended to only download all episodes from one specific podcast, but none from anything else. The use case here being I want to archive my favorite shows but have all of them contained within the database for future OPML export and/or episode download, but only when I choose.
Thank you.
Shoutrrr provides a go library for sending notifications to various channels (slack, discord, email, etc).
It would be useful for notifying on new downloads.
Maybe do 1 notification for when adding a new podcast so it doesn't flood a bunch of new download notifications.
There appears to be slightly less white/black space on the /episodes
page than the other four pages between the page title and the horizontal bars. If you click through all of them you'll notice the difference.
Also, the home and settings headers appear slightly to the left of where add podcast and player appear. Not sure which pair is truly center and which is off centered.
I'd love to see a way to modify the mp3 id3 tags within podgrab.
I'm going to use Self-Hosted's rss as an example
My ideal scenario is:
<item><title>
<channel><title>
<item><author>
<channel><title>
<item><description>
In theory, for each podcast this should create a single artist within Plex, with a single album, and all episodes within that one album. I haven't quite figured out how best to do track number/year/etc.
as it stands all thumbnails for images for episodes and main index are remote. If my docker doesnt have external access for any reason all the images are dead. Could you at the minimum cache the main image for the podcast and even better to cache for episodes too. Although I think just the main image as the episode image would be more than ok
Dark background, lighter grey or white text, etc. for dark mode would be awesome.
Regarding the home page, you'd eliminate more white space if it were possible to put the sorting and layout options on the same vertical location as the home/episodes/settings/etc. header menu. The right side of that menu is currently available, and there's nothing to the left of the home page sorting/view options, so it would clean up a lot of unused space.
Hi,
Awesome work ! I'm searching podcast grabber for months ! Thank you very much.
I have a problem, Downloads folder is empty, no error on logs :
root@localhost:# /usr/local/emhttp/plugins/dynamix.docker.manager/scripts/docker run -d --name='podgrab' --net='bridge' -e TZ="Europe/Paris" -e HOST_OS="Unraid" -e 'CHECK_FREQUENCY'='30' -p '6680:8080/tcp' -v '/mnt/user/appdata/podgrab/':'/config':'rw' -v '/mnt/user/Downloads/':'/data':'rw' 'akhilrex/podgrab'
2020/11/07 14:24:28 �[32m/api/db/dbfunctions.go:30
�[0m�[33m[0.789ms] �[34;1m[rows:10]�[0m SELECT * FROM `podcast_items` ORDER BY pub_date desc LIMIT 10
[GIN] 2020/11/07 - 14:24:28 | 200 | 1.999848ms | 192.168.1.4 | GET "/episodes"
[GIN] 2020/11/07 - 14:24:28 | 304 | 56.274µs | 192.168.1.4 | GET "/webassets/axios.min.js"
[GIN] 2020/11/07 - 14:24:28 | 304 | 46.794µs | 192.168.1.4 | GET "/webassets/vue.js"
[GIN] 2020/11/07 - 14:24:28 | 304 | 74.153µs | 192.168.1.4 | GET "/webassets/vue-toasted.min.js"
[GIN] 2020/11/07 - 14:24:32 | 200 | 391.268µs | 192.168.1.4 | GET "/podcastitems/e18a8d66-b300-4a15-8e20-af22b77871cd/download"
/assets/Les Grosses Ttes/Emission-du-5-novembre-2020.mp3
Nothing is found on Downloads folder.
Thank you again :)
I'm coming from gPodder and have a fairly large library already built, is there a way for podgrab to scan the existing files and mark them as already downloaded?
Sorry, I didn't know where to post on Docker Hub but I know this is the code repo... here goes...
It would be nice if the Docker container allowed the setting of GUID / PUID in the environment variables (similar to all images produced by LinuxServer.io images. As it stands now, the Docker container downloads all files as root:root and then I must constantly chown the entire folder to work with it.
Thanks for your consideration.
I am seeing an issue where if a podcast releases multiple episodes per day, it only downloads the first one released. Is this a known limitation? I can provide the name of a podcast where I see the issue with if that helps.
Thanks
Hello !
First off, very nice project !!
I'd like to know if i can use Podgrab on a ARM computer like Raspberry, last Apple product (with Apple M1)...
Thanks !
First of all thank you for your work.
I really like the minimalistic design.
It would be great to have a progress bar, when downloading podcasts.
Currently you have to refresh the page to check if the file has been downloaded.
I didn't have a look at the code, so I don't know how feasible it would be to implement this feature.
TItle, essentially. Can we either choose the location of our backups, or instead direct them to the config location instead of asset location? I store my assets on a NAS, but keep all of my docker configs, databases, etc. in a separate ZFS location.
Thanks!
Great service, I really like it. Congratulations.
I wanted to make three suggestions.
So many great thanks
It would be useful to be able to see what file Podgrab thinks it has for the purposes of verifying what it's doing/removing duplicates.
Akhil, thanks so much for writing this. This is a great product and it really solves an issue for me.
Do you have any plan to setup Github sponsorship? I dont really trust putting my info into the "Buy Me A Coffee" link.
Thanks!
Thank you for your project, it looks quite promising!
I just tried added this podcast RSS: https://www1.wdr.de/mediathek/audio/wdr2/wdr2-zugabe/zugabe-podcast-100.podcast
However all items show up as "296 years ago" and in the overview "Last Episode : Jan 1 0001"
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.