Giter Club home page Giter Club logo

Comments (31)

keunes avatar keunes commented on May 21, 2024 1

This sounds like it would fit (better) with a project like Funkwhale, which could then be used to keep one's own/federated 'archive' of podcasts (which you can then download in Antennapod) :)

from antennapod.

lightonflux avatar lightonflux commented on May 21, 2024

This problem affect me. There are a few german podcast which aren't accessable a few hours or days when they release a new episode.

from antennapod.

JoKnopp avatar JoKnopp commented on May 21, 2024

+1

from antennapod.

marthjod avatar marthjod commented on May 21, 2024

+1. Being able to use Bitlove with AntennaPod would be great.

from antennapod.

hermannloose avatar hermannloose commented on May 21, 2024

@danieloeh is it cool to use https://github.com/turn/ttorrent, which is under MIT license? I'd like to have a go at this over the coming weeks and see what I end up with, just making sure no one else is already busy building that feature.

from antennapod.

danieloeh avatar danieloeh commented on May 21, 2024

@hermannloose
I am currently not working on Bittorrent support. I have written a small test app to see if this library also works on Android (and it did), but it would be interesting to know how well it works with AntennaPod.
One issue that kept me from working on this is how to handle streaming of episodes. As far as i know, the only way to do that would be to get the url to the actual audio file from the shared torrent (please correct me if there is any easier way to get the url to the data source), which also means that the PlaybackService would have to handle torrent episodes differently than normal episodes. And since i also want to add support for external audio files, there would then be three different types of episodes. To solve that problem, i was thinking about adding something like an interface for episodes, so that the PlaybackService and all related GUI components would get all the episode data (title, data source, chapters, etc.) through that interface.
But for know it would also be great if you just implemented support for downloading episodes. Support for streaming them could be added later on.

from antennapod.

hermannloose avatar hermannloose commented on May 21, 2024

@danieloeh I don't know much about BitTorrent internals, so I think I'll limit myself to figuring out the downloading side of things first. Apart from the Downloader / HttpDownloader stuff I haven't had the time to look at much of AntennaPod's code yet, but yeah, interfaces are always a good thing I guess.

from antennapod.

hermannloose avatar hermannloose commented on May 21, 2024

@danieloeh http://bitlove.org seem to have an API for torrent feeds that they create and host, which gives you a handle on the original file.

The AntennaPod code I have read so far suggests that parsing of RSS enclosures in NSAtom.handleElementStart() and the structure of FeedMedia are intimately tied to the idea that the linked file is always the file that is consumed, i.e. no indirection like in torrents. I suspect this will need a rather involved refactoring, to first download the torrent file and the use the actual content of the torrent as the media to be played.

from antennapod.

danieloeh avatar danieloeh commented on May 21, 2024

I have reworked the way the playback part of the app handles media files and also made some changes to the FeedMedia class so that adding Bittorrent functionality should now be possible.

First of all, the FeedMedia class now knows 4 different URLs: A download URL and file URL for the resource in the enclosure tag (i.e. the .torrent file in the case of Bittorrent feeds), a file URL that points to a local media file once it has been downloaded and a URL that points to a media file that can be streamed by the playback service.
I have already taken care of recognizing Bittorrent enclosures in feeds and updated the database to support the new attributes: A FeedItem can now either have an EnclosedFeedMedia or a BitTorrentFeedMedia object. Playback of the local media file should also work, but i wasn't able to test it yet, because the downloading part hasn't been implemented yet.
@hermannloose Please let me know if you would still like to work on this feature. The only thing that is missing should be a Downloader-class for BitTorrentFeedMedia. The feedmedia_update branch contains all the changes i have just described.

I have taken a look at the bitlove.org API, but the only thing you can do at the moment is to obtain torrent information by the original URL. In order to make streaming possible, it would have to work vice versa. However, the current API would make it possible to use Bittorrent for episode downloads even if you haven't subscribed to a Bittorrent feed. I think it would make sense to add support for that, too.

from antennapod.

hermannloose avatar hermannloose commented on May 21, 2024

@danieloeh I'll have a look at your changes next week, previously I didn't spent much time on it since it looked like a bigger refactoring than I was willing to tackle at the moment.

from antennapod.

BitScout avatar BitScout commented on May 21, 2024

Wow, seeing this implemented would be great. I'm using BeyondPod right now, but I'm missing chapter marks and Bittorrent support. Since Tim Pritlove (german podcaster, initiator of BitLove, Auphonic and the pushing of chapter marks in podcasts (like his MobileMacs podcast)) unites two unique features of AntennaPod it might make a prominent appearance in their show once this feature is implemented.

votes++;

from antennapod.

hermannloose avatar hermannloose commented on May 21, 2024

@danieloeh Just a heads-up that I am currently busier with university stuff than I thought I would be and not really finding the time to work on this, so if someone else wants to do it that's cool.

from antennapod.

danieloeh avatar danieloeh commented on May 21, 2024

There is an APK available in the Nightly Builds folder in case you would like to take a look at the current state of the feedmedia_update branch.
Downloading episodes from a torrent-feed already works, as well as downloading an episode from an ordinary feed via bittorrent (by using the Bitlove API), if it is available on bitlove.org. The latter feature has to be enabled in the settings first.
There is also a "Seed Service", which has to be enabled in the settings first. If enabled, it will start after the device has been inactive for a while. It will then seed already downloaded episodes while the device is connected to a Wifi network and charging.
Please note that this APK (or at least all the bittorrent features) will only work reliably on ARM devices at the moment. There are also occasional crashes that haven't been fixed yet.

from antennapod.

BitScout avatar BitScout commented on May 21, 2024

Wow, cool! Testing it right now / teste es gerade...
Oh, beendet. Auf einem Nexus 4, neuestes Android.
Am 14.03.2014 15:26 schrieb "danieloeh" [email protected]:

There is an APK available in the Nightly Buildshttps://www.dropbox.com/sh/45vgg13bmh8jmhp/uZ_3KJIi5Kfolder in case you would like to take a look at the current state of the
feedmedia_update branch.
Downloading episodes from a torrent-feed already works, as well as
downloading an episode from an ordinary feed via bittorrent (by using the Bitlove
API http://bitlove.org/help/podcaster/api), if it is available on
bitlove.org. The latter feature has to be enabled in the settings first.
There is also a "Seed Service", which has to be enabled in the settings
first. If enabled, it will start after the device has been inactive for a
while. It will then seed already downloaded episodes while the device is
connected to a Wifi network and charging.
Please note that this APK (or at least all the bittorrent features) will
only work reliably on ARM devices at the moment. There are also occasional
crashes that haven't been fixed yet.

Reply to this email directly or view it on GitHubhttps://github.com//issues/31#issuecomment-37652139
.

from antennapod.

Cathryne avatar Cathryne commented on May 21, 2024

Thanks for much for this feature! Works fine on the FairPhone. Some bells & whistles, please? BitLove (or general BitTorrent) icons in Downloads view, to distinguish them from regular downloads.

from antennapod.

Cathryne avatar Cathryne commented on May 21, 2024

I noticed one strange glitch in that build, regarding the Raumzeit podcast feeds: The title is never shown and it appears at the top of the list. Both the Bitlove feeds and the regular ones are affected, but no other podcast so far, and neither in the latest stable version.
antennapod-feedmedia_update-090fb1c-nightly.apk-raumzeit-notitle

from antennapod.

danieloeh avatar danieloeh commented on May 21, 2024

I have just uploaded a new nightly build, which adds a visual indicator for the type of protocol that is used during the download and fixes another bug.

@Cathryne The title-tag of the Raumzeit feed is empty at the moment: http://feeds.feedburner.com/raumzeit-podcast-mp3 (if you view the source and search for the first occurence of 'title', you can see it).

@BitScout Could be a bit more precise about when the app crashes? Does it always crash or only occasionally?

from antennapod.

Cathryne avatar Cathryne commented on May 21, 2024

Oh, sorry! I didn't think of this most basic explanation m-) Will ask the Raumzeit makers about this.

from antennapod.

svrnwnsch avatar svrnwnsch commented on May 21, 2024

Looking forward to this feature. Currently my opml import from miro has many bitlove feeds so now I have many feeds on AntennaPod without any download link.

from antennapod.

timabell avatar timabell commented on May 21, 2024

I just tested the linked apk and got a crash when I hit "cancel all downloads" half way through a download. I have no idea how to debug it, it said nothing more than the standard "antennapod has stopped working" or words to that effect. Is this work likely to get merged into the main branch at some point? I notice it's getting quite behind, and doesn't have the nice new UI improvements. I'm just getting started with android development myself. Let me know what I can do to help, time permitting. Cheers. Love the app, many thanks fot all the hard work on it.

from antennapod.

danieloeh avatar danieloeh commented on May 21, 2024

@timabell The bittorrent implementation is basically done since March 2014. However, on some devices or versions of Android there seems to be a problem with the libtorrent bindings or maybe the way libtorrent has been compiled. Until this problem hasn't been resolved, this shouldn't be merged.
Switching to a different library (like ttorrent) might also be a solution.

from antennapod.

timabell avatar timabell commented on May 21, 2024

Thanks for the info, I'll post an update if I manage to do anything useful towards this :-)

from antennapod.

TomHennen avatar TomHennen commented on May 21, 2024

Unfortunately the current AntennaPod team doesn't have time to work on this feature and it doesn't seem like it's going anywhere at the moment. If anyone would care to submit the change at some point in the future we would certainly consider integrating it.

from antennapod.

hsribei avatar hsribei commented on May 21, 2024

Is anyone still working on this? Peer-to-peer podcasting sounds really great, and maybe people from @dat_project and @ipfs would like to integrate their solutions as well.

from antennapod.

Gaffen avatar Gaffen commented on May 21, 2024

I may be interested in picking this up if I can find the time; especially if it's as simple as switching a torrent client library.

I don't suppose anyone has any idea of the relative complexity of adding dat:// or ipfs support on top of this might be? I also think peer-to-peer podcasting sounds like an awesome idea.

from antennapod.

ByteHamster avatar ByteHamster commented on May 21, 2024

It is probably quite a lot of work to do. You have to add another Downloader class that handles torrent feeds. I am also not sure about the apk size. A torrent library sounds like it could be quite big. I do not want to increase the apk size for everyone if most users would not use the feature. I have not looked for libraries and their sizes, though.

from antennapod.

Gaffen avatar Gaffen commented on May 21, 2024

Understood @ByteHamster, I do agree that if it adds a significant overhead to the package payload it doesn't make sense to force all users to deal with it.

I may potentially make a fork capable of this functionality, if it seems feasible, but we'll see.

from antennapod.

Gaffen avatar Gaffen commented on May 21, 2024

Just a thought; would there be a way to serve podcasts from the device to antennapod that would be more sympathetic to the project? What if a companion app was made to handle the actual obtainment of episodes so that the only thing AntennaPod need do is consume local files?

from antennapod.

ByteHamster avatar ByteHamster commented on May 21, 2024

Work on adding local files was started in #2991 but the PR has not seen updates, recently.

Do you have examples for podcasts that use torrent downloads? I have not found any popular podcast that offers torrent downloads.

I also think peer-to-peer podcasting sounds like an awesome idea.

After reading about this a bit, it does not look like podcasts hosted with programs like bitlove will be completely peer-to-peer. The actual feed still needs to be downloaded on a central server. Only the media files can be downloaded via peer-to-peer.

from antennapod.

Gaffen avatar Gaffen commented on May 21, 2024

Unfortunately I don't think there really are any totally decentralised podcasts, none that I know of at least.

This is less for something that exists and more something that I think would be pretty useful if it did exist. I have recently witnessed second hand a podcast come offline because the owner passed away. Being able to subscribe to podcasts that are hosted in a decentralised manner could be a good way to get around this.

Specifically, to get around the feed hosting element that you highlight, the rss feed would probably have to be hosted on something like dat:// or another such dweb protocol.

As I already use AntennaPod as my daily driver for podcasting, it was the first place I thought of when I was considering the idea of decentralised podcasting.

from antennapod.

ByteHamster avatar ByteHamster commented on May 21, 2024

This is less for something that exists and more something that I think would be pretty useful if it did exist.

I am still not sure if this is viable. Torrent podcasts would need seeders and I don't think mobile phones with limited data plan and limited battery should do that.

from antennapod.

Related Issues (20)

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.