-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Stream Mix integration (youtube, spotify...) #6277
Comments
Commented by: esbrandt This is a interesting request and would be a valuable addition to Mixxx. But it raises some legal questions. E.g. the Spotify FAQ say it is licensed "only for personal use", see http://www.spotify.com/us/help/faq/premium/public-usage/. Even if a DJ uses the paid membership (http://www.spotify.com/us/get-spotify/premium/) he probably can`t legally generate income by playing tracks to an audience trough Spotify. So we might need a disclaimer which again points to the terms of use. Furthermore the free use of the Spotify API would limit Mixxx from generating any income trough the application itself, now or later, see paragraph 3.3 on http://developer.spotify.com/en/libspotify/terms-of-use-us/ . |
Commented by: ferranpujolcamins Well it would depend on how would you use Mixxx. Maybe I just want to record a mix to play on my car stereo. Or just wanna practice in my room. |
Commented by: daschuer This could be implemented with the reuse of the clementine-player code base. They support
|
Commented by: kunthar +1 for this functionality |
Commented by: tim-m-davies Massive +1 from me. |
Commented by: shinigam I'll like to support the OPs original request or perhaps add a feature suggestion of my own. I'm a hobby python programmer and thought about perhaps offering an upload feature to SoundCloud or even better Mixcloud. I know both have APIs that could support this feature. |
Commented by: daschuer Hi Gabriel, thank you for offering your help. Please keep sure you have a powerful development environment before starting to work. The other issue is the businesses part of connecting to commercial services. |
Commented by: daschuer Releated Forum threads: |
Commented by: ron-granger Maybe look at Clementine. They use an external plugin to add Spotify Support to the app to make sure they are not in trouble with licensing and stuff. What about a small Mixxx plugin to integrate Spotify and similar web streaming services. |
Commented by: daschuer A kind of plugin solution to support Spotify an similar services would be indeed the best solution. Do you have fun and time to work on it? |
Commented by: ron-granger If you mean me: I haven't got any programming skills in c++ but I would gladly assist in development basing on how you want to implement a plugin into mixxx. |
Commented by: ron-granger I propose a simple library extension format to add other library types later. I think every one has his own library managed in some software and wants to use it in Mixxx. So what about a format like LIBRARY.extension [playlist] [library] [search] And then you can enter the values you need for the different apis or the file structures (in case of local stored libraries) |
Commented by: daschuer Nice Idea. Does Clementine use such format? |
Commented by: ron-granger No, I don't think that they use such a format. There is a "spotiy" folder with alot of c++ code in it, so I think it is an active plugin, not a passive config format. I will try to have a closer look at the spotify plugin of Clementine if I got some time. |
Commented by: debayanbanerjee Hello. Since nobody has mentioned it, I thought just to mention that Alogriddim has developed a platform DJay Pro which seamlessly integrates with Spotify. The catch is that it is only available for Spotify premium users. So personally for me, there is a precedent to use and integrate spotify with third party apps. It would be great if Mixxx takes this on priority since Mixxx also supports a lot of older MIDI controllers which don't receive updates anymore. |
Commented by: jjgh Huge +1. I registered to this bugtracker just to say this! :) This will be a game changer for Mixxx and yes IMHO it should take a high priority. Any news from from this side? |
Commented by: officebeats Correct, Algoriddim DJ allows you to use a spotify premium integration. They don't let you record your sessions into a file. PLEASE include this!!! I personally pay for algoriddim pro and it's ONLY because of this feature. If MIXXX can introduce this I will completely switch over as I use linux and hate to dual boot into mac just to DJ in a modern way. |
Commented by: Be-ing This is very unlikely to happen for several reasons:
|
Commented by: Be-ing For Mixxx, it does not matter that Clementine can use Spotify. Clementine is a different kind of application. It does not record, nor does it broadcast, nor is it designed for playing to an audience. Mixxx using Spotify brings up legal issues as discussed by myself above and jus in comment #1 that Clementine does not have to deal with. |
Commented by: debayanbanerjee I dont think using 3rd party integration plugins according to their terms There is still a strong case for Mixxx integration with spotify. On Mon, 7 May 2018, 17:35 Be, wrote:
|
Commented by: Be-ing When their terms and conditions require restricting user freedoms, then yes, they are the same. |
Commented by: debayanbanerjee Your argument about Clementine being a different app and Spotify having You might be looking for some moral high ground, which is of no concern to For me Clemtine and Spotify integration, both are equally important. On Mon, 7 May 2018, 18:16 Be, wrote:
|
Commented by: Be-ing If you do not care about the issues raised above and using Spotify is important to you, then you can use Algoriddim djay. |
Commented by: ron-granger Well, I just wanted to add some thoughts about what was said earlier: The use of a special "library plugin" format was already discussed. So why not add the important options for library plugins and let users develop and share their own plugins, like for Spotify, youtube (i think Soundcloud was also stated, even if I wouldn't use it). These could shift the legal issues from the Mixxx core application to the actual plugin developer. If Spotify still demands the disabling of a record, couldn't you just add a plugin option to "temporarily disable recording due to legal issues" (and probably disable the plugin when the user wants to record)? The argument that Spotify is only for private use seems queer since this other DJ app apparently uses it. Does it violate the ToS then or do they have some kind of exclusive agreement? The argument that people could bypass these limits is only somewhat relevant: Because users could also change the behaviour of Clementine and there are already Spotify downloaders as far as I know. |
Commented by: Be-ing Algoriddim has a business partnership with Spotify and has negotiated their terms of use.
No. There would be no difference whether the artificial restriction is directly integrated into Mixxx or Mixxx provides an API for an external plugin to activate an artificial restriction. Mixxx will never impose artificial restrictions on users.
Clementine has no recording functionality, so it's not that simple. Using Clementine to record from Spotify would require adding a whole new feature to Clementine. In Mixxx, it would be as simple as deleting a few lines of code and recompiling, which anyone could do quite easily and put those modified versions online, which would then be easy to use for recording from Spotify. Because of this, it would be unlikely that Spotify would agree to partner with Mixxx like they have with Algoriddim (if their contract with Algoriddim even allows Spotify to partner with other DJ software).
Yes, and these are clearly violating Spotify's terms of use. I doubt Spotify can shut them all down as fast as they appear. |
Commented by: debayanbanerjee I wouldve if it wasnt a shitty program. On Mon, 7 May 2018, 21:25 Be, wrote:
|
Commented by: ron-granger
I agree with the rest of your message. May we move away from focusing Spotify and see if there are other music streaming services that could be implemented? |
Commented by: rryan Can I play devil's advocate and propose a thought experiment? Let's consider sudo. It violates user freedom, because everyone should have access to ring 0, right? No! It implements a policy or contract. The policy is an agreement between the computer users and its administrator. The users have certain permissions about what they can and can't do with the system. sudo is Free software even though it implements this policy. I assume everyone agrees with this. Another case: Let's say a bank runs on an AGPL software project, GNUKnox. If GNUKnox were truly free, it would allow its users to transfer money from any account to any other account? No. There's a policy / agreement between the bank and its users about how it will execute transfers and manage the user's money. Where does this leave us with Mixxx and streaming services? The streaming services will allow users to access music they have a subscription for under certain conditions. There's a contract between the user and the service describing those conditions. We have the option to implement that contract to let the user participate in the contract using Mixxx. How is freedom being impinged here where it isn't being impinged in the above two cases? |
Commented by: uklotzde A similar aspect: I don't use the recording or broadcasting feature and don't care if it is disabled temporarily or not. I wouldn't even notice. Holding back the streaming functionality effectively restricts my personal freedom. I understand and respect the motivation behind not supporting certain business models. On the other hand I would like to keep the discussions on a technical level, striving for compromises that are acceptable for each stakeholder and without categorically excluding any options upfront. By providing the source code we enable users to modify the code and build their own, customized version. Our license allows this. I think we can agree to never accept any code contributions that would restrict those rights. |
Commented by: daschuer
This seems to me to be the most critical point. In case a user uses a Mixxx for to violate his contract with the streaming company, it might throw bad light on Mixxx as a whole, which may leads to backlist Mixxx as streaming client. All our streaming efforts are on a risk, so we should make sure that the forks can be identified as forks. Does this still match your opinion? By the way, it is quite easy to record any stream using a loopback device. |
Commented by: uklotzde Of course including all consequences. We need to make clear that we are not willing to change our license to disallow such modifications. Changing the license wouldn't help, the source code is out of our control after publishing it. If a shared application token is required that can be revoked at any time and will, I personally would not invest a minute into such a project. It is also an open question how to distribute such a secret(?) token. I'm afraid most services are ruled out just by Mixxx being open-source, i.e. whenever some kind of security by obscurity or validation/signature of the actual code that is running is required. Why discuss about possible consequences and restrictions that might never become reality? Let's focus on the facts and adhere to the rules, both ours and theirs, as RJ vividly explained. Constructive input and ideas are always welcome, no taboos on thinking! |
Commented by: uklotzde A generic streaming source integration would still be useful, though not for Spotify: https://djworx.com/spotify-withdraws-from-dj-streaming-apparently-not-the-end-of-the-world/ |
Commented by: renne I suggest to add Qobuz. |
Commented by: daschuer Does Qobuz allow DJing, regarding their terms and conditions? Do they support third party streaming clients? Do they have interest to colboration? |
Do these integrations require mainstream code or could someone write a 3rd party plugin to support say, youtube-dl or spotify-downloader ? https://github.com/ytdl-org/youtube-dl https://github.com/spotDL/spotify-downloader I'm not asking about mainline code for obvious reasons, but if someone could write a 3rd party plugin for Mixxx, then this would turn into a non-issue. |
I think you can already use the linked tools if you have the required rights and then play the downloaded files with Mixxx. |
Maybe mixxx could use some ready solution gathering multiple music services (like mopidy)? Then integration may be easier I'm not expert, but then stream manipulation and metadata could be entirely performed by such a service. It also saves lots of issues with providers permissions. I don't know, unfortunately, if handling stream (even as some fifo) is possible by mixxx. |
That sounds interesting. How do you think will Mixxx integrate with mopidy? Can you draft a data flow diagram? |
Im going to take a look at integrating Tidal and SoundCloud into Mixxx, anyone startede on this yet? |
Not yet. The difficult part is how to do it "correct" in terms of not violating any license terms. Do you have already detailed plans? |
I think the safe way would be integrating with a third party, like Mopidy. |
So IIUC, that would be a new library feature which is basically a Mopidy client, incl. any of the available extensions? How would the actual playback happen? |
Ive read a bit up on the license on your forum about spotify. But by now i see Tidal and SoundCloud integrated into many dj programs, so i cant see why it should be a problem. I think it should be posible with the licensing rules of the Tidal and SC plans. SC even have a plan specificly for djs who wants to play for a crowd. I plan on integrating clemetine and disabling recording when its active.
…________________________________
From: ronso0 ***@***.***>
Sent: Wednesday, March 20, 2024 12:42:32 PM
To: mixxxdj/mixxx ***@***.***>
Cc: simoher ***@***.***>; Comment ***@***.***>
Subject: Re: [mixxxdj/mixxx] Stream Mix integration (youtube, spotify...) (Issue #6277)
So IIUC, that would be a new library feature which is basically a Mopidy client, incl. any of the available extensions?
How would the actual playback happen?
—
Reply to this email directly, view it on GitHub<#6277 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AA4XFQ72CFPW3QCVDFTM3ADYZFY2RAVCNFSM6AAAAAATLS4IQ6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMBZGM3TIOBSGU>.
You are receiving this because you commented.Message ID: ***@***.***>
|
As discussed earlier (at lengths), since it's almost certainly trivial to disable such a record protection, any integration of APIs / apps (Clementine) that natively allow playing copyrighted content will not be merged into Mixxx since it would allow circumventing any copyright protection implemented by the root APIs. No issue however if you route such content into Mixxx via Aux or some loopback device. Just some thoughts, IANAL |
But the could just record directly from clementine too?? If someone wants to scrape the tracks they could also just hack clementine and record that, i dont see the problem, so I will just make this for myself..
Thanks for the reply!
…________________________________
From: ronso0 ***@***.***>
Sent: Wednesday, March 20, 2024 1:35 PM
To: mixxxdj/mixxx ***@***.***>
Cc: simoher ***@***.***>; Comment ***@***.***>
Subject: Re: [mixxxdj/mixxx] Stream Mix integration (youtube, spotify...) (Issue #6277)
I plan on integrating clemetine and disabling recording when its active.
As discussed earlier (at lengths), since it's almost certainly trivial to disable such a record protection, any integration of APIs / apps (Clementine) that natively allow playing copyrighted content will not be merged into Mixxx since it would allow circumventing any copyright protection implemented by the root APIs.
No issue however if you route such content into Mixxx via Aux or some loopback device.
IMHO (and IIUC) integrating MPD/Mopidy would also require this kind of routing, with the difference that vanilla Mopidy does not provide access to SC, Tidal etc..
Just some thoughts, IANAL
—
Reply to this email directly, view it on GitHub<#6277 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AA4XFQZHUBNEEMGFS4BWW3DYZF67PAVCNFSM6AAAAAATLS4IQ6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMBZGQ3DIMRUGU>.
You are receiving this because you commented.Message ID: ***@***.***>
|
Feel free to open a PR so the details can be discussed, just don't expect it to be merged, that's all I'm trying to say. |
Yes, I see the problem. Will see what I can do..
Thanks mate!
…________________________________
From: ronso0 ***@***.***>
Sent: Wednesday, March 20, 2024 1:47 PM
To: mixxxdj/mixxx ***@***.***>
Cc: simoher ***@***.***>; Comment ***@***.***>
Subject: Re: [mixxxdj/mixxx] Stream Mix integration (youtube, spotify...) (Issue #6277)
so I will just make this for myself
Feel free to open a PR so the details can be discussed, just don't expect it to be merged, that's all I'm trying to say.
—
Reply to this email directly, view it on GitHub<#6277 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AA4XFQ5QUBIKRKEV4BR245TYZGAODAVCNFSM6AAAAAATLS4IQ6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMBZGQ4DOMJYGM>.
You are receiving this because you commented.Message ID: ***@***.***>
|
That sounds reasonable, but on the other hand... MIXXX suppports plugins, right? So, theoretically speaking, would this be feasible as a 3rd party plugin? |
I don't see an issue that we integrate an MPD client into Mixxx. MPD itself puts no license constrains to Mixxx. I think for looping we need to buffer a whole track. The required Aux buffering is also a challenge. |
Nope, no plugins. |
Seems related to mixxxdj/proposals#2 |
Did anyone took a look at this? https://tidal.com/djs |
@eberleidacunha I don't think so. We need two points, |
Reported by: ferranpujolcamins
Date: 2012-02-21T21:29:08Z
Status: Confirmed
Importance: Wishlist
Launchpad Issue: lp938180
Tags: cloud
It would be very useful if Mixxx could natively buffer songs on the fly from a stream service like youtube or spotify and then be able to play them like local tracks.
The text was updated successfully, but these errors were encountered: