[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)