[HN Gopher] Make an internet radio station with one line of bash
___________________________________________________________________
Make an internet radio station with one line of bash
Author : qrv3w
Score : 79 points
Date : 2022-01-13 15:36 UTC (7 hours ago)
(HTM) web link (schollz.com)
(TXT) w3m dump (schollz.com)
| okl wrote:
| Title is misleading at best.
| kingosticks wrote:
| Doesn't an icecast server already do what broadcast-server does?
| You post an audio stream to it and it relays that to clients.
| What am I missing?
| slingnow wrote:
| If I write a complex piece of software that does something even
| marginally interesting, I'm going to post it to HN with a similar
| title. After all, I'm sure I can execute it with one line of
| bash, so the title is appropriate, right?
| bin_bash wrote:
| I mean, you could probably launch nuclear missiles with a line of
| bash
| TheDesolate0 wrote:
| xwdv wrote:
| Spacex launches rockets with one line of bash
| jaywalk wrote:
| sudo ./launch-missiles.sh --target=[REDACTED] --missile-count=4
| --username=jbiden --password=1111
| bin_bash wrote:
| I love that Biden's putting his password into ~/.bash_history
| rollcat wrote:
| It's also visible in the process table (ps auxww). It can
| be erased by rewriting the arguments from inside the
| process (I think this is OS-specific, not the same as
| changing argv in-place), but that is a race condition.
|
| The safe way is to either read it from stdin/fd (maybe call
| isatty(3) to check if someone doesn't echo password |
| ./foo), or open a file (check if permissions are 600). You
| could also have a named socket (check permissions!) talking
| to an authn agent, which could be doing some other fancy
| stuff like pinging your smartwatch to confirm, etc.
| fragmede wrote:
| another option is in an env variable (from an encrypted
| file). gpg -d
| ~/secrets/nuclear_launch_codes.gpg source
| ~/secrets/nuclear_launch_codes
|
| where the gpg key has a password and is stored on a
| hardware dongle that doesn't allow copying the private
| key off. If you really want to be fancy, there are some
| hardware security keys that also require a biometric to
| confirm.
|
| The other option is something like Hasicorp Vault, but
| we're way out of "one line bash" territory :p
| Diederich wrote:
| Pretty sure that would be a Perl script.
| ramses0 wrote:
| -j 4
| [deleted]
| TheDesolate0 wrote:
| buscoquadnary wrote:
| Next post of this type is "execute any arbitrary binary with one
| line of bash"
| charcircuit wrote:
| That's 3 lines of "bash." Not one.
| technoplato wrote:
| I think the dissenting / mocking comments here are missing the
| spirit of the post.
|
| Since bash can evoke any Turing complete program, feasibly
| anything could be done with one line of bash.
|
| The authors intent as I saw was to show what that line was. Would
| you have known without this article?
|
| Whether or not people are just being sarcastic, I feel we should
| definitely not mock but rather encourage any open and free
| attempts at teaching us cool things that are more novel than the
| "how to get started on Linux" type bs the market is inundated
| with.
|
| Bravo to author.
| zamadatix wrote:
| I think the spirit of the post got overrun by (likely
| accidentally) making the title so clickbaity.
|
| Bash can run any program, that's why you don't advertise
| running a program with it in your title unless the program is
| (at least mostly) in bash which is an interesting constraint to
| go check out. There are some really whacky crazy interesting
| things done in actual bash scripting including internet
| applications like this via bash's builtin /dev/tcp
| functionality... come to think of it this might actually be one
| of those crazy "I did it in pure bash"able things.
|
| I'm sure most on HN knew you could pipe the output of a media
| application like ffmpeg into something like curl instead of
| locally. All of the exact options and methodology used here off
| the top of their head? Very unlikely but is that really what
| this title sets the expectation of?
|
| I don't think mocking is the best recourse but I'm not sure
| it's much more useful to argue the author should only be
| receiving blind encouragement in cases like this either. Like I
| said I highly doubt the author had any malice when changing the
| title for HN but I also understand why many don't want to
| blindly encourage posts where the title can be so
| misleading/confusing.
|
| Ironically "Creating my own free and easy to use internet radio
| station host" would probably have gotten even more attention
| with almost never of the pushback and the project work on norns
| is probably worth its own post.
| mcguire wrote:
| " _To solve this problem I wrote a simple server that runs in
| the cloud which can handle any number of realtime broadcasts
| uploaded using a simple curl command. This allows you to
| essentially broadcast radio feeds with a single line. My
| solution to the problem of broadcasting audio without port-
| forwarding was to create a free and public "dummy" server that
| handles any incoming traffic and forwards to any number of
| connected clients. This server keeps track of connected clients
| and routes incoming packets to them, otherwise discarding the
| packets._ "
|
| If the author had perhaps titled their post "I wrote a
| multiplexing server for audio streams" it might go over better,
| although that doesn't have the proper click-bait appeal.
| qwertyuiop12 wrote:
| Do whatever in one line: 1) Open a source code with Sublime 2)
| Ctrl+J to join the lines 3) Enjoy
| darau1 wrote:
| Fascinating. I recall two other interesting uses of ffmpeg: to
| stream to twitch[1], and to record video[2].
|
| [1] https://stackoverflow.com/questions/54273291/streaming-a-
| str...
|
| [2] https://www.youtube.com/watch?v=HO6oU5oT6uU
| b215826 wrote:
| Browse the Internet with one line of Bash:
| firefox https://news.ycombinator.com
|
| But seriously, the commands in the article are not Bash commands
| (they don't even use Bashisms) and are valid in any POSIX-
| compliant shell.
| ls15 wrote:
| The original title of the article is:
|
| > Your own internet radio station in one line
| qrv3w wrote:
| OP here.
|
| The original title did include the word "bash" (it was the
| one and only instance of the word "bash"). I removed this
| word from the main article because including the word "bash"
| superseded a conversation that was nominally about internet
| broadcasting. Maybe the title of this HN submission can be
| changed too.
|
| I appreciate the commenters that picked up on the main theme
| of article and shared some interesting links! But I did enjoy
| the humorous comments too (who doesn't enjoy some good-
| natured bashing (pun-intended)).
| belter wrote:
| If the network is down...Carry on. The music can't stop.
|
| "System Bus Radio" https://github.com/fulldecent/system-bus-radio
| Drybones wrote:
| This article isn't very useful for a "one liner radio", but I use
| icecast2 in a couple of ways
|
| 1. I host a VGM radio [1] 2. I use a combination of icecast2 and
| darkice to have a full home audio networking.
|
| With the home audio network, there's a lot to optimize, but I
| haven't implemented it much more to experiment with it further.
|
| Basically I have a Ubuntu Desktop VM on my home server. A long
| range bluetooth receiver [2] is feed from Proxmox host into the
| VM. The audio from the Bluetooth source (say your phone or your
| computer) is pulled from Darkice and renders an MP3 file/stream
| into Icecast2, which then broadcasts it on 10.0.0.10:8000/home I
| can use devices like Raspberry Pis to continuously listen on that
| URL for playback and play if it's available. There's CLI audio
| players like mpg123.
|
| This could be used for whole home audio playback, but there's
| weird quirks to deal with like the delay between the audio in and
| when you hear it, as well as it becoming desynced over time.
|
| It can also be setup in reverse where a RPi ingests audio from
| it's audio jack and sends it to the audio hub VM and the audio
| hub sends it out to the network.
|
| [1] https://vidya.fm [2]
| https://www.amazon.com/gp/product/B07KTK8YP3/
___________________________________________________________________
(page generated 2022-01-13 23:01 UTC)