Hacker News new | past | comments | ask | show | jobs | submit login
Nuclear – Popcorn Time for music (github.com/nukeop)
223 points by devcriollo on Jan 16, 2019 | hide | past | favorite | 173 comments



It seems like calling this "Popcorn Time" for music isn't necessarily a great comparison.

PT allowed streaming playback of torrented movies and was very clearly piracy and illegal.

Meanwhile, this seems like an aggregator for existing free sources of music (Bandcamp, YouTube, SoundCloud).

That said, it looks like a cool hobby project and a great alternative for folks who want/need a multi-source music client. Google Play Music was my go-to service for a long time since I could not only get streaming access but also upload my own local files to their servers for playback anywhere. Most of that local music came from Bandcamp.


I think everyone is tired of being ripped off by out of date copyright laws and industry shenanigans. The music industry is full of blood thirsty lawyers, big ticket prices, unjust YT algorithms, and death by a thousand cuts with all the monthlies from music streaming services. I for one am fed up with this oligarchy and am happy to see services like this pop up from time to time to remind me that technology will continue to displace these brokers until it murders the middle man entirely. I look forward to that day.


A little while back, a project named Supportify was posted here. It looks at your most played tracks, and tries to find Bandcamp links for the artists, so you can support them directly.

https://tomduncalf.github.io/supportify/


At the same time though, it normalizes the term "PT" away from piracy and that's not necessarily a bad thing either.


Is ripping videos from YouTube (even not for permanent storage, just to show in a different interface) legal?


youtube-dl exists, and seems to get around this issue by scraping the page rather than using the API.


Page scraping is generally frowned upon by the host. Its seams like the volume of people using youtube-dl is just so low comparatively its not on the "radarr" at youtube.


Restrictive APIs are frowned upon by technical users.


> Its seams like the volume of people using youtube-dl is just so low comparatively its not on the "radarr" at youtube.

youtube-dl breaks all the time (but fixes get pushed upstream quickly). I don't know if this is intentional or accidental, and I won't speculate. However, it's a constant game of cat and mouse.


The screenshots make me nervous. All of the bands shown certainly sell/pay stream their music online.

Now I haven't checked if those bands are sharing free promotional material on Bandcamp, SoundCloud, etc. but something feels a bit iffy about this.

I'd be a lot happier if the artists featured were clearly releasing music under Creative Commons or something like that. Right now this makes me think that if I use it the music streamed would be against the artists' wishes.


calling this Popcorn Time for music suggests that this is very against artists' whishes


I was trying to be generous to the developer and was hopping the intention was to support peer to peer music streaming rather than just ripping people off.

Just like with software, FOSS is better for everyone than just pirating commercial software.


Popcorn time was popular because it was way better than any of the legal alternatives. You just had to open it, type the name of the movie/series and you probably could start watching. You could also do this in the legal alternatives, but the chance of actually finding what you were looking for was pretty small.

Here I don't really see how this is better than Spotify/iTunes/Amazon Music.


Spotify recently removed six songs in my "offline" playlist from its library, so I can no longer play them. If this actually saves music files, that's a big plus.


Indeed. I'd love an app that allowed me to download songs (from torrent etc.) - the desired version, quality, ID3 tags and so on without issues. That would be a big improvement on most music services (streaming and buying). However, this looks to mainly be a low-quality Spotify alternative, so...


You may be interested in soulseek[0]. I use it to search for more obscure music and the results include the bitrate/format. There's also a watchlist function in case you can't find something so you can keep searching in the background. Afterwards I use beets[1] to autotag everything with musicbrains and move it to my library folder, and it usually works. The downside is it isn't a streaming service so you have to find some way to listen remotely. I use Plex[2] for this and haven't had any issues. Also since it's P2P there's a general expectation that you also share things with other people, so you'd have to be prepared for that.

[0] https://www.slsknet.org/news/

[1] https://github.com/beetbox/beets

[2] https://www.plex.tv/



You can use your own copies of music in Spotify. All you have to do is tell it where to find them on your disk.

And if you connect with a mobile device on the same network as the computer with the files on it, they'll automatically be transferred so you'll get them on mobile too.

Two of my favorite bands (Blind Guardian, Kamelot) put only their last couple of releases on Spotify, but with this method I can listen to their whole back catalog.


Reading through Spotify's docs, I really don't want to put control of my music life in the hands of Spotify's tenuous relationship with the music industry.


That's the point, you don't have to. The spotify software synchronizes your personal collection between all your devices and uses it to fill holes in their catalog.

Afraid that an artist is going to pull their stuff from spotify? Acquire digital copies of that artist's work some other way, and spotify will slot them right into your playlists where the old ones used to be. I did this when SPV Records pulled Silverthorn, it was practically no work.

Even if the whole industry abandons spotify, it will still be unique and valuable as a seamless way to synchronize your music library between all devices.


If the industry abandons Spotify, and my entire music life was wrapped up in it, then I need to acquire 600+ individual music tracks from 400+ artists, if I hadn't already done it already, all to continue listening to music the same way I do now. The problem gets worse the longer I remain on the platform. And that assumes I'll be able to get my data, about which tracks I need to acquire, out when the time comes. If not then I'm really up Shit's Creek without a paddle.

I'd rather pay more in the short term, paying for individual tracks, for a solution that will work indefinitely, than set up a situation in which extreme disruption of a part of my life I'm utterly reliant on can be afflicted at a whim of a dipshit music exec who doesn't understand how people can become reliant on music or worse, understands and does it anyway because it'll make him more money.


So you're saying, you're afraid of being reduced to small personal catalog in an unlikely future apocalypse scenario, and you are solving this problem by forcing yourself to use a small personal catalog today?


I wouldn't call it unlikely. Music services have a history of getting shut down. Sure, Spotify's star is bright now. But it could get acquired tomorrow by a company that decides it doesn't want to support all my use cases. If one of those use cases is something I'm reliant on, then Spotify all of a sudden becomes totally worthless.

Whereas my personal catalog will never stop supporting my use cases.


What music services have a history of getting shut down after 11 years of profitability and complete cultural and market dominance? Spotify is hardly comparable to Zune or whatever.

It's totally your prerogative to not use spotify or other music streaming services, I'm just saying fear of imminent market apocalypse isn't really a good reason to deny all of the upsides.


Cultural and market dominance? Where can I get some of that Kool-aid? Spotify is certainly more successful than many of the alternatives, but it's a crowded space. Apple Music, Amazon Music, Google Play Music, YouTube Music, SoundCloud, Pandora, Bandcamp and 8Tracks are just the ones I've heard of. Any one of these, including Spotify, is subject to acquisition, spinning out, or outright shutdown at the whims of the music industry. Any of these events can change the service such that it's practically useless.

The ones already shut down or folded into different companies with different priorities include Rhapsody, Beatport, Rdio, Last.fm's streaming offering, and the aforementioned Zune. Forgive me if I'm a little cautious and not willing to depend on the magic of "the market," cue jazz hands, to ensure access to my music, especially when I have a solution that's already working that isn't subject to those risks.


Dude, just had to tell you that Blind Guardian and Kamelot are some of my favs too :-D

But to add something substantive, I also do this with many artists. I also really like Tool, which are notoriously absent from all the platforms. I ripped my old CDs and uploaded them to Google Play Music and now I can listen whenever, wherever I want.


My only problem with this method is the volume level of imported songs is different than spotify's, which is very annoying because the imported songs are often a lot louder than other songs on spotify. Apparently spotify's volume normalization setting doesn't apply to these imported songs.


Blind Guardian has their full discography on Spotify now, in case you hadn't seen :-)


Have you tried Google Play Music? I have never had a problem with them, after experiencing the same issue as you with Spotify. Much cleaner interface too.


I've had issues with Google Play Music removing albums from underneath me. And sometimes specific songs from the album wouldn't be available.


And apparently file download in nuclear is "coming soon". Well, there went the one reason to try and use it.


I believe it might be sought after is because it is a free alternative (although not sure if it contains ads or not, I don't see any mention of it anywhere - and I haven't used it).


One way this better than Spotify & Apple Music - it contains user-created remixes and mashups that aren't available on the streaming platforms.

But for users who are interested in that content, I don't know how this is much better than just browsing the songs directly on YouTube.com.


FOSS client sounds like a selling point to me.


One of the best commandline tools I've ever used was `pirateflix`. You typed pirateflix, typed the name of any movie, then a few seconds later VLC would open and the movie started right away.

I didn't use it much, but it was an amazing example of "Do one thing well."


It's better because it's free, as opposed to the rest of options that you've mentioned which either a) cost money or b) force you to listen to ads.

(Pro-tip: if you use https://open.spotify.com/ with a free account with an ad blocker, you get no ads)


The actual audio ads are blocked/skipped? (vs the pop-up ads)


Yep


There was a time (Napster -> Bearsahre/Limewire/Kazaa) when I would have been excited about something like this. As I've become more financially stable, and have more hardware for music to integrate into I look at a project like this and think: How can I share music links with my friends easily? How do I get these songs on my watch? How do I get these songs on my phone? How do I play these from my home speakers? How easy is going to be for my partner to do all of the same things?

The user experience bar for a music service has gone up since the days of Napster. If you primarily use one computer and that's your audio experience, this probably works well. I've found that I'm increasingly playing podcasts and music in different locations and going back to a centralized playing source is not an experience I want.


Ten years ago evey respectable device had DLNA support, an agnostic way to browse and play all kinds of media content available on the local network. Sharing a song with a friend could be easily done by sending the whole song (duplicates were not an issue since well-formed MP3s usually included Musicbrainz UUIDs that the media players compared), or by simply linking to Youtube or Grooveshark.

DLNA is slowly going the way of RSS. It's too open of a standard for the current times. Google is already mounting an Embrace-Extend-Extinguish attack on it via the Chromecast protocol. I'm scared Bluetooth audio will be the next to be forgotten. Meanwhile, cloud music services are current trend, and it's not crazy to think they will follow the Nextflix-HBO-Disney steps and start creating walled gardens full of exclusive content.

So, which options do we have now? Users can surrender power and gain convenience by going with, say, Spotify. The app's slick, the multiple device support is awesome, and the social features, while nowhere near Audioscrobbler/Last.fm, are enough. Keep in mind Last.fm is more than 15 years old. 15 years without progress on the music social media front. Also, disappearing songs are a huge problem. A company that pulls a song from their catalog without notifying the user is borderline evil. I feel connected to music. It's almost like the company is deleting a memory from your brain, hoping you won't notice its absence.

Another option is to keep living in the 00s and maintain a home music library. You ensure no songs will disappear from your library without notice, which is good. The bad thing is you are more isolated. There's no easy way to access your library in other devices, there's no easy way to integrate a personal library with a cloud service, and there's no easy way to share your experiences with friends in the same way you can do it with Spotify.

What do I do then? I decided to go the Spotify way, while keeping a small "memories" library which contains the more obscure songs, plus the ones I want to keep with me forever. I'm wary, though. The day Spotify decides to become more profitable, it will be over. Half the features will be gone, and we'll have to start all over again in a worse position than before, because our hardware will be less open than it is now.


> Another option is to keep living in the 00s and maintain a home music library.

This is how I roll. I'm not sure what benefit I'd get by integrating my personal library with the cloud, but I find accessing my library from multiple devices to be pretty easy by simply duplicating songs onto those devices. Nowadays most of my devices are big enough to accommodate the whole library. Sharing music with friends is also simple because pretty much everyone's phone can play an mp3 file out of the box these days. This approach might have been cumbersome when I was younger and I added to my collection more frequently, but I had fewer devices then. Not only does this strategy insulate me from the whims or obsolescence of some third party, but the defacto back up preserves my collection in the face of device loss/failure as well.


>Another option is to keep living in the 00s and maintain a home music library. You ensure no songs will disappear from your library without notice, which is good. The bad thing is you are more isolated. There's no easy way to access your library in other devices, there's no easy way to integrate a personal library with a cloud service, and there's no easy way to share your experiences with friends in the same way you can do it with Spotify.

I have ~40k songs uploaded and available to stream for free anywhere with google music. I'm still the kinda of crazy that maintains my own collection locally and it stays sync'd automatically. It also serves as a free offsite backup. Agreed that there is no easy way to share but I have vastly different musical tastes from my friends so that's never been an issue for me, though for a lot of people it might be a negative.


I used Google Music until recently, just to unify the cloud library with my personal library. The problem was how atrocious the Google Music player is. It's a joke compared to Spotify, or to any desktop app.


Does Spotify let you merge your personal library with their cloud library? I used to use Google Music but I switched to Apple Music when they allowed you to have a hybrid library.


You can have a local library in Spotify, but it isn't synced. Google Music allows you to upload your own songs and play them on all devices.


Ah okay. Apple Music works the way Google Music does.


You might be interested in Funkwhale: https://funkwhale.audio/


>On an unrelated note, highly polarized opinions about languages and frameworks are characteristic of people who lack real-world programming experience and are more interested in building an identity than creating computer programs.

How incredibly arrogant. It can't be that people have legitimate grievances with elecron, like not wanting to use a program based on an incredibly bloated and poorly designed platform, oh no, they just "lack real world experience" and are "more interested in identity" (whatever that means).

High-and-mighty types like this are exactly why working in IT or contributing to FLOSS is so draining at times.


While I get why people are annoyed by that message, I get and understand it.

It's super annoying when you are trying to create a desktop app and you get issues (multiple of them) essentially going "Why are you using Electron? it eats up my RAM, please use X framework and you should be fine"

This would be fine if:

  1. You attached that with a PR for said framework or
  2. You searched before and read this being answered earlier
From a maintainer's point of view - this is super annoying.

I'm sure the author built this to satisfy his itch first and open sourced it because it might help others (either to directly use the product or to learn from the code). It's super annoying when you have people who think they know better come and tell you to use X because they have a problem with Electron (not necessarily your app in particular but Electron in general). I say this as it appears the author might be using arch linux and as a linux user, I always appreciate an electron app vs no app (obviously a native app is better but that's generally never the option - it's generally electron or nothing).

I'm sure it could have been worded nicely but eitherway it got the effect the author wanted - it drives away people who'd be annoyed by Electron in the first place.


> You attached that with a PR for said framework

Eck, please don't do this. Think of this with any other language/framework. "Your app was written in C++ but I rewrote it in Arc because the code is way nicer. You're welcome." or "You used Java but that is a pain because it has to be compiled, so I rewrote it in PHP and now it's possible to make changes live on production servers."

There are many reasons a maintainer may not want to do that (eg, not knowing or wanting to learn the language/framework, having an ecosystem of plugins/branches that would be negatively affected, different opinions on what the project objectives are and how best to achieve them, etc). It's very hard as a maintainer to have to close a massive PR that someone put a lot of time into, and it's obviously a waste of time for someone to work on something that is ultimately rejected.

What you can do instead is open an issue and say "This is very memory-intensive because of Electron, are you open to addressing this? I'm willing to rewrite using <framework/language>."

You can also fork (or effectively just start a competing project) and become the maintainer of the new project. If you're not willing to do that, it's really not fair to expect someone else to -- as effectively with a massive PR you're basically asking them to take on maintenance of your code.


Agreed. If that polarizing note were omitted, there would be dozens of comments here, on github, and elsewhere saying "oh, great another electron app, NEXT", which is equally bad IMO.

Other comments here (and probably GP) dismissed the software, due to the note, before even checking its utility. This is good, because the polarizing note deters people who value tone and identity more than utility, preventing these arguments down the chain. Basically it's leveraging outrage against people quickly susceptible to outrage, so I would say it serves its purpose effectively!


I agree; mostly, but your last sentence misses an important point; It drives away people that aren't interested in open source projects with creators/maintainers that show this level of arrogance/attitude. The fact that it's Electron, would drive away people that aren't interested in Electron.

I've had experience both in work and my personal life with a wide variety of open source project maintainers/creators, some have been amazing, and their attitude encourages you to contribute, others have been so horrible you don't want to have to think about it again.

For me, personally, I have no problem with what this person is saying, it's how they're saying it that means I'll never touch this project, because I've formed an opinion on the kind of response I'm likely to get if I was to raise an issue.


Yea, usually devs make tradeoffs for reasons. Sure, maybe a dev didn't know that Electron was so memory heavy/etc, but often it's a well known fact. They had their reasons for choosing it, you're free to use something else or implement an alternative for them to maybe fork/etc.

Why should someone use a language/framework/etc they dislike just to make something in their spare time and FOSS?

Don't get me wrong, I think Electron is a problem - but I don't blame people for choosing it. Often our FOSS development aspirations are limited by time, energy and shockingly enjoyment.

I can choose to use what I want, and you can choose to not use it.

Disclaimer: I've never used Electron, but I'm shocked it's not blatantly obvious why people would choose it.


> It's super annoying when you are trying to create a desktop app and you get issues (multiple of them) essentially going "Why are you using Electron? it eats up my RAM, please use X framework and you should be fine"

It's super annoying when I'm looking for a desktop app and everything I find is really a poorly-disguised web app which eats RAM.

Just develop programs for X11 & POSIX: every system, from Windows to Linux to macOS to *BSD supports them to one extent or another.


Please don't develop directly against X11 (or reach into X11 APIs when using a UI toolkit that runs on everything else too).


Why not?


If we're talking about cross-platform: X11 is not native on Windows, it's not native on macOS, it's not native on Wayland. (On the first two, it requires deliberate installation of some X server, and you won't even get direct rendering with that!)

Most annoying for me personally: it doesn't support proper HiDPI scaling. X11 apps are blurry on my HiDPI Wayland desktop, which makes me not want to use them.

In general, X11 is absolutely inadequate for the modern world. It's a legacy protocol that has the "any client can be a keylogger" security model, drawing primitives from the 80s that no one uses anymore plus all the history of bolting on more modern ways of rendering. (And don't get me started on the input systems, of which there are several and no one knows how that code even works.) And the protocol is synchronous, so you'll always have some slowdowns. Oh and the fucking screen tearing! In modern display systems, every frame is perfect, by design, by protocol design. X11 only has various "tearfree" hacks in the server that work with varying levels of success.


Explain to me how an X11/Posix desktop application is better for a Windows user than an Electron one.


It's also incredibly tiring writing programs using Electron and having half the comments you receive saying how you should have used a real programming language.

I think other programmers don't understand that many people get into front end web development because it uses other skills that writing C++ doesn't require.

Learning HTML, CSS, and JavaScript doesn't mean you can pick up a systems level programming language and start writing desktop programs.

Not everyone is capable or has time to learn other programming languages, and not everyone should try either.

Electron empowered Web Developers to be able to create cross platform desktop apps in a familiar environment.

It's not about quick or cheap, it's about using what you know to explore your ideas.


I mean, additionally, the web is a really good multi-OS platform. It's write once run anywhere. No other platform/GUI library is getting anywhere near as much attention, so it makes sense to piggyback off web technologies.

I've written my fair share of low level systems languages but if I needed to write a cross-platform GUI app I would write it in electron no questions asked.


I find it almost comical these days because if this were an app that was a docker container / self hostable, people wouldn't bat an eye or would applaud it for supporting multiple platforms. However, if you wrap it in Electron for ease-of-use + some desktop integration, you get torn a new one.

Sure there's cross-platform UI applications out there like VLC, but like you said web technologies are maintaining attention right now and DO provide a lot of benefits.

I, like you, would not be embarrassed in the slightest to release something in Electron. I know about its bloat. I'm also aware that it means I can create a good looking application without spending a ton of time trying to figure out how to implement it.


Java swing!

But having worked with that for a decade - I have to agree with you. If you work for customers (as opposed to in-house software), it makes much more sense to use the web technologies for that.

We use Go for the backend though, so you can use a "real language" on the backend.

I do have some hopes for Go on the frontend as well with webassembly. :)


You mean Electron is making the Web a good multi-OS platform? You would get all the same bloat of Electron except it would also be on the server side.


You just end up with less-than-optimal solutions when you have an X developer create something for platform Y. People end up writing C++ like C, Python like PHP, and Javascript like BASIC.


> High-and-mighty types like this are exactly why working in IT or contributing to FLOSS is so draining at times.

Interesting, that's exactly what I'd say about your comment...

The way I interpret the author's point is, with a lot of real-world programming/engineering experience also comes the appreciation of tradeoffs and priorities. Like, people don't use Electron because it's well-designed or efficient, but because it allows you to quickly and easily create new software that mostly works mostly everywhere. If you can come up with a better alternative, or substantially improve Electron, you should definitely do it!


I agree, there is a loud minority who religiously criticize Electron while most desktop apps get written in it. The same was also true for Java applets.

Electron made many trade-offs indeed but writing "this is electron based so I'll not use it" and "great idea but unfortunately built with Electron, so I closed the tab" kind of comments on every bloody HN thread is extremely tiring.


Don't get me wrong, I don't think the criticism is without merit... Like, I still don't run the standalone Slack app (on my desktop) and only run the browser version, because, like, why would I run two browsers?! (I'd make an exception for a really useful app like I make an exception for Java with IntelliJ's IDEs). But on the other hand, I also understand the author's point of view, and I definitely wouldn't berate him for it.


> I agree, there is a loud minority who religiously criticize Electron while most desktop apps get written in it.

Current GUI programs running on my computers:

- StumpWM :: not Electron

- emacs :: not Electron

- Firefox :: not Electron

- st :: not Electron

- Chromium :: not Electron

- dunst :: not Electron

- redshift :: not Electron

- xautolock :: not Electron

- nm-applet :: not Electron

From my own perspective, 'most desktop apps' are not written in Electron.


> - Chromium :: not Electron

Can't tell if this is a joke or not.


I meant basic GUI apps written in the last few years.


Running on macOS, I have a dozen or so native Cocoa applications written in the last few years.


Electron is like Flash of yore -- it's a giant "hack me" sign on your computer.


Performance issues aside, Electron, to my knowledge, is nothing like Flash in terms of security. There have been only a few security bugs in Electron itself, while Flash was riddled with them.


Electron is an implementation detail of native apps you install on your PC.

Flash was a browser plugin allowed to run by default.

How are they even REMOTELY similar?!


Considering all the Electron criticism that permeates every single "show hn" thread about apps written with Electron I have to symphatize with the author's remark.

There are legitimate technical grievances with Electron, but how many time must those be expressed? If we data mined every Hacker News comment for negative comments about Electron would it be considered big data? I just don't think the persistent Electron criticism for each and every Electron app is very productive.

As other commenters have expressed. If someone could provide an example of an alternative to Electron that provided the same affordances (multi-platform, open source, permissive license, proper web view support), then by all means.

Not everyone is Spotify and can invest the technical know how to make things with Chromium Embedded Framework. To this day the Linux client for Spotify is not an officially supported client. It is something the Spotify developers maintain of their own volition.

And QT, a popular window toolkit, is quite expensive unless you release your software under GPL (at which point you can use QT for free under the GPL license).

Also, a single maintainer does not have time to work on three or more window toolkits for their app (Windows Forms, Cocoa, and GTK).


> multi-platform, open source, permissive license

https://wxwidgets.org/about/

> web view

https://docs.wxwidgets.org/3.0/page_class_cat.html#page_clas...

However, a "web" view could be interpreted in many ways; are you just looking for an easy way to layout formatted text/images/etc? Many toolkits (including wx) have lightweight HTML widgets.

If your app doesn't actually need a "web view" (many don't), Tk is easy to use[1], has strong cross platform support, is BSD licensed, and bindings are available in many languages.

[1] https://tkdocs.com/tutorial/intro.html


Or Qt, or Gtk... all are cross platform, free, straightforward to use, and have web views.


One of the major issues with Electron is that it encourages users to rely on very specific versions that their Electron/Node runtime supports, which prevents the "solution" of wrapping a website in a web view and calling it an app, which, while still not great, is much better than bundling the same resource hog with each individual app.


What's funny is people won't tolerate these platform-independent frameworks on their mobile devices, but eat it up on their PC's.


Nah, I think people complaining about those mobile frameworks are the same group as people complaining about Electron. I'm definitely in both groups, and mostly for the same reasons: bloat, bad performance, and being inconsistent and not interoperable with everything else running on the machine.


> And QT, a popular window toolkit, is quite expensive unless you release your software under GPL (at which point you can use QT for free under the GPL license).

WHY do people keep repeating that?! Qt is NOT under GPL, you do NOT need to release your software under GPL to use it!


They use a dual licensing model, one copy-left and one commercial. To be specific they use LGPL, not GPL. http://doc.qt.io/qt-5/opensourcelicense.html

If you don't want to abide by the LGPL requirements you will have to fork out 459 USD a month. For an established development company this is not a big deal, but for a side project?


If you know the difference, then why did you claim it requires you to license your code under GPL? You can use Qt and other LGPL libraries from a proprietary, closed-source code base if you wish, no license fee required. LGPL is a lot less onerous than GPL.

LGPL is mostly a problem on iOS, since as far as I know it collides with App Store licensing rules, but not that big a deal on desktop platforms.


Yeah, my mistake. From what I gather after reading more about it one only has to take care to dynamically link the qt parts when compiling a binary.


> There are legitimate technical grievances with Electron, but how many time must those be expressed?

Every time until it's no longer used. JavaScript delenda est:

https://news.ycombinator.com/item?id=11447851

> And QT, a popular window toolkit, is quite expensive unless you release your software under GPL

'Doc, it hurts unless I do this.'

Then do that! Don't be a software hoarder.

> Also, a single maintainer does not have time to work on three or more window toolkits for their app (Windows Forms, Cocoa, and GTK).

As I mentioned elsethread, X11 & POSIX are supported on Windows, macOS, Linux & the BSDs. Just write against that, and you're done.


I'll take an Electron app on Windows any day over one that has to utilize an X11/POSIX layer to run. In fact I'm not aware of any widely utilized software on Windows that relies on the stack you're advocating for.


I don't believe Qt on Windows uses or requires X11 in any way; grandfather commenter is just confused.


It also isn't GPL-encumbered.


On the other hand, maybe so much peer rejection means something... just like when we say that if some problem happens constantly for years to people it must mean the process should be blamed and not the people, if there are so, so, so many complaints it must mean something about them is probably true...

The fact is that Electron is a good platform for ONE application. Once everybody jumps in and makes their application with Electron, and all applications running in your machine are electron, then you as an user have a big problem, basically no battery life.

I wrote an incomplete PopcornTime clone with QML, I've also practiced by cloning the UI of some known apps such as Slack and Spotify, it was very pleasant and immensely saner in terms of resource usage of the machine. But alas, yes, you need to know C++, and that means you need to know about memory managenent and fine details of how things are done under the hood (although maybe that one is not a bad thing at all...)


> The fact is that Electron is a good platform for ONE application. Once everybody jumps in and makes their application with Electron, and all applications running in your machine are electron, then you as an user have a big problem, basically no battery life.

That's a huge cultural problem right there. Some devs seem to think that their software is a special masterpiece (obviously, since it's made by an ensemble of rockstars), and therefore it'll run alone on users' computers. But that's nearly never the case; even the least technical users run many applications at the same time. Unless you're writing a fullscreen videogame, your software should never assume it has 100% of machine's resources for itself, and these days, even most videogames shouldn't.

(Or, in other words, tragedy of the commons.)


> On the other hand, maybe so much peer rejection means something...

Only if the conclusion was arrived at independently and wasn't a product of groupthink. Software development is extremely prone to groupthink and exaggerated dogmatic thinking (blind hatred for PHP (and Javascript up until SPAs became a thing), religious wars over linux/mac, your text editor of choice, language of choice, OOP vs FP and so on). Often an idea catches on and suddenly a large percentage of vocal developers are all echoing the same sentiment.

Electron is a memory hog and a weird platform given it ships with so much overhead, sure. But it's fast to develop on, and with modern machines you can run multiple electron apps at the same time. There's just no viable alternative - building a cross platform desktop app without it requires going back in time 20 years and having to learn a bunch of complicated nonsense about memory management and object lifecycles (and I'm saying this as someone who knows said nonsense fairly well) just to draw some buttons on a screen. And all that effort for 1/10th of the UI flexibility that HTML/CSS/JS affords you.

In other words, electron is OK because the alternatives suck. That doesn't mean it's good but it's the best of a terrible bunch.


I agree. Also I wish QML+Python shared some of the hype


honestly, I would be happy with a platform that compiles HTML+CSS+JS down to a binary using something like Qt so you don't need to ship 2 huge engines to support it. I can imagine that's a lot of work though unless you were to exclude a large % of HTML+CSS functionality.

learning a second layout system just for desktop apps is going to be a bit of a hurdle for gaining dev enthusiasm.


I always assumed the use of electron stemmed from that same lack of real-world experience and a willingness to build an app at any cost despite not fully understanding the implications of the work being done.

The attitude this person portrays seems to fit in line with that. Defending your position with arrogance and irritation shows everyone a great deal about you.

I'll go ahead and lump myself in with the rest of the group that remains thoroughly unimpressed.


BUT Electron make creating easy for many people and there are some great, yes I said GREAT Electron apps:

Visual Studio Code is amazing. I started using VIM on my Amiga 500. I use VS Code 90% of the time now.

RStudio is and was life changing for programming R

I use Discord everyday and use it as a real time Reddit for many non-gaming communities.


People use electron because it has a lower time barrier to entry and it works and looks the way you want it to across all platforms.

Time saving is a huge factor in why apps are developed. There is always a balance between performance/resource usage and development time.


I understand why people use electron, it's just such a disappointing choice.

Your talk of balance is ironic considering the subject. It's absurd that a single blank window with no content should spawn multiple processes and consume over 100mb of memory before any logic has been added. Demanding better would almost certainly be met with calls of selfishness so I'll settle with contempt.


A lot of devs these days are laissez-faire with performance concerns.

When your dev machine has 16gb RAM and at least a quad core processor, you're not exactly going to be benchmarking how well you manage memory space or complexity of execution.


And webdevs develop against local giganet or similar — a lot of devs simply don't see the poor experience their app creates on users with fewer resources or with more than one application running at a time.


I'm not sure why there's so much Electron hate? Big and bloated, sure-ish? But my 2014 MacBook AIR with 8 GB Ram that I didn't pay much for seems to run several Electron apps just fine? And I don't care. Sure, sometimes I shut down WhatsApp and Slack when I'm going mobile to make sure I maximize my battery life. But I do the same thing with Chrome.

Electron does allow people to build projects quickly using simpler HTML/CSS/JavaScript technologies than prior-era desktop applications, and you get cross-platform for almost nothing.


> Electron does allow people to build projects quickly using simpler HTML/CSS/JavaScript technologies than prior-era desktop applications, and you get cross-platform for almost nothing.

Free cross-platform is a good thing, I agree, though it comes at the cost of lowered interoperability and inconsistency with other applications and OS's conventions - which is a big usability issue. But the "build quickly using simpler web technologies" part? That's a problem right here - it essentially makes it easier to create low-quality cookie-cutter app, instead of forcing people to do this well. It's not that much more effort to learn something beyond JS, but it seems that these days a lot of devs think their education ends at their first job.


I don't have the same OS's convention problems that others have. I live with three OS's daily, and I actually like the apps like Slack and WhatsApp that span those OS boundaries and just work the same way.


You just said it - you can't use them on battery without destroying your battery life.


Apple charges about $1/GB for upgrading SSDs in their laptops. I think Electron adds at least 150MB to everything. If you have 2 or 3 Electron apps it's not a big deal, but if you have 20-30 it gets a bit annoying.


30 electron apps is $4.5 by that metric. HD space is a red herring here.


Building quickly is rarely a good sign about the quality of the thing that is built. I think a better pitch for electron is simply consistency across platforms, albeit the lowest common denominator sort: slack is pretty terrible on all platforms, but equally so.


What specifically is terrible about slack across the platforms? I actually like it and I like having it run as a separate app so I can quickly hot-tab swap to it. It's also better than all the other legacy Group chat apps it's replaced like Jabber (which is native as far as I can tell), MS Messenger, etc...


Compared to what? Compared to no chat app, slack is amazing. Compared to any commodity chat app, it’s a commodity chat app. The main pitch is that you can just throw money at it and not maintain it.

Could have been gchat if google had any clue how people work outside google. Instead they’re trying to write my emails for me.


> High-and-mighty types like this are exactly why working in IT or contributing to FLOSS is so draining at times.

To be fair: the high-and-mighty types that create issues saying that using Language/Framework/Architecture X is bad and that you should use Y is another reason why working in IT or contributing to FLOSS is so draining at times.


It's quite arrogant, not very inviting and might "push" developers away from actually trying the software. Even though it's just his opinion it shouldn't really be included in the readme.


The author doesn't claim you can't have grievances, but to simply stand by and claim you'll never ever use electron isn't airing a balanced grievance as much as it's a polarized opinion. There's a time and place for all technologies.


Characterizing all grievances against Electron as a religious dispute not based in fact is a sweeping, broad characterization of a group of people, and substantially inaccurate. That's what people object to about the README statement.

> What if I am religiously opposed to using Electron for any and all purposes?

> Then you are not the target audience of this program. See mps-youtube (link above) for a similar program that will not taint your machine with a library you happen to dislike.

> On an unrelated note, highly polarized opinions about languages and frameworks are characteristic of people who lack real-world programming experience and are more interested in building an identity than creating computer programs.

The phrasing of the question is unnecessarily offensive, but whatever. The Q and A stands alone just fine. They really didn't need that second paragraph jab at Electron-dislikers to make their opinion of such people clear.


Putting this in your readme is a great way to keep me far away from your project.


> How incredibly arrogant.

It's not. People who have grievances about specific platforms and frameworks should complain (or, in the case of Electron, submit patches) to the actual project than whine about it on the issue tracker of every project that uses it.


I understand the line of reasoning, but in the case of Electron in particular, it really cannot be improved. The model is: run an entire web application, per app. That's incredibly expensive, and there's no way to scale that back in a way that is still Electron.


The same goes for your comment - you obviously have unsubstantiated gripes against electron. If it was that bad, some of the largest companies wouldn't use it and come up with a better solution (Microsoft, Slack, Discord)


Not true. Those companies are focusing more on developer productivity than they are on the end user.

Picking Electron is ALL about developers. Nothing more or less.


I agree, turns me off. What a blinded way to move through life.


There are legitimate grievances, none of them justified enough to be highly polarized about it as you're being here, which is what the comment you're referencing is talking about.

What's arrogant is ignoring that it's 2019, hardware can easily do multiple electron clients, and frequently do. Nobody has made better, and in the real world you use what's best designed to complete your goal.


It's a classic No-True-Scotsman fallacy. I have no feelings on Electron one way or the other, but I've met far too many people who insist that Windows is the only OS for "getting work done" and Linux should just be a hobby.


I don't like such statements either. Choosing the web as an application platform is legitimate from my perspective, but instead of building electron apps, it is better to build progressive web apps (PWA).

However, there are some use-cases when some specific technology for building it as a PWA is unavailable and therefore, building it with Electron might be the best alternative. But as a result, the author shouldn't just state that you are the problem ('... not the target audience'), but instead, state his reasons for choosing that technology (e.g. why he is using Electron instead of building a PWA).


There is a difference between legitimate grievances and highly polarized opinions. One can find Electron bloated and inefficient but acknowledge that there are advantages to the platform, and respect that for some people the tradeoffs are worthwhile.


> One can find Electron bloated and inefficient but acknowledge that there are advantages to the platform, and respect that for some people the tradeoffs are worthwhile.

Totally agree. The problem is the biting Q&A is misconstruing such moderate opinions as religious zealotry and then mocking the people who hold them.


While I won’t agree with “lack of real world experience”, I have noticed that many engineers tend to invest a lot of emotion in language choice when it rarely belongs there.


That's fair, but the argument about Electron is how wasteful it is. Devs should just know better than to be that blatantly wasteful of resources. I know, we live in a world of abundance, but that just isn't any excuse.


Yep, that and some paragraph above that was enough for me to close the tab.


So it served its purpose.


If you read TFA, there was this answer directly preceding it:

> Then you are not the target audience of this program. See mps-youtube (link above) for a similar program that will not taint your machine with a library you happen to dislike.

Which would be fine. It even goes the extra step to recommend an alternative, which is unnecessarily gracious.


I have what is probably a very naive question, as I am not well versed at all in Electron or web frameworks. I understand the complaints towards Electron, but I also see the appeal of developing utilizing a cross-platform browser. Is there a reason why developers can't simply have their application run in a local server? (Jupyter Notebook is an example that comes to mind.) This way, the user can use their browser of choice and doesn't have to have several installations of Chromium, while the developer can still utilize the web. I imagine it's more complex than this, but it's something I've been wondering.


Some reasons off the top of my head:

1) Local servers are a no-go for multiuser environments unless you want to log-on every time you run your "native" app, as most (all?) browsers don't support http over domain sockets and there is no authentication for local sockets.

2) Managing the health of the service properly in a cross-platform manner is complicated. With electron if the app crashes, it just crashes. With a local server the browser tab just stops working. Sure technical users can figure it out, but if you are targeting a gui over a console, presumably you are trying to capture some fraction of non-technical users.


Ignoring the multiuser issue, could not some javascript be injected that displays "crash" instructions (or even just closes the tab) in the event the server becomes unresponsive? I'm not a web dev, but this sounds feasible.


The intersection of <people who use Electron apps> and <simultaneous multi-user systems> is likely small enough to ignore.


There is no real problem of running the application on a local web-server. However, you might not even need a server. In fact, modern browsers are able to run apps even without servers.

So you might consider developing an app with vue/react/... and build it in a way to run independently from the server. The simplest way to do that is to cache it with a Manifest file, but modern browsers support ServiceWorkers too, which are a lot more powerful.

The only thing you will need a server for is the deployment (and maybe some sharing/sync logic).


This sounds like a great idea. It might be more confusing to people who don’t use computers as much, because interacting with your local computer over the web might feel strange, but there’s also the requirement to have a true native component acting as the server. Electron allows for zero truly native code to be written by the developer, which can help deal with inconsistencies between operating systems and configurations.


It's a usability thing. If users expect a desktop app and you ship a server + browser tab, it makes for a very confusing experience. In fact, the concept of having local servers is alien to most people. To them, browser == internet and desktop icon == local application. In addition, there are technical problems too, e.g: what if there's a crash?


Best part is the text in the LEGAL document:

# Legal information My lawyer tells me I am allowed to smack anyone saying this program is illegal with a flyswatter.


So he’s allowed to smack flyswatter-owning people who say it’s illegal? Awesome, I don’t own a flyswatter!

Isn’t English grand?


No, they have to say that it's illegal by using their flyswatter.

However, that makes you safe anyway :P


This looks great conceptually but the UX on my first run through was awful.

The prominent "Best new music" part had an Earl Sweatshirt album review, so I wanted to listen to it, but you can't click the album title... only the artist name. Then I had to sift through 30+ album covers (no titles... not ordered by release date) to find the one that looked like the one I saw on the previous page (it had a slightly different cover).

You'd think a "new" album would be at the top.

Then I double clicked the first song twice, then realize there is a popup that has a "Play Now" button on a SINGLE click (unlike Spotify or Google Music). I clicked that and it only added it to my "queue", I thought it was downloading for a couple min, but nope I had to click "Play" at the bottom to actually start it.

I went to another album, clicked "Play Now" on a song and it froze with the logo pulsing fullscreen, and I had to restart the app.

This is basic stuff.


I'm getting the same results. I've puzzled with it for 20 minutes and have yet to get sound out of it.


Once upon a time I used a program called iRate. It had an online database of freely available music, and would download music, and you could rate the music, and its algorithms would attempt to figure out what music you liked and provide you with more of it. While the algorithms sucked, it was really nice to listen to random music, with a menu item that said "download more music", and get more music you had never heard of.

More recently, I used Songbird (which went through a few name changes). It was a web browser that tried to include iTunes functionality. It really sucked - imagine trying to take a normal web browser and make it twice or thrice or more slower - but the idea was nice, you could go to music blogs, and click the play button and listen to all the songs they linked to, and click the download button if you wanted to keep the file.

I am trying to get Nuclear to work, just to see what it's about, but I literally can't get any audio out of the program. That makes it slightly useless.

I would love a program that collated legally available music and provide a music player interface (preferably VLC or WinAmp style and speediness). There is so much music out there that you would never have to listen to the same song twice. Digging through SoundCloud and BandCamp and Archive.org would provide endless music. Archive.org alone, if you wanted to avoid legal issues (even though lots of music is available free streaming at the other two websites I mentioned).

Perhaps I'll have to write this program myself. I already have too many projects as it is, though.


Isn't that just YouTube or Spotify? Free music is freely given out legally these days, don't see the need for this.


I wouldn't use this for my own moral reasons but we have different definitions of free. In this case you use "free" to mean: providing personal data and being subjected to a targeted marketing campaign in exchange for music.


Using youtube-dl circumvents both the personal data and the marketing. Just convert to audio with ffmpeg, and then you can listen on your own devices with a normal music player.


You can use youtube-dl to download just the audio stream directly, no need to remux with ffmpeg.


Are you happy with the audio quality with streams ripped from YouTube? I'm guessing it's been compressed more than once and that can't be good.


Using the flag shown at https://askubuntu.com/questions/423508/can-i-directly-downlo..., you can see all of the different stream qualities available (both audio and video). Some videos (particularly official music videos) have pretty good audio, while amateur videos, remixes, and parodies usually don’t sound as good.


Assuming the file uploaded to youtube was high enough quality, what you get from youtube-dl has only been compressed once.


It's just as good as taping music off the radio...


So I'm curious why you draw a moral line here?

- Do you find it immoral to watch music videos on YouTube?

- Do you find it immoral to watch music videos on YouTube with ads blocked?

- Do you find just putting that in a separate player to be the immoral part?


I haven't really thought through my moral position in detail and I probably wouldn't answer this even if I did. I'm just a random person on the internet.


I agree on the YT front, but I don't remember seeing Spotify ads.


From Spotify: https://www.spotify.com/us/legal/privacy-policy/#s6

"To provide you with features, information, advertising, or other content which is based on your specific location."

You might also be interested in the massive amount of data they store about users that was discovered after GDPR passed. Here's the HN thread: https://news.ycombinator.com/item?id=17681289


That has to be in the license for the free service. There are no ads, period, when paid.

Also, location information is used to avoid account sharing, which I think would clear GDPR.


Forgive my lack of clarity, I was only talking about the non-paid service.


This tool is quite literally a YouTube and SoundCloud ripper as far as I can tell.


That doesn't feel much like "PopcornTime for music" to me. Soulseek probably fits that description better.


People who build on Electron should understand the technical tradeoffs they are making. On the one hand, they get a cross platform app, on the other, they have an extra Issue in their bug tracker to move to another platform, with occasional reminders thereof.

On an unrelated note, highly polarising comments about languages and frameworks are characteristic of people who lack real-world programming experience and are more interested in building an identity than creating computer programs.


I was recently tasked to build a cross platform win/linux/macos application. After looking around a few options, I plumped for Electron. (Also since I can write JS etc. pretty confidently)

Glad I did. The project was done way faster than I could have imagined. And everyone else was amazed and pleased as punch with the result.

Job done. :)


Great job optimizing for developer productivity!


> on the other, they have an extra Issue in their bug tracker to move to another platform

I presume that in this case such bug reports would be closed immediately.


Title suggestion: nuclear - Popcorn Time for music

It's nice to know the project's name


Not sure making the UI look so much like Spotify was a wise move.


Looks worse, but just as slow!


Reminds me of AudioGalaxy back in the day, nothing else came close to finding anything. Eventually it shutdown and Grooveshark was ok for a bit but that heyday in the early 2000s of music “streaming” was really something.


Didn't we already get a "Popcorn Time for music" (which didn't use legal sources) with http://aurous.me/ ?


> Popcorn Time for Music

but where is the torrent client?


Don't call it popcorn time for music.

It looks good enough to stand by itself.


Is this another program which publicly exposes your IP address...and thus makes you vulnerable to copyright strikes from your ISP or potential legal action?


It's amazing that some guy in a garage can do a better job then 500 guy's in a fancy office ...


It's worse in just about every way than the 500 guys alternative, to be honest. It's really slow, and try searching for a specific song, or recovering from a crash, or working out what failed etc.


I mean Spotify is built on CEF, so who gives a shit if this is on Electron or not. It's not like there's a huge difference. Adding a piece of text to the README just to alienate people isn't wise; it just makes the author look like a tool, ripe for criticism.


Ah, an Electron app... :)

Something tells me it doesn't support gapless playback. (I might be wrong tho)




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: