[{"data":1,"prerenderedAt":481},["ShallowReactive",2],{"project-28170609":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":5,"maker":10,"posted_at":11,"year":12,"points":13,"comments":14,"rank_in_year":15,"shown_in_year":16,"top":17,"tier":18,"category":19,"subcategory":20,"format":21,"keywords":22,"reception":26,"sentiment":27,"stance_mix":28,"scored_comments":33,"aspects":34,"strip":45,"post_text":47,"what":48,"said":96,"maker_in_thread":205,"shape":214,"grid":218,"attempts":438,"same_week":446,"maker_shows":17,"maker_hidden":473,"reader_version":474,"card":475},"28170609","per.quest","Instantly listen to any URL","title","Show HN: Instantly listen to any URL","https:\u002F\u002Fper.quest\u002F","soheil",1628870264,2021,134,82,382,2533,16,"notable","productivity","text to speech","web_app",[20,23,24,25],"article audio","url to mp3","listen to articles","curious",0.148,{"positive":29,"neutral":30,"mixed":31,"critical":32},13,27,2,10,52,{"idea":35,"privacy":38,"design":41,"execution":42,"pricing":43,"performance":44},{"positive":36,"critical":37},6,1,{"positive":39,"critical":40},0,3,{"positive":39,"critical":39},{"positive":40,"critical":36},{"positive":37,"critical":39},{"positive":37,"critical":39},[40,40,40,39,37,39,37,37,40,40,40,46,39,40,39,40,40,39,46,37,37,40,46,37,37,37,37,46,40,37,40,46,46,46,46,46,46,40,40,46],5,null,{"problem":49,"audience":65,"pricing":74,"motivation":47,"time_to_build":47,"stack":86,"openness":94,"stage":95,"team_size":94},{"value":50,"source":51,"evidence":52},"Listening to web articles instead of reading them.","inferred",[53,57,61],{"id":54,"by":55,"text":56},"28173631","flanbiscuit","Once in a while I use the speech feature of Chrome on my MacOS to have it read articles to me while I work. It's clunky though, it only works (AFAIK) on highlighted text which…",{"id":58,"by":59,"text":60},"28175250","axegon_","I have something pretty similar that I built some time ago for personal use: listen to articles while I am working on things and can't dedicate my attention to anything else.…",{"id":62,"by":63,"text":64},"28173082","sntran","This is timing. I was just looking for a solution for a friend who has very bad eyesight due to accident. They want to be able to listen to news articles and such. It would be…",{"value":66,"source":51,"evidence":67},"People who want to listen to articles while working, driving or with poor eyesight.",[68,69,73],{"id":54,"by":55,"text":56},{"id":70,"by":71,"text":72},"28173827","stcorbett","Wow, thanks, I have tried hacking together something that would work like this for playing text posts while I'm driving or working out. Awesome! :)",{"id":62,"by":63,"text":64},{"value":75,"source":76,"evidence":77},"Free to use.","commenter",[78,82],{"id":79,"by":80,"text":81},"28173138","anonymouse008","Right?! This is honestly a service I would pay for and it’s… up for free? There must be some type of cost on their end. Heck I’m happy to invest!",{"id":83,"by":84,"text":85},"28172706","donclark","Neat! Could you add speed controls, a download audio option, download audio as mp3\u002Fwebm\u002Fetc, and options for different voices? Why is there no donation option for this project?…",[87],{"value":88,"source":76,"evidence":89},"Mozilla Readability used for text extraction (per commenter description)",[90],{"id":91,"by":92,"text":93},"28174788","freediver","Step 1. Page to Text (Eg. Mozilla readability.js) Step 2. Text to Speech (eg. Mozilla DeepVoice) Both libraries open-source and free.","unknown","launched",{"praise":97,"objections":120,"requests":157,"questions":171,"alternatives":186},[98,110],{"value":99,"source":76,"evidence":100},"Natural-sounding voice and useful for reading articles while working",[101,102,106],{"id":54,"by":55,"text":56},{"id":103,"by":104,"text":105},"28172717","debarshri","This is one of the best ideas I have seen this year. This is beautiful.",{"id":107,"by":108,"text":109},"28195801","ekulianova","Worked quite well with an article. Good job!",{"value":111,"source":76,"evidence":112},"Bookmarklet and command-line usage",[113,116],{"id":114,"by":10,"text":115},"28172474","If you want a bookmark: ```…",{"id":117,"by":118,"text":119},"28173902","lambdaba","command-line version: ``` curl -L https:\u002F\u002Fper.quest\u002F$URL | mpv - # or aplay etc. ```",[121,136,150],{"value":122,"source":76,"evidence":123},"Blocklist-based localhost checks leave SSRF holes",[124,128,132],{"id":125,"by":126,"text":127},"28177677","bryanh","https:\u002F\u002F2130706433:443\u002F https:\u002F\u002F0177.0.0.01:443\u002F",{"id":129,"by":130,"text":131},"28184236","karmanyaahm","http:\u002F\u002F[::1] still works btw",{"id":133,"by":134,"text":135},"28247315","remram","You will not win against SSRF using a blocklist of names. You need a comprehensive solution that is designed for this and will check the end address after redirections, DNS…",{"value":137,"source":76,"evidence":138},"Fails on some pages, such as Hacker News newest and Gemini pages, returning empty audio",[139,143,147],{"id":140,"by":141,"text":142},"28172257","foxfluff","\"No video with supported format and MIME type found.\" Apparently it's serving zero-byte mp3s?",{"id":144,"by":145,"text":146},"28172631","legrande","Yeah I got this error when requesting: https:\u002F\u002Fnews.ycombinator.com\u002Fnewest",{"id":148,"by":141,"text":149},"28175267","This is the first URL I tried: gemini:\u002F\u002Fgemini.circumlunar.space\u002Fdocs\u002Fspecification.gmi",{"value":151,"source":76,"evidence":152},"Requires JavaScript; the index form does not work without it",[153],{"id":154,"by":155,"text":156},"28174644","fairytale","I feel like this is a great idea, honestly. But in my opinion I think that you should make the website fully work without the use of client-side JavaScript. Not that I dislike…",[158,163,167],{"value":159,"source":76,"evidence":160},"Speed controls and voice choice",[161,162],{"id":83,"by":84,"text":85},{"id":54,"by":55,"text":56},{"value":164,"source":76,"evidence":165},"Support for other languages",[166],{"id":62,"by":63,"text":64},{"value":168,"source":76,"evidence":169},"Download audio option",[170],{"id":83,"by":84,"text":85},[172,179],{"value":173,"source":76,"evidence":174},"How is it built?",[175],{"id":176,"by":177,"text":178},"28173341","diplodocusaur","how is this made?",{"value":180,"source":76,"evidence":181},"Does the page text get skipped for pre code blocks?",[182],{"id":183,"by":184,"text":185},"28173738","smbv","Very nice! I tried it out on one of my articles[0] and it worked very well. The only issue I had was that the code samples were spoken. Perhaps ignore \u003Cpre> sections? [0]…",[187,194,201],{"value":188,"source":76,"evidence":189},"Speechify Chrome extension",[190],{"id":191,"by":192,"text":193},"28174068","egfx","I became aware of a chrome extension that does this. Is there anything that the extension does that this can’t do?…",{"value":195,"source":76,"evidence":196},"Pocket text to speech",[197],{"id":198,"by":199,"text":200},"28175596","turbocon","Not trying to steal from the dev here, but this same ability is built into Pocket that is run by Mozilla, and Mozilla will happily take your money.",{"value":202,"source":76,"evidence":203},"Browser built-in speech features",[204],{"id":54,"by":55,"text":56},{"comments":36,"answered":31,"key":206},[207,210,213],{"id":208,"text":209},"28176931","Added a check against localhost thanks for pointing that out.",{"id":211,"text":212},"28185012","Just fixed. Thanks.",{"id":114,"text":115},{"commenters":215,"max_depth":36,"maker_replies":36,"first_comment_mins":216,"lifespan_hours":217},55,128,231,[219,223,227,230,233,235,237,241,244,246,248,251,254,256,257,259,260,264,267,269,273,275,277,279,283,286,289,291,294,296,300,303,306,307,310,313,315,317,319,321,323,326,328,332,335,338,341,344,348,350,352,354,356,357,358,361,363,364,366,370,373,377,379,381,384,389,393,395,397,399,401,405,409,411,413,418,422,424,428,429,432,435],[220,39,40,221,222,39],"28174647","project\u002Fneutral\u002Fnone","eat_veggies",[224,39,40,225,226,39],"28176237","project\u002Fneutral\u002Fidea","busymom0",[228,39,40,225,229,39],"28176727","neolog",[231,39,39,232,226,39],"28177722","commenter\u002Fneutral\u002Fidea",[234,39,40,225,229,39],"28181697",[236,39,39,232,226,39],"28183578",[238,39,39,239,240,39],"28178858","other\u002Fneutral\u002Fidea","ari__",[242,39,39,239,243,39],"28194129","hopesthoughts",[208,39,39,245,10,37],"maker\u002Fneutral\u002Fnone",[125,39,37,247,126,39],"project\u002Fcritical\u002Fprivacy",[249,39,39,250,226,39],"28177747","commenter\u002Fneutral\u002Fprivacy",[252,39,39,250,253,39],"28178093","Zacru",[255,39,39,250,253,39],"28178151",[129,39,37,247,130,39],[211,39,39,258,10,37],"maker\u002Fneutral\u002Fprivacy",[133,39,37,247,134,39],[261,37,40,262,263,39],"28173033","project\u002Fneutral\u002Fdesign","eyelidlessness",[265,37,40,262,266,39],"28174275","3pt14159",[268,37,40,262,155,39],"28174711",[270,37,39,271,272,39],"28176898","commenter\u002Fneutral\u002Fdesign","chrismorgan",[274,37,40,221,243,39],"28194115",[154,31,40,276,155,39],"project\u002Fmixed\u002Fdesign",[58,40,46,278,59,39],"project\u002Fpositive\u002Fidea",[280,40,40,281,282,39],"28175634","project\u002Fneutral\u002Fexecution","yunusabd",[284,40,39,285,59,39],"28175878","commenter\u002Fneutral\u002Fexecution",[287,40,39,288,282,39],"28176153","commenter\u002Fneutral\u002Fperformance",[290,40,39,288,59,39],"28177794",[292,40,40,281,293,39],"28272986","call-me-al",[114,295,39,225,10,37],4,[297,295,39,298,299,39],"28172484","commenter\u002Fneutral\u002Fnone","tantalor",[301,295,40,281,302,39],"28173000","ASTP001",[304,295,39,271,305,39],"28173142","darkstar999",[83,46,40,225,84,39],[308,46,40,225,309,39],"28172943","croes",[311,46,39,232,312,39],"28175931","dreadlordbone",[314,46,39,232,309,39],"28179829",[316,46,39,232,243,39],"28194170",[79,46,46,318,80,39],"project\u002Fpositive\u002Fpricing",[198,46,37,320,199,39],"project\u002Fcritical\u002Fidea",[322,46,39,232,226,39],"28177717",[324,46,40,221,325,39],"28174562","RyEgswuCsn",[327,46,40,225,92,39],"28176146",[329,46,37,330,331,39],"28176517","project\u002Fcritical\u002Fexecution","FnControlOption",[333,46,40,334,92,39],"28176696","maker\u002Fneutral\u002Fexecution",[336,46,39,285,337,39],"28179386","tejasvi88",[339,46,40,281,340,39],"28179686","SahAssar",[342,36,46,278,343,39],"28174389","donatj",[345,346,37,330,347,39],"28173211",7,"indigodaddy",[117,349,40,281,118,39],8,[351,349,39,334,10,37],"28174289",[140,353,37,330,141,39],9,[355,353,39,334,10,37],"28172435",[144,353,37,330,145,39],[148,353,37,330,141,39],[359,353,39,285,360,39],"28172459","SimeVidas",[362,353,39,285,141,39],"28175254",[54,32,46,278,55,39],[365,32,39,245,10,37],"28186546",[367,368,40,225,369,39],"28173472",11,"hemloc_io",[371,368,39,372,243,39],"28194190","other\u002Fneutral\u002Fnone",[374,375,37,330,376,39],"28177230",12,"TroisM",[183,29,40,378,184,39],"project\u002Fmixed\u002Fexecution",[191,380,40,225,192,39],14,[382,380,39,383,282,39],"28175163","commenter\u002Fneutral\u002Fpricing",[385,386,46,387,388,39],"28174996",15,"project\u002Fpositive\u002Fnone","kumarm",[390,386,46,391,392,39],"28177010","project\u002Fpositive\u002Fexecution","sarajevo",[394,17,40,281,243,39],"28194074",[62,396,46,278,63,39],17,[398,396,39,372,243,39],"28194244",[70,400,46,278,71,39],18,[402,403,46,387,404,39],"28172649",19,"spapas82",[406,407,40,225,408,39],"28195719",20,"getwhatelse",[103,410,46,278,104,39],21,[107,412,46,391,108,39],22,[414,415,46,416,417,39],"28177132",23,"project\u002Fpositive\u002Fperformance","SMAAART",[419,420,40,225,421,39],"28174721",24,"arthurcolle",[176,423,40,281,177,39],25,[425,423,40,426,427,39],"28173772","project\u002Fneutral\u002Fpricing","jcun4128",[91,423,40,281,92,39],[430,423,40,426,431,39],"28177539","unraveller",[433,434,46,391,145,39],"28172642",26,[436,30,39,372,437,39],"28173960","shorting24x7",[439,442,443],{"id":440,"t":441,"points":346,"comments":295},"28165946",1628834646,{"id":4,"t":11,"points":13,"comments":14},{"id":444,"t":445,"points":40,"comments":37},"28298186",1629867404,[447,452,457,461,466,470],{"id":448,"name":449,"points":450,"category":451},"28207662","Imba",1216,"languages",{"id":453,"name":454,"points":455,"category":456},"28221904","DIY-ai-art",399,"creative",{"id":458,"name":459,"points":460,"category":19},"28167358","Nomad Visa",285,{"id":462,"name":463,"points":464,"category":465},"28223515","Pop.com",225,"dev_tools",{"id":467,"name":468,"points":469,"category":465},"28191450","Burst",165,{"id":471,"name":472,"points":216,"category":451},"28164398","lisp-rosetta-stone",false,"v2",{"id":476,"name":5,"line":6,"ai":473,"cat":19,"year":12,"points":13,"comments":14,"rec":26,"s":477,"top":17,"kw":478,"maker":10,"domain":5,"tier":18,"attempts":40,"strip":479,"url":9,"mix":480,"praise":99,"objection":122,"sub":20},28170609,0.15,[20,23,24,25],"3330101133350303305113511115313555555335",[29,30,31,32],1793991031806]