I mainly use AntennaPod to listen to podcasts I subscribed to, but from time to time I also listen to mp3 files I have on my SD card (an old podcast which closed but made all its archives available).
So I suggest the following feature: allowing user to add local files to the queue, these files being stored locally.
I see different ways to do this:
I know it is possible to open a file with AntennaPod from the file manager, but this way does not allow one to build a listening list (the queue) with episodes both from classic feeds and from local files.
+1
I think @cactux 's 2nd suggestion would be less confusing. Adding a local directory could be seen as adding a feed's URL. I second that suggestion.
Thirded the suggestion! I can already play the audiobooks if i specify Antennapod as an external player for another app but this would be a far more practical solution
+1. Totally. I'd love to play manually-downloaded episodes.
+1. This would be a great addition.
+1 I was looking for a way to do this.
:+1: Would be a nice addition - a designated 'manual downloads' directory would be fine.
I have to agree with this. I'm currently using the closed source "Podcast Addict" because it has this feature, but I'd like to be able to ditch it.
Is there a way to add local files to the queue- similar to what is noted above? I have tried all sorts of things, but nothing seems to work, I could really use some help. Thanks.
There is no way, no.
+1
+1
So this never happened? Shame, I'd like to use this app but I'm not going to have separate players for podcasts and audiobooks, I see them as pretty much the same thing.
Podcasts and Audio books are like Coke and Pepsi.
Besides, we are not a general audio player and we don't want to be one.
Are coke and pepsi different? I'd never drink either, both are brown, toxic sugar water to me.
It doesn't need to be a general audio player, just allow files to be added from a folder rather than a feed? I suppose I could do it myself by setting up a feed on my PC containing the audio book files then add that feed to the app and download them as if it's a feed online but that's a lot of hassle that I'm not willing to go through. It's still going to a folder on my phone?
The point is, it's pretty much the same, an audio book is an audio file that I want to be able to play and have the playback progress saved, that's all....why does that matter if it comes from a feed online and is described as a "podcast" or comes from a folder on my phone and is described as an "audio book". I just want to listen to audio files of people talking (call them what you want) in the same app, regardless of if I copy them to a folder on my phone or download them to a folder on my phone from an RSS feed.
People usually either like Pepsi or they like Coke. I for one don't get why there even is such a thing like audio books...
why does that matter...
It matters because all our current code is written that way. There are a lot of things that simply don't make any sense when it is a local folder instead of an online feed, e.g. [auto] refresh, auto download, sharing.
Next difficulty: We currently get most if not all of the information from the feed, including the feed and episode cover. Extracting information like duration from the file is prone to error and getting embedded images out of a file is really, really slow (that is, among others, why we currently don't do that).
In my opinion, we would have to implement far too many changes to do something I think we should not be doing at all. Do one thing and do it well.
Completely ignore the topic of audiobooks. I download a podcast from somewhere manually (because it doesn't have a feed available, etc.) and want to play it via AntennaPod.
Now we have coke and coke.
Thanks for the more useful technical explanation for why you don't want to implement this, although it's certainly disappointing from a featureset.
Perhaps I will look into making some kind of app to generate an rss feed from a local directory that antennapod can then scrape like any other feed - would antennapod be able to get the data files from local filesystem rather than through HTTP or whatever? Obviously even if this works, it will waste disk space though due to antennapod making a copy of the data.
(Auto) Refresh - Check folder for changes?
Auto Download - Not needed
Sharing - Who cares?
I don't need an image for the file, don't really need the tags, a filename will do. It's going to be in my pocket while I listen to it, I'm not going to sit staring at the cover image.
If you really want to do one thing and do it well then shouldn't you be just downloading the files for another media player to play?
Completely ignore the topic of audiobooks. I download a podcast from somewhere manually (because it doesn't have a feed available, etc.) and want to play it via AntennaPod.
I have the same use case.
possible folder organisation (disclaimer: don't know anything about current implementation):
cheers
I for one don't get why there even is such a thing like audio books...
because there's people with bad sight or severe dyslexia who also enjoy a story from time to time (and benefit from specific functionalities that certain audio book formats provide)... :S
At the least, when I click "Add Podcast" and the first heading is "Find Podcast in Directory" and I put a bunch of podcasts in the "Podcast" directory of my phone. So I was pretty confused as to why I couldn't play them.
Maybe change that heading to "Find Podcasts by Service"? That would be less confusing.
@Ghoughpteighbteau not sure I understand. It clearly says in the text right below the heading that you can either search gpodder or itunes (and these are the only two buttons). What made you think that this had anything to do with a local folder?
Two reasons.
One is... That's what Directories are to me. I dunno what they are to other people but to me a Directory is a location where files and other directories are stored on the file system. I've never seen that term used outside that. Ever. In 30 years of life. (well, at least in regards to computers)
Two is that I knew it had to be possible, I didn't think an audio player would not be capable of playing files off the filesystem. I never even considered it. So I figured there must of being some kind of permissions or other issue that was preventing the application from doing so, and it chose to hide the button in response to that issue. It would be a little weird to do this, but it's weirder to refer to a "feed" or "service" as a directory, as I see it.
AntennaPod already plays audio files that I have saved elsewhere on my phone. I set it as my default player, and audio files that are already downloaded on my phone play through the app. I don't understand why the app recognizes the file, plays the file, but I cannot add the already downloaded file to my queue.
I dunno what they are to other people but to me a Directory is a location where files and other directories are stored on the file system.
Yep, that is a file directory.
Might be a bad choice of words, the original developer is German like me. But according to various dictionaries and WP, there are telephone directories, business directories, web directories... Podcast directories...
I didn't think an audio player would not be capable of playing files off the filesystem.
AntennaPod is not really an audio player and I don't want it to be one. It is a podcast manager.
So I figured...
What you are describing would the worst user interface, ever. I would immediately uninstall any app that does such shenanigans.
I don't understand why the app recognizes the file, plays the file, but I cannot add the already downloaded file to my queue.
There are IO kinds of people. And those that know how to write code obviously never felt the need for this.
Just playing a file from the file system is pretty easy, but keeping the app is sync with a directory is a lot more work. We'd have to read the content periodically, add new files, remove deleted ones, try to make some sense out of them (reading ID3 tags, parse file name, get the cover from somewhere).
Then people would probably ask for not one folder, but subfolders that represent genres or podcasts. Gets more and more complicated and less and less what we want AntennaPod to be.
I honestly never felt the need to add a local file. I would install a dedicated app to play audio books and I do not now of any podcast that is not available anymore.
Long story short: We would of course accept a pull request for this, but I personally don't have any use for this feature. Time is sparse and there are a lot of other things that have higher priority for me.
+1 for this as well as #205 .
@mfietz is there a quick-and-dirty fix for this? I tried simply creating a new folder in .../files/media and dropping the .mp3 inside but Antenapod doesnt seem to recognize it.
Where/how does it keep track of what subscribed podcasts?
What would it take for me as a user to "trick" antenapod into thinking that there is a podcast there (may be unreachable (404), no image, etc..)?
is there a quick-and-dirty fix for this?
Do I seem that sadistic? If where was, I would have said so and not have this lengthy discussion
Where/how does it keep track of what subscribed podcasts?
Erm, a database? Has a list of feed URLs and keeps track of stuff?
What would it take for me as a user to...
You could maybe host a Atom or RSS feed on your own server that links to local files on your device instead of files on a server. But there is no easy hack.
Do I seem that sadistic? If where was, I would have said so and not have this lengthy discussion
ROFL I guess not. I was thinking that the discussion was only focused on "nice/permanent" solutions.
Hmmmm... I guess I will just have to wait until a I or a nice volunteer has time/interest to implement this.
thnx for awesome volunteer work and app!
no no man. I understand the technical limitations here, and it's good to see you're open to pull requests. I believe that's very reasonable.
Just understand that there's going to be a portion of your users that are going to expect this feature must exist, and you need some mechanism to communicate that it isn't there. Which sucks because you're open to this feature existing, and I have no idea how to communicate to a user: "This feature doesn't exist yet because of some technical jiggery pokerey, but if someone is willing to put the time in, it will exist". That is... _without_ using the geo-cities style "Under Construction" GIF. lol.

Just understand that there's going ...
I disagree. I don't find it not reasonable at all to expect this feature after the text directly below the heading does not suggest anything it that direction (RTFM?. Just assuming that putting files into a random file directory will magically make the accessible in the app is not reasonable, either. I don't think we give you any reason to assume this, it is just wishful thinking.
Ah ok. I'll make sure to check myself in to the doctor then. I'm clearly aberrant.
for the time being i put all my audio books and files into a single directory on my server and use the following script to generate a rss feed antennapod can use. all very quickly done and hacky, but it works.
#!/usr/bin/env python
import os
import sys
import datetime
import time
from stat import *
def formatDate(dt):
return dt.strftime("%a, %d %b %Y %H:%M:%S +0000")
def getItemType(fileExtension):
if fileExtension == "aac":
mediaType = "audio/mpeg"
elif fileExtension == "mp4":
mediaType = "video/mpeg"
else:
mediaType = "audio/mpeg"
return mediaType
rssTitle = "local"
rssDescription = "some podcast description"
rssSiteURL = "http://www.example.com"
rssItemURL = rssSiteURL + "/podcasts"
rssLink = rssSiteURL
rssImageUrl = rssSiteURL + "/logo.png"
rssTtl = "60"
rootdir = "/path/to/podcasts"
outputFilename = "/path/to/rss/feed"
now = datetime.datetime.now()
outputFile = open(outputFilename, "w")
# rss header
outputFile.write("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n")
outputFile.write("<rss version=\"2.0\">\n")
outputFile.write("<channel>\n")
outputFile.write("<title>" + rssTitle + "</title>\n")
outputFile.write("<description>" + rssDescription + "</description>\n")
outputFile.write("<link>" + rssLink + "</link>\n")
outputFile.write("<ttl>" + rssTtl + "</ttl>\n")
outputFile.write("<image><url>" + rssImageUrl + "</url><title>" + rssTitle + "</title><link>" + rssLink + "</link></image>\n")
outputFile.write("<lastBuildDate>" + formatDate(now) + "</lastBuildDate>\n")
outputFile.write("<pubDate>" + formatDate(now) + "</pubDate>\n")
for path, subFolders, files in os.walk(rootdir):
for file in files:
if file.endswith(tuple(['.mp3','.m4a', '.ogg', '.webm', '.mkv', 'opus'])):
fileNameBits = file.split(".")
fullPath = os.path.join(path, file)
fileStat = os.stat(fullPath)
relativePath = fullPath[len(rootdir):]
outputFile.write("<item>\n")
outputFile.write("<title>" + fileNameBits[0].replace("_", " ") + "</title>\n")
outputFile.write("<description>No description</description>\n")
outputFile.write("<link>" + rssItemURL + relativePath + "</link>\n")
outputFile.write("<guid>" + rssItemURL + relativePath + "</guid>\n")
outputFile.write("<pubDate>" + formatDate(datetime.datetime.fromtimestamp(fileStat[ST_MTIME])) + "</pubDate>\n")
outputFile.write("<enclosure url=\"" + rssItemURL + relativePath + "\" length=\"" + str(fileStat[ST_SIZE]) + "\" type=\"" + getItemType(fileNameBits[len(fileNameBits)-1]) + "\" />\n")
outputFile.write("</item>\n")
outputFile.write("</channel>\n")
outputFile.write("</rss>")
outputFile.close()
hope it helps!
Not sure if this is dead or not but I have been looking for an opensource podcast manager to replace my current product and I thought I found it with AntennaPod. Unfortunately, I use the virtual folder feature on my current podcast client daily. I use it for both archive podcast I previously downloaded and Audio books. Just wanted to add my +1 for this feature. I checked and a number of the competing podcast managers offer this feature. I think it would be a great addition.
I would need such feature too (to listen radio podcast which are available only for manual download). Currently I'm using "Podcast & Radio Addict" for such purpose, but I would like to use this project for all my podcasts.
Are metoo posts considered rude? I, too, would like this. Sometimes I see a reference to a specific podcast episode I want to listen to, without having any interest in subscribing to that podcast forever. It's a bummer to have to keep a different podcast player installed just for that purpose, since otherwise I like AntennaPod better.
It might be worth mentioning in the FAQ that this isn't supported, since it seems like an obvious thing for a podcast player to do and I'm sure I'm not the only person who wasted time trying to figure out how to do it before eventually arriving here and finding out it wasn't possible.
I don't really care how I play my non-feed podcasts, although having them in the queue would be convenient, but this seems to be the only audio player that does obvious things like remember your location after being tossed down the memory drain and per file to boot.
tl;dr +1
+1
‡1
+1 Seems kind of an obvious feature.
+1
Are metoo posts considered rude? (https://github.com/AntennaPod/AntennaPod/issues/154#issuecomment-282124534 @Frenzie)
Not rude, but they can be annoying to the people subscribed to the issue (as we receive an email with each reaction). More importantly: it doesn't help us quickly get an impression of popularity of a request, as we do with a thumbs-up to the first post. So @Frenzie @luiandresgonzalez @cutmeat @billw2012 @thinkpace I would like to suggest you do the same (give a thumbs-up) if you haven't already :)
DO YOU WANT THIS FEATURE?
PLEASE GIVE A THUMBS-UP TO THE FIRST POST instead of posting '+1'. 👍 is the best way to bump/vote for this feature request. Thanks
I often search the web for interesting topics and find individual podcast episodes with good interviews. Currently it's really cumbersome to listen to them on AntennaPod. I have to:
It would be fantastic if I could just share a web page with the podcast episode into the AntennaPod app, and that episode would be downloaded and added my queue.
Another use case:
I use a gpodder client on my desktop, which auto-downloads podcasts on my faster home internet. This client has a "Sync to device" feature which simply copies the podcasts ("Podcast Name/nameoffile.mp3") anywhere you would like. I sync this same gpodder account to AntennaPod.
I understand not wanting to make this a general purpose audio program, but it seems like if both clients are using gpodder to manage subscriptions, downloading the same files, there should be an easy way to sync the actual files between devices (just point my desktop client to the same folder AntennaPod uses?).
As it is now I have this extensive archive of podcasts at home I can't listen to in AntennaPod, so if I'm going on a long trip I have to manually re-download everything on the phone.
One approach to do this with no changes to AntennaPod is to
Aside from not-so-perfect user experience (starting separate app, etc.), the approach will make media files downloaded twice: once by the end users, another by AntennaPod when it "downloads" from the local feed.
I think the issue can be solved by a small change in AntennaPod: if media file provided by a feed is a raw local file URL, use it directly rather than download it.
(It requires the to-be-created local feed app exposes the media file with raw file URL instead of http).
I would rather add the feature to AntennaPod instead of developing another app.
I created a very crude activity based on OpmlImportFromPathActivity that allows you to select a file and add it to a "dummy feed" that contains local files.
There's lots of hardcoded stuff but it does seem to work for arbitrary mp3 files. I don't really understand the GUI stuff, it was pretty much copying bits from different places. Here's a screenshot of the dummy feed after adding some files:

@mfietz I will create a pull request, if only to put the code out there. Hopefully it is useful.
The PR is #2991
Probably IF this is going to be implemented someday, then "directory" approach doesn't sound natural. I'd say, playlist import could be a lot "smoother", e.g. M3U.
BTW, Android native MadiaStore Database could give enough of the additional info that usually obtained from feeds.
Be able to read a file containing mp3s like a local or "virtual" podcast.
The date of the episode would be in the filename, for example: "yyyymmdd - Filename.mp3".
All other info would be extracted from the tags (Title, Album, Artist, Comment, Cover art).
Perhaps in the form of an import file, in order to be able to incorporate episodes that have become inaccessible online in existing podcasts. Any files placed in this folder would then be copied to the appropriate folders of the application's podcasts and included with the other episodes. If the date is not in the file name as suggested above, it could be changed afterwards. Deleting a file from the import folder does not delete the episode from the podcast.
Sorry, I'm French. ¯_(ツ)_/¯
I wouldn't want to require any particular format for the file names. Since this is already for things that are less structured it should be pretty forgiving. However the ability to sort the virtual podcast by filename would make a lot of sense. I think a lot of things that generate directories like this try to make a lexicographical sort reasonable.
Extracting the dates from filesnames as proper metadata would be more work but it would be nice nice bit of polish.
My use case is Antenapod forgot all my feeds. All the downloaded podcasts are still on the device, and I want to play them. I tried from antenapod, I tried from the filemanager, but no luck.
The ideal would be to add a feed and add an existing directory. Then for others that just want the directory with no feed, a dummy feed could be provided.
Whoa, issue closed after 7 years! Congratulations!
Most helpful comment
Not rude, but they can be annoying to the people subscribed to the issue (as we receive an email with each reaction). More importantly: it doesn't help us quickly get an impression of popularity of a request, as we do with a thumbs-up to the first post. So @Frenzie @luiandresgonzalez @cutmeat @billw2012 @thinkpace I would like to suggest you do the same (give a thumbs-up) if you haven't already :)
DO YOU WANT THIS FEATURE?
PLEASE GIVE A THUMBS-UP TO THE FIRST POST instead of posting '+1'. 👍 is the best way to bump/vote for this feature request. Thanks