Hacker News new | past | comments | ask | show | jobs | submit login
Use Raspberry Pi as Airplay server to screen mirror on TVs, monitors, projectors (github.com/rahul-thakoor)
347 points by codewithcheese on Oct 12, 2021 | hide | past | favorite | 76 comments



Very cute that there's a one click deployment using some semi-magic third party service, but it feels kinda disingenuous to not link to the repo that's doing the actual heavy lifting.[] The repo submitted to HN is just a bunch of config files.

[] https://github.com/FD-/RPiPlay


> Very cute that there's a one click deployment using some semi-magic third party service

The author of the repository seems to work for that third party service so feels more like a proof of concept for deployments to that service.


This is the problem with open source, anytime someone tries to submit a finished solution - someone will come out of the woodwork and blame them for not attributing enough. In this case the link exists, but it isn't in the favorable order.


That seems disingenuous don't you think.

The only thing they added was a dependency on a closed source 3rd party """cloud""" service. This is basically the open source equivalent to blog spam and should be rightfully put down.

And the post you're replying to isn't even trying to do that! Its just suggesting that hacker news would find more benefit out of the original repo over some closed source cloud bait made by an employee of said proprietary cloud service.


This is a little aggressive. Sure, Balena offers a proprietary licensing to make money for their cloud software, but all of the technology is built with open source first. You can self host OpenBalena (the open source parts of Balena) and do your own deployments locally. I'm not sure if going after open source projects that can make money is the best way to promote open source software.


> I'm not sure if going after open source projects that can make money is the best way to promote open source software.

but im not doing that.

I'm going after open source projects that can make money (by building closed source infrastructure) taking other peoples open source projects and moneifying them into a new """open source""" project (where 99% of the meat is in closed source cloud infrastructure) as a way to piggy back off of the work of other people so that they can advertise on hacker news.

Like, if the repo actually added something substantial and new to the project, that would be one thing.

If this was an article that explained how to do the gluing/config work this github repo does, also, another thing. even if hosted/made by the cloud company. That at least appeals to the intellectual pursuit.

But this is just some config files.


I believe you mean open source infrastructure


RPiPlay is itself composed of many great OSS projects (e.g. GStreamer). Maybe we should somehow be able to publish the shole "tree" of contributions to a particular project (including build-time tools) ?


Yeah, personally my view is that if an OSS project contributes something new to the existing tool then it should be acknowledged on a place like hackernews.

Also, because acknowledging the project you built on top off recursively references other tools, there is no need to publish the whole tree. That exploration is left as an exercise to the viewer of the repo.


If we had a reliable way to identify contributors there might be nice ways to build on top of that. Like semi automatic donation services that uses id keys of the list of contributors.


Never going to work. Someone will cheat the system by creating multiple identities in order to get more than their fair share. Besides, how do you even measure what’s fair automatically.

And likewise, automatically distributing money per dependency will just make people split projects into multiple parts to get more of the money, or to add fake dependencies.

Donations need humans in the loop to decide where the money should go.


That's why I said semi automatic. It should always be up to a human to decide exactly who gets the money and how much. But there could be systems that makes it easier for that human to make such decision and worry about the important parts of it.

The automatic parts can consist of listing candidates, link to their contributions and handling of the transactions, not selection.


I just remembered the drama a couple weeks back about some library for coloring terminal output...

People do stupid shit for fake internet points and fame already, I wouldn't put cash into that equation


We already have put cash into the equation. There are donation buttons on many repos nowadays. Should we fight against that or should we try to make better use of it?


That should mitigate against fake dependencies, but not splitting important projects into multiple equally important projects, unless this engine also incorporated something like SLOC or number of commits (either of which would make splitting a net zero) but those are non-metrics as well...even more readily abused.


Not following what your point is here? I'm not promoting metrics. I'm just saying we should allow lifting up the whole software supply chain for donation driven projects.


Just saying how any tooling to automate the process would be easy to game all the way down, so the due diligence toward donating has really got to be a manual human effort.


So like an attribution manifest that contains direct contributions and links to other OSS manifests? Then you could just have a project walk the manifests and generate an output of everyone who contributed?


There is a link at the bottom of the readme directly to RPiPlay.


Yeah, I saw that. My point is: considering the title of this submission, I'd rather see it linking to the people that actually built the software that does this airplay mirroring.

As it stands, this is a submission of "a one click deployment of rpiplay to balenacloud" or something like that.


Exactly. This is more interesting as an example of how to use the balenaCloud software to deploy code across a RPi fleet. It isn’t very exciting for an airplay server as that code is provided by rpiplay.

It’s all about setting expectations. I saw this title and was excited because I thought there might be a new airplay server available (airplay 2 even). Then I saw what the project really was and I was disappointed.


The history of airplay he gives on that page under the 'AirPlay protocol versions' heading is worth a link all by itself.


There's so much technical debt and conflicting versioning with AirPlay it's unreal. It's amazing it works at all at this point. It's also why the developer documentation is awful.


Wow, what's even the actual work besides creating some wrapper config files with other names for the parameters?


The wrapper itself? Isn’t Unix philosophy to build up software from simpler components? The project is also quite prominently attributed.


It seems like the original project is easy enough and does not need a wrapper. Building a wrapper this thin reminds me of the Hacktoberfest "contributions" to projects.


Maybe the problem with posting this instead of the original project is akin to posting a homebrew formula github repo instead of the actual tool. However many projects now use github as a way to have canonical paths to stuff so here we are. You need to host the wrappers somewhere right?


When you need to create some software, I guess you start by writing your own OS first? This is how all OSS works - you build on top of other projects.


I think what people are complaining about is the fact that the linked project is not the project that actually solves the problem stated in the title. This linked project did not enable “using a raspberry pi as an airplay server,” it just packaged someone’s project that already did that.


If you're not melting your own sand into silicon ingots and slicing them into wafers, are you even a real programmer?


Having someone smoothing over the out of box experience for a lot of OSS is of value to me. A lot of projects I undertake get bogged down or stymied by setup instructions that trivialize or one-line non-trivial tasks (e.g. setup OpenCV, configure a reverse proxy in Nginx, etc).

A lot of this comes down to the fact that software moves quickly and instructions are written for a given piece of hardware on a specific version of a distro.

One of the benefits of having a common platform like the Raspberry Pi or shipping Docker Images is that you can ship a MVP that anyone can easily setup like Hassio, Pi-Hole, or PiWebcam.


If open source maintainers or producers don't owe anything to their users then I don't see why people building projects with open source material/code should do more than the bare minimum required by the license.

Are an open source license terms ignored here ?


It's good to see Balena getting some attention - it's a really nice way of deploying containerised software to embedded devices, and managing them in the field. I've been using the free tier for managing a couple of rpis I have round the house in a reproducible way.

It's basically a whole platform built around docker-compose, so you write a compose file for your different applications and then can deploy it to any embedded Linux computer running the Balena OS. Balena manage all the complicated stuff around rolling out updates, keeping the OS up to date, logging etc, and give some nice debug tooling. The other nice thing about the platform is that it's almost all open source - so if Balena the organisation goes bust or changes strategy, Balena the IoT management service could be self hosted.


Balena is the unsung hero of IoT.

Without Balena, IoT is the desert ... of the real


I could see how this would be super helpful for the world of IoT.

I am not sure if this is helpful for this community (Except as a proof concept for deploying other IoT devices, which is valuable) as I think most people could deploy RpiPlay fairly easily. Maybe I am reading it wrong though.


Perhaps you could say “Balena” a few more times, I’m struggling to hear you.


Related: If you use Home Assistant and have Chromecast devices, the AirCast addon will allow you to use AirPlay to send something to a Chromecast device.

https://github.com/hassio-addons/addon-aircast


I'm confused as to what "server" means in this context. Does this sit in the middle and mirror other devices (e.g. your Windows or Linux laptop) to a TV/monitor or does it just mirror the RPi itself? Or does it just act as a "sink" for already-AirPlay-compatible devices and let you mirror your phone to a TV without having an AppleTV?


Strange and sad that Apple's approach to remote play is more open at this point than the Google one.

Like open IoT protocols, we need to move to open "AirPlay" protocols. The locked-down nature is so pointless.


Chromecasts used to have a free kiosk mode that could boot up to a full screen webpage, then Google gated it behind a monthly device management fee. :(

It was cool because you didn't even need another device to run the browser, everything ran on the chromebit/chromebox.


If you want something that is more of a static kiosk setup, there is a different Balena supported project that supports more of this style use case. Without the need of casting or connecting with Airplay

https://github.com/balenalabs/balena-dash


I'll never touch Balena anything since they put phone-home in Etcher (a simple tool for writing a local file to a local flash blockdev, essentially just a GUI front end to dd). I can't spend the time to audit their software for spying, and they already burned up whatever default level of trustworthiness they had.

They've been baleeted.


Wow. Glad I didn’t take a job with them. That’s despicable.

I’ll also be warning my embedded customers that consider their offering.

Telemetry is NOT okay.


The funniest bit was the ad for pi-hole (adblocking software) displayed in the flashing tool.


Correction: the first word should read Chromebits/Chromeboxes, not Chromecasts.


you ALWAYS need another pi ;)


I'd really like some kind of architecture picture describing what runs where. Regardless of whether it's promoting the cloud service why would I want that to run a rPi service? A picture might explain that.


Looks like that repo just containerises RpiPlay[1], which is the real meat and potatoes.

As for architecture: RpiPlay is just an open source Airplay server. Plug a display in, and point your iPhone at it.

[1]https://github.com/FD-/RPiPlay


Looks like basically a deployment setup for RPiPlay, which is an open-source implementation of airplay that's meant specifically to run on a RPI.

https://github.com/FD-/RPiPlay


Hate to hijack the thread, but it mentions iOS 9+. Will this work for airPlay from a Mac?


there's a tiny link at the bottom of the readme that points to the project that is actually doing the work (this appears to be deploy scripts for a company's cloud project): https://github.com/FD-/RPiPlay

in the actual project's readme, they note:

> Screen mirroring and audio works for iOS 9 or newer. Recent macOS versions also seem to be compatible.


As I understand it, this allows you to screencast from an Apple device via airplay to an rPi. Is anyone aware of a project that allows you to do the reverse? That is, to airplay from an rPi to some compatible device (like a HomePod)?


Ive been looking for a way to use airplay for my Zwift set up. I have an old raspberry pi so maybe i can set this up to solve it. I am unwilling to buy another apple tv.


Looks like this works!


Thank you very much, I've been thinking about something like this for a while and have been meaning to look for a solution. Problem solved, thanks!


I wonder if the RPi can be set up to screen record with OBS or something. It would be great for screen recording or grabbing clips from media.


Wonder if it will work with DRM content (Netflix etc)


I used to do this with a jailbroken iPod touch.


Great, I'm so glad it's possible! What's the app that you installed? I've been looking for this for my iPhone 4S on iOS 6.1.3 to receive video, and output HDMI.



Thank you for the link! Cydia says it's a commercial package for $0.99, but the Cydia Store no longer accepts payments (since 2018).

https://www.iclarified.com/68791/saurik-has-officially-shut-...

Please can you contact me by email so we can find another way to distribute the app so I can actually run it? I'd be happy to pay, but when I emailed AirServer Support on 2021-05-29, Alessandro replied on 2021-06-16 and said "Unfortunately we are unable to fulfil your request."


I'm guessing this is the old Airplay v1?


Interesting initiative.


Should have been called Airpiay


Does anyone know of any similar magic for turning an RP into an Air Print?


The nuts and bolts of AirPrint are CUPS (linux printer server) plus Avahi (mDNS infrastructure, known in Apple land as Rendevous). My recollection is that to get my USB printer to AirPrint, I only needed to install the CUPS and Avahi packages, and then things magically worked. YMMV.


Didn't knew it once was named Rendez-vous!

It has been called Bonjour for a long time now.


I have it running right now. My old school LaserJet 1320 is wireless on my home network. It's connected to a Raspberry Pi Zero W.

As someone mentioned, it's basically CUPS and Avahi. I've set it up years ago and it just runs.

The only thing that sucks is that printing from an iPhone takes about 5 minutes because of all the processing on the RPi. I suppose using a higher end RPi would fix that, but I like the small form factor. Printing from a PC is instant.


Does anyone know of any similar magic for turning an RPi into a Chromecast?


Not quite Chromecast functionality, but there is a similar project from Balena that adds Spotify Connect, Airplay, and Bluetooth to a speaker using a Raspberry Pi

https://sound.balenalabs.io/


Air print is really easy. It’s built into Utunu printer sharing. https://askubuntu.com/questions/26130/how-can-share-my-print...


There is a very similar level of magic for converting a raspberry pi to do AirPrint

https://github.com/willswire/balenaPrint


THANK YOU! I was looking up and down the net for something like this, couldn't find it for the life of me.


I was able to do this on Ubuntu 16.04 with CUPS. It was surprisingly easy. I just googled and followed some guide on the first page of results.



How do I put it in the Noobs multi-boot menu?




Join us for AI Startup School this June 16-17 in San Francisco!

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

Search: