Skip to content
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

Join projects #11

Closed
pluja opened this issue Sep 7, 2020 · 14 comments
Closed

Join projects #11

pluja opened this issue Sep 7, 2020 · 14 comments

Comments

@pluja
Copy link

pluja commented Sep 7, 2020

Hey! I've seen your project and it is pretty nice! I would like to talk to you about joining skills and forces to develop a solution together. Would you like to contribute to Yotter? We could use our codes and join parts together so we can offer a good and robust solution. What do you say?

@pluja
Copy link
Author

pluja commented Sep 7, 2020

If your answer is "No", which I would totally understand. Can I use some parts of your code and integrate it into Yotter giving proper credit?

@pluja pluja changed the title Contact Join projects Sep 7, 2020
@jellelicht
Copy link
Contributor

jellelicht commented Sep 7, 2020

(Note: not the author)

It seems that AGPL and GPL are pretty much incompatible, so you would need an exemption (like youtube-dl) to be allowed to integrate it in the first place. (EDIT: or of course have one of the projects relicense completely)

@pluja
Copy link
Author

pluja commented Sep 7, 2020

I could relicense the project, I don't have a problem with this. I think AGPL is a good license for my project.

@user234683
Copy link
Owner

Yes, we can share code or knowledge; it's free software after all. I don't have a problem if you borrow code. I'm not sure combining the two into a single project would be a good idea. Though I'm open to it if you have ideas for how that would work. The projects seem to have slightly different use cases; Yotter is mostly replacing Invidious, which is primarily designed to have public instances used by many users, whereas youtube-local is designed to be quick to deploy for personal usage. I think the yt_data_extract module or something like it could be feasibly separated into its own repo and used by both projects, since it's already decoupled from everything else.

@user234683
Copy link
Owner

I can make occasional contributions to Yotter or answer any questions you have, but I can't make any serious commitments time-wise. You can ping me if you need help with an issue for instance.

@pluja
Copy link
Author

pluja commented Sep 8, 2020

I think that's awesome. Let's stay in touch! Do you have a Matrix or XMPP account so we can chat?

@user234683
Copy link
Owner

I don't have anything else set up right now, no. If the need arises later I could set something up.

@pluja
Copy link
Author

pluja commented Sep 10, 2020

Hey @user234683, I've got a question. How do you manage to get the URL from googlevideo streaming?

@user234683
Copy link
Owner

Do you mean how to route the video through the Yotter server properly so the user can jump around and stream the video? Like in the context of this issue? (you can ping me from other repos btw if there's useful context in an issue) Because I don't do that right now, the video doesn't get routed through Tor so I just have the

@pluja
Copy link
Author

pluja commented Sep 11, 2020

I meant to extract the googlevideo url itself, because I can extract a googlevideo url but it says that I have no authorisation for that route... Thanks!

@user234683
Copy link
Owner

Ah, so I assume you're trying to replace youtube-dl with your own extraction? And by no authorization, you mean that the googlevideo url gives an HTTP 403 Forbidden error? And is it always happening, or only for some videos? I assume only for some videos

If no to replacing youtube-dl:

  • If the urls are obtained from IP address X (such as the Yotter server), and then the url's are accessed from IP address Y (such as a client accessing it rather than routing through the server), Youtube will sometimes deny access with a 403 since the IP's do not match, usually for videos with copyrighted content or videos that were streamed live. This is a difficult problem, though I have some limited information for getting around it.
  • Otherwise, it would be odd if the URLs from youtube-dl give 403s for same IP address unless there's a change from youtube, in which case you should check the youtube-dl repository for recent issues/commits along those lines.
    If yes to replacing youtube-dl:
  • Videos with copyrighted content come with a cipher that must be decrypted. It is contained in the signature parameter and you must append another parameter to the URL based on decrypting that signature. The function for decrypting the signature is found in the base.js file provided for a given video. I recommend this guide for an overview of this. And then I recommend reading the relevant signature deciphering code in youtube-dl, youtube-local (check the /watch route and the signature decryption code in yt_data_extract), and invidious. For instance, decryption functions get reused across many videos so the function should be cached since the base.js file is large (1 MB).

@pluja
Copy link
Author

pluja commented Sep 12, 2020

Wow, thanks for such a detailed answer. That's great. Are you using Youtube-dl for this or do you use your own implementation?

@user234683
Copy link
Owner

I'm using my own implementation

@pluja
Copy link
Author

pluja commented Oct 10, 2020

Hi! As we talked, I decided to borrow the code you are using to gather video urls and some youtube data. I cleaned it up so it could fit my implementation, and merged it with some functions of mine. But, afterall it is mostly your code! I moved youtube-local up on the Powered by section.

And as always, you are very welcome to contribute to Yotter in any way you want. Also I can give you more credit if you think it is necessary.

I did this because you gave consent. But I want to make celar that if you are bothered by this decision, I can revert back the changes with no problem.

Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants