[{"data":1,"prerenderedAt":344},["ShallowReactive",2],{"project-28910368":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":27,"sentiment":28,"stance_mix":29,"scored_comments":34,"aspects":35,"strip":40,"post_text":42,"what":43,"said":70,"maker_in_thread":154,"shape":163,"grid":167,"attempts":305,"same_week":306,"maker_shows":222,"maker_hidden":336,"reader_version":337,"card":338},"28910368","dstream","Simple access to your music from the web","title","Show HN: Simple access to your music from the web","https:\u002F\u002Fgithub.com\u002FDusteDdk\u002Fdstream","github.com","dusted",1634585319,2021,217,53,200,2533,8,"notable","consumer_social","music streaming","web_app",[24,21,25,26],"self-hosted music","mp3 server","web music player","loved",0.303,{"positive":30,"neutral":31,"mixed":32,"critical":33},6,14,0,1,21,{"execution":36,"idea":38},{"positive":37,"critical":32},2,{"positive":39,"critical":33},3,[41,32,32,32,32,32,32,32,41,32,32,32,33,39,39,32,32,41,41,39,32,39,32,41,41,32,32,32,32,39,39,32,39,32,39,39,39,39,32,39],5,null,{"problem":44,"audience":42,"pricing":42,"motivation":54,"time_to_build":42,"stack":58,"openness":67,"stage":68,"team_size":69},{"value":45,"source":46,"evidence":47},"Accessing your own music collection from a browser without heavy software","maker",[48,51],{"id":49,"by":11,"text":50},"28912057","Tldr; optimized for my specific search intensive and jumpy \"music listening flow\" using keyboard and mouse on a desktop workstation behind a corpo wall. There are a few reasons I…",{"id":52,"by":11,"text":53},"28912176","Yeah, the browser really does all the lifting, it's just about exposing some files and making an interface that allows you to interact with your collection the way you like.",{"value":55,"source":46,"evidence":56},"Wanted quick keyboard-driven access to music at work over HTTPS, behind a corporate firewall",[57],{"id":49,"by":11,"text":50},[59],{"value":60,"source":61,"evidence":62},"Browser-side JavaScript","commenter",[63],{"id":64,"by":65,"text":66},"28920930","sirodoht","This is pretty awesome actually. I've been using it for the past few hours and changing it at will: https:\u002F\u002Fgithub.com\u002Fsirodoht\u002Fdstream Vanilla JS helps immensely to jump right…","open_source","launched","unknown",{"praise":71,"objections":84,"requests":95,"questions":116,"alternatives":124},[72],{"value":73,"source":61,"evidence":74},"Minimal, small codebase that fits its needs",[75,79,80],{"id":76,"by":77,"text":78},"28911303","Glench","Neat, always great when someone makes minimal software that fits their needs. Inspiring to see it done in a relatively small amount of code, too! Right now I rely on Google Music…",{"id":64,"by":65,"text":66},{"id":81,"by":82,"text":83},"28912300","spicybright","Having a a temporary music queue you add to and shuffle around while it's playing is sadly under rated in most music players. That's how I listen to music too. Nice work!",[85],{"value":86,"source":61,"evidence":87},"Playback state is not kept when leaving the page",[88,92],{"id":89,"by":90,"text":91},"28912496","flyingcircus3","Does this maintain any state? Lets say I start playing an album, then leave the page. Does the music restart from the same track\u002Ftime, when I return, or do I need to reselect the…",{"id":93,"by":11,"text":94},"28912553","Nope, the state is all in the audio player component of the browser, this is really nothing but an interface to tell the browser what file to play",[96,107],{"value":97,"source":61,"evidence":98},"Offline caching of tracks",[99,103],{"id":100,"by":101,"text":102},"28913113","IWantToRelocate","question: is it possible to cache the music locally somehow so you download\u002Fstream the track only once?",{"id":104,"by":105,"text":106},"28914804","soruly","The simpliest way is to play (stream) the music file using \u003Caudio> tag, the resource would be cached once you have completed the playback once. Then you can go offline and start…",{"value":108,"source":61,"evidence":109},"Support for playing audio on a Raspberry Pi",[110,113],{"id":111,"by":90,"text":112},"28912246","How simple would this be to adapt to a raspberry pi, where the music played on the pi itself, over the 1\u002F8\" jack, instead of in the web client?",{"id":114,"by":11,"text":115},"28912282","Not at all what this was made for, but that could be a fun project and also not especially complicated (spawn mplayer on the pi)",[117],{"value":118,"source":61,"evidence":119},"Can tracks be streamed without downloading first?",[120],{"id":121,"by":122,"text":123},"28932858","joshspankit","Awesome. Is there any way to stream them so they don’t have to be downloaded first?",[125,132,136,147],{"value":126,"source":61,"evidence":127},"Navidrome with Jamstash or play:Sub",[128],{"id":129,"by":130,"text":131},"28914331","doomrobo","For anyone who wants to stream music from a server they run, I strongly recommend my setup. I run Navidrome [0] on my media machine, and then connect to it via Jamstash [1] on my…",{"value":133,"source":46,"evidence":134},"mstream",[135],{"id":49,"by":11,"text":50},{"value":137,"source":61,"evidence":138},"Mopidy or MPD",[139,143],{"id":140,"by":141,"text":142},"28912339","Phrodo_00","I don't know, but you could use mopidy or mpd to accomplish this.",{"id":144,"by":145,"text":146},"28913078","hobo_mark","I wish there was some sort of webrtc plugin for MPD, so I could stream my music collection at home from work.",{"value":148,"source":61,"evidence":149},"git annex with fzf and vlc",[150],{"id":151,"by":152,"text":153},"28910594","bwestergard","Interesting. I accomplish something similar with git annex, fzf, and vlc. https:\u002F\u002Fgit-annex.branchable.com\u002F https:\u002F\u002Fgithub.com\u002Fjunegunn\u002Ffzf",{"comments":30,"answered":39,"key":155},[156,159,160],{"id":157,"text":158},"28910670","cool! I like peoples custom solutions! I'm using fzf too, I found out about it here on hackaday, it was quite easy to script a nice little TUI for playing midi files (what I did)…",{"id":52,"text":53},{"id":161,"text":162},"28915279","That's nice! I didn't consider dumping the database to the browser and searching there, but I tried just dumping all the links on one page, and the browser disagreed a bit with…",{"commenters":164,"max_depth":30,"maker_replies":30,"first_comment_mins":165,"lifespan_hours":166},38,15,56,[168,172,176,177,179,183,185,188,189,191,193,195,198,201,203,205,209,210,214,217,220,223,225,226,229,233,237,240,243,246,248,249,252,257,261,265,267,270,274,275,277,279,281,282,283,284,286,289,292,296,298,301,304],[169,32,41,170,171,32],"28912457","project\u002Fpositive\u002Fexecution","entropie",[173,32,32,174,175,32],"28915745","other\u002Fneutral\u002Fnone","stevekemp",[151,33,32,174,152,32],[157,33,32,178,11,33],"commenter\u002Fneutral\u002Fnone",[180,33,32,181,182,32],"28920203","commenter\u002Fneutral\u002Fdocs","woolion",[184,33,32,178,152,32],"28921445",[186,33,32,187,182,32],"28922362","commenter\u002Fpositive\u002Fnone",[121,33,32,178,122,32],[190,33,32,178,152,32],"28933321",[192,33,32,178,122,32],"28939949",[76,37,41,194,77,32],"project\u002Fpositive\u002Fidea",[196,37,32,174,197,32],"28911881","pavel_lishin",[199,37,32,174,200,32],"28915677","indigodaddy",[202,37,32,174,197,32],"28918063",[52,37,32,204,11,33],"maker\u002Fneutral\u002Fexecution",[206,37,33,207,208,32],"28912237","project\u002Fcritical\u002Fidea","lnxg33k1",[129,39,32,174,130,32],[211,39,39,212,213,32],"28914496","project\u002Fneutral\u002Fnone","mod",[215,39,39,212,216,32],"28914784","ibizaman",[218,39,32,174,219,32],"28914598","thefunnyman",[221,222,32,174,105,32],"28914774",4,[161,222,32,224,11,33],"project\u002Fneutral\u002Fperformance",[64,41,41,170,65,32],[227,30,32,174,228,32],"28914063","satoshiiii",[230,231,41,194,232,32],"28913367",7,"jrm4",[234,18,39,235,236,32],"28911252","project\u002Fneutral\u002Fidea","stiray",[238,18,32,174,239,32],"28911528","EamonnMR",[241,18,39,212,242,32],"28911767","mongol",[244,18,39,212,245,32],"28916023","connordoner",[49,18,32,247,11,33],"maker\u002Fneutral\u002Fidea",[81,18,41,194,82,32],[250,18,32,174,251,32],"28915659","raffraffraff",[253,254,41,255,256,32],"28915440",9,"project\u002Fpositive\u002Fnone","shrikant",[258,259,32,174,260,32],"28913903",10,"1ark",[262,263,32,174,264,32],"28912801",11,"f_gergo",[144,266,32,174,145,32],12,[268,266,32,174,269,32],"28913184","np_tedious",[271,272,32,174,273,32],"28915364",13,"dehrmann",[111,31,39,235,90,32],[276,31,39,212,82,32],"28912280",[278,31,39,235,90,32],"28912421",[114,31,32,280,11,33],"maker\u002Fneutral\u002Fnone",[89,31,39,212,90,32],[93,31,32,212,11,33],[140,31,32,174,141,32],[285,31,39,212,90,32],"28912461",[287,31,39,212,288,32],"28912797","mr_sturd",[290,165,32,174,291,32],"28915759","discordance",[293,294,39,212,295,32],"28911430",16,"TedDoesntTalk",[100,297,39,212,101,32],17,[299,297,32,178,300,32],"28913169","codefined",[302,297,32,178,303,32],"28913514","mynameisash",[104,297,39,212,105,32],[],[307,312,317,322,326,331],{"id":308,"name":309,"points":310,"category":311},"28901214","SurfSonar",332,"hardware",{"id":313,"name":314,"points":315,"category":316},"28868382","OtterTune",164,"infrastructure",{"id":318,"name":319,"points":320,"category":321},"28918850","Datree (YC W20)",144,"dev_tools",{"id":323,"name":324,"points":325,"category":316},"28900125","Qvm-Create-Windows-Qube",120,{"id":327,"name":328,"points":329,"category":330},"28886328","command-interface",119,"languages",{"id":332,"name":333,"points":334,"category":335},"28895897","Vizzu",115,"data",false,"v2",{"id":339,"name":5,"line":6,"ai":336,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":340,"top":18,"kw":341,"maker":11,"domain":10,"tier":19,"attempts":32,"strip":342,"url":9,"mix":343,"praise":73,"objection":86,"sub":21},28910368,0.3,[24,21,25,26],"5000000050001330055303055000033030333303",[30,31,32,33],1794036612317]