yboris 6 years ago

I created this software using Angular, Electron, FFmpeg, and angular2-virtual-scroll.

All proceeds go to Against Malaria Foundation (GiveWell's top-rated charity).

Currently not open source, but am trying to figure out how to set a license that encourages people to tinker with the code, but not to clone a copy and sell it.

  • kowdermeister 6 years ago

    > encourages people to tinker with the code, but not to clone a copy and sell it.

    What I usually see happening is that they release two versions. One under GPLv3, MIT or whatever very permissive licence and a Pro version with many advanced features with a proprietary licence.

    If you want to prevent forking and copying then I either suggest to keep it closed source or make sure that you maintain the best version of the app so users will have no motivation to switch to a fork and be loyal to the original creator.

  • JoshTriplett 6 years ago

    > Currently not open source, but am trying to figure out how to set a license that encourages people to tinker with the code, but not to clone a copy and sell it.

    By definition, any such license wouldn't be open source. However, as others have mentioned, putting it under a copyleft license would make it unlikely that others would do so, since they wouldn't be able to distribute their version without providing source under the same license themselves.

    • pinum 6 years ago

      Not everyone treats "open source" as a political term. The OSI doesn't have any special right to define it. Many just use it as a catchier alternative to "source available".

      • JoshTriplett 6 years ago

        (off topic)

        People can certainly use a term in a way contrary to the expectations and definitions used by the vast majority of other people, and then they shouldn't act surprised if they're either misunderstood, called incorrect, or perhaps most importantly, called out as being intentionally obtuse and confusing and asked to stop that. Language is descriptive rather than prescriptive, but descriptive language can still call some usages incorrect when they're exceedingly likely to be interpreted differently than the standard meaning and lead to unclear communication.

        Several decades ago, before open source was nearly as widespread and before there were any popular definitions, it was understandable when people use the term rather fuzzily; everyone had their own understanding of it. That's not the case anymore.

        In any case, the original point would still stand if stated as "that set of goals is incompatible with what the vast majority of people who use the term 'open source' would consider 'open source'", but that would be excessively verbose, would only serve to confuse the point with a needless distraction that wasn't part of the original topic, and would in particular distract from the more important point of "here's a possible way to do what you're trying to do without that problem".

      • patates 6 years ago

        This has nothing to do with OSI. This is what people understand when you say open source. Why wouldn't one say "shared source" instead of confusing others? We need to have some common understanding to these terms because otherwise everything needs to be written like the "Thing Explainer"[1].

        [1]: https://xkcd.com/thing-explainer/

  • otterpro 6 years ago

    I'd go with GPL as many comments mentioned here. If you are slightly paranoid about someone stealing the code and making a commercialized version (which happens a lot with VLC), then I suggest you separate some of the functionalities into modules, in which parts are GPL'ed, and others are made private. Perhaps the UI and basic functionalities (aka lite version) could be made OSS, but some more advanced features are not included in the source, such as filter or scrub view. It would make it virtually impossible to make a clone, but you also get the benefit of people contributing and learning from the code from the OSS version.

    • yboris 6 years ago

      Thank you for the advice.

      In my case it feels like it would take quite a bit of effort to pull out features from the software and make a stripped-down version available.

      My primary reason for wanting to share the code is that perhaps it will be a useful place for others to learn some things (though I don't think my code is stellar / exemplary and I know it has some serious shortcomings).

      I guess it isn't a big problem if someone releases a clone of my app for free as long as I somehow can require (request) they always link back to the original on their website and in the app itself. But I'm not eager to chase people around and pester them if they don't comply.

      I'm thinking I might wait for a full year since release (until February 2019) and just put out the whole code on GitHub with a 'free to do anything' license and a personal request that people always include a link to the original in the compiled app and on/through whatever websites they share it on.

  • eganist 6 years ago

    You're getting a lot of legal advice from non-lawyers.

    Reach out to the EFF and see if they can give you some pro Bono consulting on how to license it for your needs. Alternatively, @buu700 and I have worked with and can recommend https://twitter.com/falconred (Jim Rennie). I get no commission for the rec—we last worked with him two years ago.

  • peterburkimsher 6 years ago

    It looks nice! I like the browser view.

    One feature I need (and would like to tinker with the code to add it) is support for subtitles in multiple languages at the same time. http://voicetube.com does this to help people learn English; I'm trying to learn Chinese.

    • yboris 6 years ago

      VoiceTube looks cool! But my app doesn't play the videos -- the videos open in your OS's default video player.

    • uvu 6 years ago

      Ah, voicetube idea is nice :)

      • richardvt 6 years ago

        I'm the maker of VoiceTube. Hope you love it!

        • peterburkimsher 6 years ago

          Hi Richard! It's Peter from Pingtype; we chatted on Skype a while ago. Good to see you joining HN. I've posted a couple more videos on my YouTube since then. https://pingtype.github.io

          Unfortunately life in Taiwan has been really hard for the last few months though, so I'm preparing to leave. Busy looking for new jobs in other countries now.

          • natch 6 years ago

            Wow, pingtype is cool!

            What kind of job are you looking for?

            • peterburkimsher 6 years ago

              I studied electronic systems engineering, but most of my work experience has been in software.

              I'm most passionate about control systems/automation, network admin, and circuit design. But I've done a wide variety of other projects (big data, web apps, device drivers, tech support and repairs for friends). I'm not good at art or marketing, so front-end design isn't for me. I'll consider pretty much anything else though.

        • bond 6 years ago

          Good that someone created a tool like this.

          Learned english when I was a kid by watching cartoons with subtitles... Good luck.

  • giancarlostoro 6 years ago

    I'd just GPL license it and charge for a MIT licensed version for commercial use. Be clear when you relicense it for commercial use though, like if MIT is only for a specific released version or set of versions up to a point or what. Of course technically you can sell GPL software, but they'd have to be willing to provide the code back, which means you benefit off of it to some degree.

  • ktta 6 years ago

    You can always reveal the source code, without giving it an open source license. Of course, this will mean some people might not contribute, but you take what you get.

    Another way is giving it a 'non-commercial use only' stipulation, which might not be lawyer proof.

    Any of this won't prevent people from trying to profit off of it though.

    PS: Remember to have an CLA so you won't have any problems with selling it.

  • gpm 6 years ago

    > Currently not open source, but am trying to figure out how to set a license that encourages people to tinker with the code, but not to clone a copy and sell it.

    Seems like either GPL or the creative commons by-nc-sa (https://creativecommons.org/licenses/by-nc-sa/3.0/) to me.

    Probably the latter because the GPL allows commercializing as a website.

    (Disclaimer: IANAL)

    • nathcd 6 years ago

      > creative commons by-nc-sa

      Creative Commons discourages using its' licenses for code: https://creativecommons.org/faq/#can-i-apply-a-creative-comm...

      > Probably the latter because the GPL allows commercializing as a website.

      If you want your copyleft to apply to over-the-network users, you want AGPL: https://www.gnu.org/licenses/agpl-3.0.en.html

      • gpm 6 years ago

        Two problems with the AGPL.

        The first is that it doesn't really stop commercialization, it's perfectly possible to make a commercial service using open source components.

        The second is that I'm of the opinion that it may fail once tested in court, basically for the reasoning laid out here [0] (not sure if the author of that is a lawyer, I've seen lawyer's express that position before though).

        [0] https://www.devever.net/~hl/agplunenforceable

        • chii 6 years ago

          > One does not require permission from the copyright holder merely to use software one already possesses

          That's patently not true. One does not have "posession" by merely having access to the binary or source. One must first agree (implicitly, or explicitly) before they can acquire the software, such as agreeing to the licence when downloading.

          Therefore, as soon as you have the right to use the software, the licence applies (as the licence is what grants you the "possession").

          As for the law mentioned (17 USC 117,17 U.S. Code § 117 - Limitations on exclusive rights: Computer programs), that only applies in a very narrow set of circumstances, such as copying for any technical requirements for operation, or backup purposes. The AGPL additional provisions don't overlap with this provision of the copyright law. The author seems to have misinterpreted the law imho.

          • gpm 6 years ago

            > That's patently not true. One does not have "posession" by merely having access to the binary or source. One must first agree (implicitly, or explicitly) before they can acquire the software, such as agreeing to the licence when downloading.

            Sorry, but you're the mistaken one here. You need a license to make copies of, derivative works, etc. If the copyright holder makes a copy and sends it to me I do not need any license to hold onto it or execute it. We can see this through, for example, Vault Corp. v. Quaid Software [0] (the portion about direct infringement, Wikipedia has a link to the actual ruling as well if you prefer that).

            EULA's, unlike the GPL, use contract law to get around this. In order to purchase/download the software I enter into a contract with you giving up some of my rights. The FSFs position as I understand it is that the GPL and AGPL are not contracts though, just licenses, so they don't serve a similar function (assuming the courts agree with the FSF).

            [0] https://en.wikipedia.org/wiki/Vault_Corp._v._Quaid_Software_....

            (Disclaimer: IANAL)

            • chii 6 years ago

              > If the copyright holder makes a copy and sends it to me I do not need any license to hold onto it or execute it.

              Only for the purposes of execution can this copy be retained (as it's impossible to not make a copy while in memory).

              However, I cannot keep the executable in memory, and use it for any other purpose (including letting someone else also execute it) unless authorised by the copyright holder.

              In AGPL, the js/css etc are copyrighted. But the transmission isn't from the copyright holder to end user, but from an licensee to an end user. There's no relationship between the end user and the copyright holder. But the licensee is bound (by their very license) to allow the end user access any sources, despite them not having any relationship with the copyright holder. This licence doesn't contain any illegal clauses, and is voluntarily entered into by both parties, with consideration exchanged (it being the promise to make source available). Therefore, it's a legal contract.

              Now, as for whether it's enforceable is hard to say, but I do believe it is sound...but IANAL of course.

              • gpm 6 years ago

                Oh, hold on.

                The AGPL probably works for client side js/css. But that's not really a surprise since the GPL probably works for client side js/css. What I am not sure it works for is strictly server side code.

                The FSF has argued that the AGPL/GPL is not a contract. Other lawyers have argued it is a contract. I take no position on that argument, which is a good part of why I simply say "may" be found unenforceable.

  • Kiro 6 years ago

    A bit OT but seeing that it seems hard to find a license that applies to this use case, would it be possible to just define your own custom license?

  • thinkingemote 6 years ago

    If I remember correctly by default a repository on GitHub with no licence means you have the full copyright. People can clone it and if you have a CLA you could accept changes, but they cannot really do anything with it. So perhaps just showing the code and not putting any open source license could work in this case?

    • yboris 6 years ago

      This is excellent! I'll look into that -- it would be awesome if the default setting (with no extra work on my part) will suit my needs!

  • Trump2020MAGA 6 years ago

    A GPL license might be good

    • phoe-krk 6 years ago

      GPL doesn't prevent commercial usage. It requires source code to be released under the same license whenever you release a binary, though, which is what the OP might want.

thirdsun 6 years ago

Quick related question: Is there a lightweight video player that also acts as library management tool? It seems there are either lightweight players that simply open and play files you throw at it (MPV, VLC, ...) or heavy server-client solutions like Kodi, Plex and others.

I'm looking for something inbetween. Basically VLC or MPV with a persistent library I can point to my film/tv shows folder and it will let me browse, play content, keep track of progress, etc. Is there such an app for macOS?

  • dufferzafar 6 years ago

    I have similar needs as well and have been trying to find a decent solution (but haven't yet.)

    I never looked for macOS apps though (since I use Linux.) To be honest, there's a decent chance that you would find something for Mac. Doubt it would be cross platform though.

  • BTeam 6 years ago

    It's on the roadmap for VLC 4.0, the new medialibrary (C++11) is in the process of being added as a module. The interface is also being reworked in QML.

    This medialibrary is already used in VLC for Android for music album classification in an SQLite database.

  • nolok 6 years ago

    Doesn't answer your question since it isn't mac OS, but it's the closest one I know of: windows media player. I used it for a bit, until I switched to using the video server-side software on my synology nas.

  • cypherg 6 years ago

    Tried Plex yet?

    • thirdsun 6 years ago

      Briefly. But as a long time Kodi user (since early XBMC / XBOX days) I'm probably quite familiar with the concept and while it certainly fits into my living room setup, it's way too heavy for casual use alongside other activities on my iMac. There I'd be fine with something slightly better than the file system: List shows, build a library, add some meta data, track progress.

      There are countless music library management apps (iTunes, Swinsian, MusicBee, Roon, Foobar, Vox) - something similar for video is needed.

mintplant 6 years ago

Cool! Peanut gallery suggestions:

- The default black-on-dark-grey in the primary pane looks amateurish. Switching out the background color for something lighter (maybe a light beige?) would make a world of difference for first impressions.

- I'd appreciate if the screenshots adapted to my platform, so I could see what the app actually looks like on Windows. But I understand that it'd consume a lot of effort to re-take everything two extra times and keep them all up to date. The Windows/Mac/Linux image at the bottom at least ought to use a platform-appropriate screenshot for each segment.

  • yboris 6 years ago

    Thank you for suggestions!

    After I finished making the app, it ended up being very consuming making the promotional materials (website, screenshots, YouTube video, etc). I'm studying Machine Learning at the moment, so this project isn't the only one I'm juggling.

    I'm also not thrilled about the color scheme, but I couldn't come up with anything I liked more. It's not a challenge to update the color scheme a bit, though it's hard without explicit spec from someone stellar with UI (as we have at work).

  • hateful 6 years ago

    I would say to also include a dark theme. I'd prefer to customize the colors manually, but if that's not possible, at least have a light/medium/dark theme choice.

    The main reason, at least for me, is that on the TV, lighter themes are very bright.

    • mintplant 6 years ago

      One of the animations on the website shows off a dark theme.

  • bo1024 6 years ago

    If we're giving suggestions ... I strongly recommend against a website that requires javascript to view anything.

    • yboris 6 years ago

      I grabbed a free online template without too much thought -- but I really should keep this in mind!

      My goodness! My website is useless without JS at the moment!

    • markdown 6 years ago

      The key word being requires. Adding polish with js is always appreciated.

Bulk70 6 years ago

Looks great, can you explain how it differs from say PLEX?

  • yboris 6 years ago

    Primary goal: preview inside the video on hover (scrub). I may be mistaken but I don't think PLEX has it. Video Hub App also has a filmstrip view and a quick and advanced search capabilities (by folder, file name, exclude, etc). PLEX has many features that my app isn't trying to replicate -- I think the two are aimed at different use cases.

    • Firerouge 6 years ago

      It isn't immediately clear to me, but could someone throw an nginx proxy in front of this and use it like Plex, either over the internet or local network?

      • yboris 6 years ago

        The app basically does 2 things:

        1) extract screenshots from videos from a folder you give it (should work over network as far as I can tell -- it works with external hard drives for sure).

        2) show a gallery view of your videos. When you click on any video, it launches your OS's default video player.

        I'm unsure if/how it would work in the case you describe.

mzz 6 years ago

Awesome! What inspired you to connect effective altruism with your project?

  • yboris 6 years ago

    I've been part of the Effective Altruism movement before it got its name ;) I made a video about it in 2011: https://www.youtube.com/watch?v=dZKh0M9x8s4 It features Nick Beckstead, current Open Philanthropy's Program Officer of Global Catastrophic Risk!

toomuchtodo 6 years ago

Thoughts on using YouTube-dl as an importer of videos to the local library?

Otherwise, looks awesome! Take my money!

  • yboris 6 years ago

    I'd rather relegate importing online videos to another software. Video Hub App should just use whatever is already on the computer (or external hard drive) ;)

    • voltagex_ 6 years ago

      What about consuming metadata provided from things like youtube-dl, though? It can dump thumbnails and other info as JSON.

      • yboris 6 years ago

        Seems achievable, though would add complexity. Currently all screenshots are standardized (because they are extracted via the same process) and app requires exactly 10 per video with specific file name convention. Seems easier to just re-scan for images.

        As for metadata - currently Video Hub App doesn't keep anything other than file size, time length, and resolution. One very-requested feature is to allow tags and that may be the first large addition to the app in the future.

        But I'm unsure if I'd work on any automated import of metadata at this time.

Brajeshwar 6 years ago

I know this may not be important 'yet' to your app but please change the name to "Video Hub" without the "App".

  • yboris 6 years ago

    :) reminds me of the movie "The Social Network" when Zuckerberg was told "Drop the 'the' from 'The Facebook'" :P

    I'm afraid without the word "app" it would sound as generic as "rename files" ... also I needed an available domain name.

    Coincidentally https://videohub.app/ was also free :)

    • tjoff 6 years ago

      First impression: The use of mac images and screenshots and including "App" in made me absolutely positive this was a mac only thing. Only by chance that I stayed long enough to realize it was multi-platform.

      That was also the same time I realized, oh this is probably electron. Should state that somewhere as well.

      • yboris 6 years ago

        Thanks for the feedback! I think I'll make the multi-platform messaging more-prominent (perhaps text right on top of the first screen).

bstchn 6 years ago

Very nice. I was recently look for something similar, but with support for markers (eg. add marker "explosion" to video XY at 2:14). Do you plan to implement such feature?

  • yboris 6 years ago

    I didn't expect to put in markers ... though if adding tags is to become a feature, perhaps tags that correspond to time might be easy-enough.

    The trickiest part would be the UI -- making it usable and elegant.

    Perhaps those markings would visually fit nicely inside the filmstrip view.

giancarlostoro 6 years ago

So is this meant to be an alternative to XBMC? I've tried some pieces of software that just sucked, any comparisons between this and similar software? :)

  • yboris 6 years ago

    I've not found good alternatives, though of course it doesn't mean my version of what I think the software should do is the best fit for everyone ;)

amelius 6 years ago

What is the performance/memory footprint? E.g. can I run this on a Raspberry Pi connected to my TV?

  • yboris 6 years ago

    I'm unsure how a Raspberry Pi would handle it. It's an app built with Electron, so it's basically running Chrome (Chromium) under the hood. Here's an old build running as a website: http://dev.yboris.com/vh/ -- I suspect the app will run just fine.

    If you try it out -- please report back and let us know how it goes! :)

therobotking 6 years ago

I like it. Nabbed a copy for $5 - feel like you should charge more than $3.50!

  • yboris 6 years ago

    Thank you for paying more!

    Charging more is a balance between larger sales volume (importantly -- more people using the app), and possibly higher revenue (in my case donations to my favorite charity).

    I'm leaning towards having a lot more people enjoy my work (though I'm still unwilling to go "pay what you want" with no minimum at this time).

    • kennyadam 6 years ago

      I agree that giving people the option to pay $0 will probably result in less sales. I've been thinking about it over lunch and I'm liking the $3.50 price more and more. It was certainly low enough that I didn't have to give the purchase much thought and also low enough that I felt you deserved a bit more - and was happy to pay it.

      No doubt you can see the stats and know what's gonna work better than some random on HN :)

      One thing: I found the contrast of the video name text and the bg a bit tough when using the light theme. IF it's possible, custom bg colour or something would be great. Anyway :) thanks for a cool app

      edit: ha was logged in to my old acccount when i first posted, a downside of password managers if you're not paying attention!

      • yboris 6 years ago

        Thanks for the comment on the contrast. I should have paid more attention to WCAG when picking the color scheme. I'll keep your comment in mind next time I tinker with the UI :)

weisser 6 years ago

Looks great. I suggest charging more!

  • yboris 6 years ago

    Great to hear you think it may still have customers at a higher price point! I made the price pay-what-you-want-with-a-minimum (I'm gonna need about tree fiddy :P).

    I'm unsure how well the app will do in the international market, but in many countries even $3 is quite a bit of money.

    A nice feature about the price, is that each purchase of the app equates to a purchase of an anti-mosquito bednet (since I'm donating proceeds to a charity that provides them to communities affected by malaria) :)