# OBS license infringement



## randef97 (Mar 24, 2021)

Hey, so it seems these guys: https://lowkey.gg/ are including OBS in a commercial product, and not shipping the source?
There's even a blog post by the contractors they hired to integrate it: https://evilmartians.com/chronicles/desktop-frontier-video-app-optimization-for-lowkey
If you install it, there's a copy of OBS in `AppData\Local\Programs\lowkey-electron\resources\app.asar.unpacked\node_modules\osn`

They're not allowed to do this right? Because OBS is distributed under the GPL, they should have to release the source of their whole program under GPL.


----------



## Xaymar (Mar 24, 2021)

The source code for obs-studio-node is available here: https://github.com/stream-labs/obs-studio-node. It's also under GPLv2 since it uses libOBS, so their Windows app would also have to be fully open source. They've e-mailed me before, but apparently ignored that I told them what the GPL license actually requires them to do.


----------



## Suslik V (Mar 31, 2021)

randef97 said:


> ...they should have to release the source of their *whole* program under GPL


Not quite true. Only parts that interacts with the GPL code, to ensure that the code is used right (no violations of license, no intended harm, right usage of the intervals, timings, interrupts, resources etc., etc.). It's my point of view.


----------



## bcoyle (Mar 31, 2021)

My perception is that you only have to produce a source file (of obs - not you app)  is if you fork the OBS instance and have something new. You are free to use obs as is without revealing you source code.


----------



## Xaymar (Mar 31, 2021)

Suslik V said:


> Not quite true. Only parts that interacts with the GPL code, to ensure that the code is used right (no violations of license, no intended harm, right usage of the intervals, timings, interrupts, resources etc., etc.). It's my point of view.


obs-studio-node is under GPLv2, which requires that if you link to or use code from it your own code also has to be under GPL, which requires them to provide full source code on request. This is different from LGPL, which only requires you to provide a way to build the third-party library and replace it on your device.

You have to completely open source _everything_ that links or uses GPL code, unless it is LGPL. Qt for example is partially LGPL


----------



## bcoyle (Apr 1, 2021)

So how does Stream labs get away with not releasing their source code? (or do they)?


----------



## Deleted member 121471 (Apr 1, 2021)

Streamlabs OBS is free and open source.









						GitHub - stream-labs/desktop: Free and open source streaming software built on OBS and Electron.
					

Free and open source streaming software built on OBS and Electron. - GitHub - stream-labs/desktop: Free and open source streaming software built on OBS and Electron.




					github.com


----------



## Suslik V (Apr 1, 2021)

harm, profit, evil deed, social danger is what the law was designed for @Xaymar "...you *may* consider..." (https://www.gnu.org/licenses/old-licenses/gpl-2.0.html#SEC1) is literally possibility. And every one may read same rows differently. It was my point of view.

If there is conflict of interests - a judgment exist for this (court). For example, someone will decide to take ownership of your code and will try to fine third-party manufacturer because it also uses it. And here the code is protected by a freedom of the mentioned license. So, dispute is possible (there is profit etc., etc.). It's quite possible, because owner may distribute the same code under unlimited number of licenses (but this should be only your code from the start!). In other words you cannot fork OBS and say that it is yours now - it is protected by the free license.


----------



## bcoyle (Apr 1, 2021)

Ah. But if you use it (obs) as is and any other open source as is, I don't think you have to open source your very private app. You haven't forked anything. If you wish to distribute your exe on github or use as is, you, don't have to expose your your app source if you don't want to. You may not want everybody in the world having your source code and have people produce forked copies that may come to bite you in the butt as the "Creator". Or have to troubleshoot your code variation (bugs). I understand you can use open source as is, but if you fork it, you have to do open source that piece of code. My opinion. Hey if you spent a year developing your super app, you might want to monopolize it or keep control of it. You can release an exe, people benefit, you are still sharing. Anyway, just my opinion.


----------



## Deleted member 121471 (Apr 1, 2021)

For clarification, from GPLv2 faq:

*"What is the difference between “mere aggregation” and “combining two modules into one program”?*
Mere aggregation of two programs means putting them side by side on the same CD-ROM or hard disk. We use this term in the case where they are separate programs, not parts of a single program. In this case, if one of the programs is covered by the GPL, it has no effect on the other program.
Combining two modules means connecting them together so that they form a single larger program. If either part is covered by the GPL, the whole combination must also be released under the GPL—if you can't, or won't, do that, you may not combine them.

What constitutes combining two parts into one program? This is a legal question, which ultimately judges will decide. We believe that a proper criterion depends both on the mechanism of communication (exec, pipes, rpc, function calls within a shared address space, etc.) and the semantics of the communication (what kinds of information are interchanged).

If the modules are included in the same executable file, they are definitely combined in one program. If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program.

By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program."

Source: https://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.en.html


----------



## bcoyle (Apr 1, 2021)

Volfield said:


> For clarification, from GPLv2 faq:
> 
> *"What is the difference between “mere aggregation” and “combining two modules into one program”?*
> Mere aggregation of two programs means putting them side by side on the same CD-ROM or hard disk. We use this term in the case where they are separate programs, not parts of a single program. In this case, if one of the programs is covered by the GPL, it has no effect on the other program.
> ...


So are you saying (last paragraph) that if I talk to obs over a socket and ask it for scene information to use in an app that does scene switching that the "may" be considered 1 program? Does the meaning change if you consider it an enhancement to obs like a plugin or (differently) obs as a slave you use as an fancy encoder?


----------



## Deleted member 121471 (Apr 1, 2021)

For personal use, the license doesn't apply. It only applies if you decide to distribute it.

To answer your question, here's another snippet:

"If the main program and the plugins are a single combined program then this means you must license the plug-in under the GPL or a GPL-compatible free software license and distribute it with source code in a GPL-compliant way. A main program that is separate from its plug-ins makes no requirements for the plug-ins."


----------



## bcoyle (Apr 1, 2021)

Ok, my situation: I'm writing a standalone program in visual basic (sort of a playlist program). I use OBS as a scene selector and encoder. I in no way fork obs or any other open source software, I use as is (as it's distributed). I do not wish to open source my code. but am willing to share an .exe. Does this apply to me, in your opinion?


----------



## Deleted member 121471 (Apr 1, 2021)

As soon as your standalone software is bundled with OBS in an executable and both are installed automatically, you're infriging on the rights of the end user outlined in the license and are required to make it GPLv2 compliant.

Your safest bet would be to either make it an OBS plugin or distribute your standalone app without bundling OBS alongside it. Even monetization is not discouraged, as the old quote from Stallman goes " Think free as in free speech, not free beer.".

The licensing is very clear but the copyright side of things is where it is very murky, as there aren't enough precedents in the courtrooms to make certain legal scenarios clear as day.


----------



## bcoyle (Apr 2, 2021)

Interesting. The safest way is to have the user download obs and required plugins themselves. I see a lot of gethub entries with only their app executables in a zip file. Anyway, thanks very much for the comments. If you interested in a 24/7 broadcast public access tv type of app, come over to 24/7 broadcast playlist thread.


----------



## Freedoom (Sep 12, 2021)

randef97 said:


> Hey, so it seems these guys: https://lowkey.gg/ are including OBS in a commercial product, and not shipping the source?
> There's even a blog post by the contractors they hired to integrate it: https://evilmartians.com/chronicles/desktop-frontier-video-app-optimization-for-lowkey
> If you install it, there's a copy of OBS in `AppData\Local\Programs\lowkey-electron\resources\app.asar.unpacked\node_modules\osn`
> 
> They're not allowed to do this right? Because OBS is distributed under the GPL, they should have to release the source of their whole program under GPL.


Here additional company https://about.grabyo.com/us/  that its using  - OBS as LGPL. The company is shared OBS sources only -  https://github.com/grabyo/obs-studio  and not whole product. The product is OBS  server  with web interface.


----------

