[HN Gopher] Webamp IPFS media player
       ___________________________________________________________________
        
       Webamp IPFS media player
        
       Author : bertify
       Score  : 113 points
       Date   : 2021-11-12 11:03 UTC (11 hours ago)
        
 (HTM) web link (webamp-ipfs.netlify.app)
 (TXT) w3m dump (webamp-ipfs.netlify.app)
        
       | alfor wrote:
       | Whoa, 20 years flashback. In some way, it seems we are almost at
       | the same place.
       | 
       | New ideas of decentralisation, freedom, sharing, global internet
       | society.
       | 
       | I wonder how it will end this time.
        
       | mr_sturd wrote:
       | Very nice!
       | 
       | I was curious to see what the hash represented so viewed it via
       | ipfs.io[0] - a directory containing the .mp3 files.
       | 
       | [0] -
       | https://ipfs.io/ipfs/Qmevni3vjqGiSAd7DE7kDhPXAqLNED2zUwJ5XaL...
        
         | meheleventyone wrote:
         | Do requests get cached for the site or is it a live pickup?
         | I've heard IPFS was pretty slow/spotty but using this interface
         | was very snappy.
        
           | cle wrote:
           | IPFS has a similar property as BitTorrent in that, as a piece
           | of content is used more often, it is cached in more nodes on
           | the network and becomes easier to find, which generally
           | improves perf.
        
       | marcodiego wrote:
       | Is it possible to create censorship-resistant IPFS based webapps?
       | I mean, can't a webapp be combined with something similar to
       | peertube and IPFS to create a public media player that you don't
       | have to download neither the player nor the media?
        
         | _def wrote:
         | I don't see how it could be censorship resistant tbh. The data
         | has to be served from a service somewhere, and I can't think of
         | reasons IPFS nodes would be resistant to take downs.
        
           | [deleted]
        
           | serverholic wrote:
           | It's kinda like bittorrent. As long as someone is hosting the
           | file, it's still there.
        
             | Scoundreller wrote:
             | I really need to improve my understanding of magnet links
             | and DHT.
        
           | capableweb wrote:
           | IPFS is content-addressed, so as long as you have the ID of
           | the thing you want to download, you'll be able to download
           | and verify that download from any node. So as long as you can
           | connect to one node that has your content, you'll be able to
           | download it.
           | 
           | Of course, nothing is 100% censorship resistant, but content-
           | addressing helps a lot.
        
             | lijogdfljk wrote:
             | I read that IPFS purposefully has mechanisms in it to allow
             | banning content. While hypothetically you could still run a
             | custom client that won't ban content, peered nodes might
             | still ban the content leaving you with no source.
             | 
             | Based on what i read long, long ago - IPFS is very much not
             | intended to be censorship resistant.
        
               | capableweb wrote:
               | > I read that IPFS purposefully has mechanisms in it to
               | allow banning content
               | 
               | I'd be interested in reading whatever article you got
               | that from, because last time I checked, IPFS doesn't have
               | any such mechanism.
               | 
               | You might be confusing it with the content blocking
               | Protocol Labs does on the public IPFS gateway
               | (https://ipfs.io/ipfs/hash). The gateway being a
               | centralized gateway to distributed IPFS content, is
               | hosted by a US party and must therefore follow US law, so
               | sometimes they block content from being accessed via the
               | gateway.
        
             | billconan wrote:
             | can it hide my identity (ip)?
        
           | michaelsbradley wrote:
           | For censorship resistance there needs to be incentivised
           | replication such that the number of nodes in the p2p storage
           | network (providing the data set or chunks of it) is very
           | large and therefore "take down" becomes intractable. Also,
           | clients need to retrieve data from/as peers in the p2p
           | network rather than through gateways.
        
             | serverholic wrote:
             | Filecoin and other storage crypto coins are trying to
             | address this.
        
         | capableweb wrote:
         | I think that's exactly what this is supposed to be. I mean, you
         | have to _download_ it somehow, it just happens to be that this
         | is downloaded in the browser, and played from there. No need
         | for Peertube.
        
         | hagbard_c wrote:
         | An example of such a thing is the Libgen search interface
         | hosted on IPFS (both data as well as webapp). If you have a
         | means to directly navigate IPFS (that is, without using a
         | proxy) it can be found here:
         | 
         | ipns://libgen.crypto/
         | 
         | If you do not yet have this set up the same thing can be
         | reached through a proxy, e.g.:
         | 
         | https://libgen-crypto.ipns.dweb.link/
         | 
         | The former (pure IPFS/IPNS) link is resistant to censorship as
         | long as access to IPFS is available. The latter can of course
         | be censored but once IPFS becomes mainstream the need for such
         | proxies will disappear.
         | 
         | More on this project can be found here:
         | 
         | https://libgen.fun/dweb.html
        
           | BrianOnHN wrote:
           | > If you have a means to directly navigate IPFS (that is,
           | without using a proxy)
           | 
           | What's the requirement for this?
           | 
           | Like, is this a me (local config) or them (ISP connection)
           | issue?
        
             | hagbard_c wrote:
             | You need access to the internet, that's about it. IPFS can
             | use any transport protocol (see section 3.2 in the
             | whitepaper [1]), it uses a distributed hash table for
             | routing purposes, content addressing to represent objects -
             | these are immutable, once published they're available as
             | long as there is a peer which has the object in cache or
             | 'pinned' (permanently cached).
             | 
             | Read the whitepaper and install [2] a node of your own to
             | get a feel of the thing, you'll soon find out it is an
             | amalgamation of earlier peer to peer systems. The go-ipfs
             | daemon tends to be quite busy, it averages somewhere around
             | 30% CPU, 500MB memory, 0.1Mb/s in, 0.04Mb/s out when
             | hosting ~3GB of (self-generated, niche-interest, database-
             | related) files. This busyness is acknowledged by the
             | developers and should be addressed somewhere down the line.
             | 
             | [1] https://github.com/ipfs/papers/raw/master/ipfs-
             | cap2pfs/ipfs-...
             | 
             | [2] https://dist.ipfs.io/ (get go-ipfs)
        
               | capableweb wrote:
               | > IPFS can use any transport protocol (see section 3.2 in
               | the whitepaper [1]),
               | 
               | In theory. In practice, the network (I checked my local
               | node with ~2500 nodes connected to it) is mostly using
               | quic over tcp/udp, more or less 50%/50% split between
               | tcp/udp.
               | 
               | > This busyness is acknowledged by the developers and
               | should be addressed somewhere down the line.
               | 
               | IPFS has been killing routers[https://github.com/ipfs/go-
               | ipfs/issues/3320] and sending/receiving lots of network
               | traffic[https://github.com/ipfs/go-ipfs/issues/2917]
               | since 2016 and there hasn't been any notable improvements
               | on that front yet. When is "down the line" in reality?
        
               | hagbard_c wrote:
               | The "router kill" problem is a problem with those
               | routers, not with IPFS, or any other chatty program for
               | that matter. That said, IPFS _is_ chatty and as such not
               | something you 'd run on a dial-up line. ADSL 4/1 or
               | higher would be fine though, as long as you get a router
               | which can take the load - just find something that can
               | run OpenWRT and has enough memory and you're set.
               | 
               | Of course you don't _need_ to run IPFS to get at IPFS-
               | hosted content, there are plenty of gateways out there
               | (one of them hosted by Cloudflare). Run your own node if
               | you want to have full control over the path between IPFS
               | and your instances, if you want to contribute to the
               | decentralisation of the  'net or if you just like to
               | tinker.
        
               | capableweb wrote:
               | > The "router kill" problem is a problem with those
               | routers, not with IPFS, or any other chatty program for
               | that matter.
               | 
               | It's really hard to be convinced by that argument when
               | go-ipfs is the only software that manages to kill peoples
               | router until people reboot the router, when literally
               | every other piece of software they use work perfectly,
               | even when using bittorrent and other data-heavy
               | protocols.
        
               | e12e wrote:
               | Kill routers quickly. I've had to reboot various routers
               | over the years when the buffers tracking states grow full
               | (typically sharing a flat with friends where everyone
               | runs torrent, direct connect or similar).
        
               | hagbard_c wrote:
               | The same problem has occurred with many P2P protocols,
               | just search for _' p2p router crash'_. The problem occurs
               | with Bittorrent, DC++, eDonkey and, yes, IPFS - as well
               | as many other applications which open a lot of
               | connections at the same time. This causes the undersized
               | NAT connection tracking tables to overflow upon which the
               | thing will no longer be able to create new connections.
               | 
               | I'm rather surprised that you think only _go-ipfs_ causes
               | these problems given that this is a well-known problem
               | with lower-spec or misconfigured consumer routers, cable
               | modems and other similar devices. Sometimes it can be
               | solved by increasing the size of the tables (which often
               | are set to some ridiculously low number like 1024 or 2048
               | places) if the device has enough memory. If this is not
               | feasible just get a better device with OpenWRT or a
               | similar free software distribution, configure it for 16K
               | connections and it should work.
        
           | Scoundreller wrote:
           | > ipns
           | 
           | Please tell me this is a (Freudian?) typo.
        
             | capableweb wrote:
             | IPNS - InterPlanetary Name System
        
             | hagbard_c wrote:
             | _InterPlanetary Name System (IPNS)
             | 
             | IPFS uses content-based addressing; it creates an address
             | of a file based on data contained within the file. If you
             | were to share an IPFS address such as
             | /ipfs/QmbezGequPwcsWo8UL4wDF6a8hYwM1hmbzYv2mnKkEWaUp with
             | someone, you would need to give the person a new link every
             | time you update the content.
             | 
             | The InterPlanetary Name System (IPNS) solves this issue by
             | creating an address that can be updated._
             | 
             | https://docs.ipfs.io/concepts/ipns/
        
       | kacy wrote:
       | If you're curious how it's built, here are the two main
       | libraries: https://github.com/codealchemist/webamp-ipfs
       | https://github.com/captbaritone/webamp
        
         | teknopurge wrote:
         | thank you for posting this.
        
       | psKama wrote:
       | Unfortunately my 4 out of 5 trials failed to load like most of
       | the other IPFS based stuff.
        
       | jamesfmilne wrote:
       | Alas it doesn't play in Safari 15.1 for me. Just get the first
       | chunk of audio then silence.
       | 
       | Plays fine in Chrome 95 and Firefox 94 though.
       | 
       | (On macOS 12.0.1)
        
         | yessirwhatever wrote:
         | Safari's support for webaudio has always been terrible.
        
           | capableweb wrote:
           | Safari's support for anything that Apple doesn't seem to use
           | on their own web properties, is really crap. WebRTC and
           | WebSockets also been lagging behind for a long time and when
           | they catch up, they tend to have very buggy implementations.
        
             | ntp85 wrote:
             | What incentive should they have to make Safari a capable
             | browser? Who would profit when developers can build PWAs
             | instead of paying the Apple Tax?
        
       | ugjka wrote:
       | slow
        
       | arketyp wrote:
       | +1 My love for Winamp classic is bottomless. I would love to love
       | IPFS as much. And information should be free. If your art can be
       | consumed digitally, deal with that. I'm willing to let go of all
       | the (supposedly) great art for the greater aesthetic of free
       | culture. NFTs are noise but be my guest.
        
         | capableweb wrote:
         | What does this submission have to do with NFTs?
        
           | kyletut wrote:
           | A huge percentage of NFTs use IPFS for their media. NFT +
           | IPFS CID is a powerful combo:
           | https://www.youtube.com/watch?v=6b8OANmw2kM
        
             | capableweb wrote:
             | Sure, but this project doesn't seem to use any NFTs so why
             | bring it up?
        
               | 0des wrote:
               | It's a popular buzz-topic right now
        
           | arketyp wrote:
           | Precisely in the way my stream of consciousness brought me
           | there. Some seem to think it's a rescue for artists in the
           | digital sphere.
        
             | capableweb wrote:
             | You might want to logoff the internet until you come down
             | from whatever it is that made you go up in the first place.
        
               | 0des wrote:
               | What a rude and unhelpful comment
        
               | capableweb wrote:
               | I'm sorry if it seemed rude. It made sense to me to
               | respond with nonsense to a comment that seems to be
               | nonsense as well, but I shouldn't had.
        
               | lostgame wrote:
               | Being rude in your apology comment for being rude isn't
               | helpful. :P
        
       | iicc wrote:
       | I needed to advance a track to make it work, and the tracks are
       | in reverse order. (Firefox)
       | 
       | Still, impressive :)
        
       | pineconewarrior wrote:
       | Massive nostalgia! Thanks for sharing. Got a repository for us to
       | poke at?
        
         | ugh123 wrote:
         | the winamp clone used for this is located here
         | https://github.com/captbaritone/webamp
        
       | cblconfederate wrote:
       | Dear Nullsoft, i have a problem,i can't drag winamp outside the
       | browser window
        
       ___________________________________________________________________
       (page generated 2021-11-12 23:02 UTC)