Hacker News new | past | comments | ask | show | jobs | submit | apitman's comments login

The end-to-end principle would suggest this should be solved by the app and server.

Can you use Docker? Looks like they have a linux/arm64 build.

I was looking to use this as a learning exercise. Im just curious about the process of getting this to build for arm natively.

Has anyone played with the API? How is it to develop against?

I'm currently building an audiobook app. I've considered adding podcast (and even music) support, but wonder if this is something people actually want bundled together or would prefer tailored experiences.

I agree, focus on the audiobooks. That being said, I would love an app that can detect and skip the awful built in ads they've added to podcasts...

It's especially jarring because the ads are at maximum volume.

I wouldn't want them bundled together. Focus on one thing - when I want to listen to an audio book I'm not after a podcast or music. I have other apps for that.

The canonical advice would be to focus on one thing first and make sure you're doing it well and users want it, then expand.

Can I follow your project somewhere?

It's still really early and I'm currently using some AGPL libraries which means I can't distribute without also being AGPL. I haven't been able to find a good way to make money on an app while releasing it open source. Would love to figure out a way to do both.

What's been going on with the kindle? Would be interested in reading more about this.

Do you have any other favorite features from Smart Audiobook Player? I'm building an audiobook app now. I have some unique features unrelated to playback, but I also want it to be an excellent player.

History. I keep losing my place on books with random touches, and I dislike the process of finding it again through sampling. Spoilers! The history feature fixes that.

And the built in equalizer. And the speed shifting. And the file management. It's just a great app.


You get history in the ABP android app.

One thing LLM's could do for me is a "recap" feature. I sometimes completely forget listening to books when I'm halfway through. So I'm either having to Google for synopsis per chapter or just start over. Mostly i just pick something else to listen. If it could recap up until where I'm at that'd be pretty neat.

Thanks. Also how do you get books onto your phone for Smart Audiobook Player in the first place?

I used to use Syncthing with a custom .stignore to exclude all but the books I want to listen to offline.

Samba.

Does SAP integrate with samba or do you have to download files manually?

Honestly, for me it's kinda minimal, simple and ergonomic UI is the point. It has some more sophisticated features, but they don't distract me, nor I actually need them. For instance:

- bookmarks (I tried to use them, but it's too much work, if I really need to take a note, I better do it in written form)

- UI to write down characters (same: I used it a couple of times, just because it's there, but it's not worth it, use normal note-taking app for note-taking)

- equalizer (I'm sure somebody uses it, but I never truly needed it for audio-books)

And many more.

What actually matters are small details:

- Granular playback speed control. ABS seems to have it done right too, but some players have like 1-1.25-1.5-..., which is not granular enough to get normal conversational talking speed out of somebody way too slow.

- It is possible to enable ID3, but it doesn't force it either.

- It recognizes chapters in whatever I have. m4b, mp3, cue, many files in a single folder, many nested folders, whatever. If it gets things wrong, it is possible to merge books in the library. I guess, the worst case is if I am overzealous with chapters (like marking chapters in a youtube podcastwhich has a mark like every 2 minutes), but then again, it only means "stop at the end of the chapter" becomes not feasible, but otherwise it's fine.

- I guess, every audio-book player does, but still: it does remember positions in multiple books, so I can switch between lectures and fictions and get back to where I stopped.

- It takes into account the current playback speed when estimating how much time is left.

- It is possible to remove buttons you don't need, it's possible to choose an action at the end of the book, it's possible to choose a lot, but defaults are really just fine for me.

- I never used it, but thinking about your question I just found out it has "Skip start/end" functionality. This is just great, I'm excited to try it out ASAP.

Anyway, I probably forget some small details, so you better take a look yourself. It's not perfect, but good enough to study when building something similar. I can also suggest 1 thing that is not in SABP, and, again, it's important to not overload the UI, but I sometimes wished it was there. In SABP it's only possible to either stop after X minutes (with sleep-suggestive volume fade), or at the end of a chapter (without fade). Sometimes I wish I could tell it to stop at the end of a chapter approximately after X minutes (like, if it has a chapter every 7-15 minutes, and you are planning to listen for about 30-40 minutes more, but you don't want it to fade volume an to stop in the middle of a chapter overall). So it's either "approx X minutes" or simply "N more chapters". Neither is possible in SABP.

Also, I don't know it I actually want it, but it seemed nice listening to podcats in NewPipe (SABP doesn't have it). There is an option to skip silence in NewPipe. I didn't actually use it too much, and the last time was a while ago (I pretty much stopped to listen podcasts on it), but I seem to recall it worked nicely.


Thanks!

BTLE has built-in features for latency detection right?

> if you want to have comments or backtracks, you can do it with ActivityPub without having people signing up to your site (directly or through some OAuth system)

You can do the same thing with RSS+We mention, which is a way simpler stack and predates ActivityPub by years


Webmentions are a spammer's wet dream. There is a reason they were adopted only by the Indieweb crowd.

Anyway, my point was less "ActivityPub can do everything people can do with RSS" and more "having a mechanism to for bidirectional authenticated messages opens up the possibility of new applications".

The real interesting part will happen when/if more developers realize that ActivityPub can do more than "federated versions of popular social media platforms".


I might be misunderstanding what you're saying here. How is ActivityPub more authenticated than Webmention? WM requires the poster to host their content on a website. This is exactly what the AP spec says to do. Now, since the spec was published, most AP implementations also support HTTP signatures[0], but this doesn't provide additional guarantees that you can't get with WM. The authentication is still tied to a URL.

As far as spamming goes, I don't see how WM is any worse than AP. In both protocols your only options are passlists and/or blocklists.

[0]: And an old version that doesn't have an official spec. ActivityPub's issues with spec stagnation and de facto standards is a whole other thing.


I haven't dug into these, so apologies for the naive question, but for a multi-tenant service like WordPress.com, can you effectively limit which WordPress blogs can WebMention you? If the allowlist is formed on the domain, this seems limiting.

Perhaps more advanced URL regex can achieve more fine-grained control but I do still see advantages in pubkey auth (especially if people want to move their content.)

Still, I do find myself wishing for a lighterweight-than-ActivityPub middleground.


You're right, in default configurations ActivityPub definitely has an advantage here, since HTTPsigs are tied to users, not instances, which gives finer grained blocking. I'm not aware of anything like this for Webmention.

I suspect this is because WM is used far less than AP. It also grew out of a community (IndieWeb) where having your own domain is a core tenet.

I think something like Mastodon could work with WM though, since all URLs hang off of user URLs, so you could block by URL prefix, ie "block https://example.com/user1/*".


Webmention receivers can filter on whatever parts of a URL they want to. Maybe a WordPress implementation limits this to the domain? But as far as the spec goes, the receiver just gets a `source` parameter that's a URL. They can then decide to allow that (based on the domain, or any other characteristic they want) and at that point they check that URL to see if the document there contains the link that it's supposed to.


Spammers would have to host a page (permanently) that links to your post, and even then they don't get to control what (if anything) from that page gets displayed on your site.

I guess one danger is that they only serve the page that contains your link to the webmention-validating request. That way they get a backlink but don't have to keep a public outgoing link. They'd have to know that a given request is that validation though, and I'm not sure that'd be very easy.


ActivityPub can be implemented as static files. You do end up with a lot of duplication because activities contain objects, and you need separate URLs for each.


Curious which features? I'm starting a local-first project and would love to make a PWA, but I just don't think the platform is ready yet.


Mainly using SQLite and having access to native file system for reading and writing files. We wanted to provide a full offline functionality. While it's possible to achieve that in browser as well it seemed quite complicated for now (we might consider it in the future).


It’s actually fairly straightforward using the OPFS API; I used it to build an upload queue a while ago, so the user can drag arbitrary files on the browser, they get copied into the OPFS as regular files, and then I can upload them at my own leisure, even after browser restarts. The SQLite WASM build even has support for it AFAIR.

Can recommend, it’s a fun challenge :)


Consider applying for YC's Summer 2025 batch! Applications are open till May 13

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: