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

Remove youtube extractor from the project #1922

Open
twlite opened this issue Jul 12, 2024 · 2 comments
Open

Remove youtube extractor from the project #1922

twlite opened this issue Jul 12, 2024 · 2 comments
Labels
area:extractor Extractors related enhancement New feature or request

Comments

@twlite
Copy link
Collaborator

twlite commented Jul 12, 2024

Summary

Previusly discussed at #1726

I propose the removal of the default/bundled YouTube extractor from the core of this project. This change aims to enhance the project's stability, legal compliance, and flexibility by decoupling it from third-party dependencies and potential legal issues.

Rationale

The current YouTube extractor depends on multiple third-party libraries (ytdl-core, youtube-ext, @distube/ytdl-core, yt-stream, play-dl). These dependencies are outside of our control, and when YouTube updates its platform, these libraries often break, causing disruptions in functionality. By removing the bundled extractor, we can reduce the risk of such disruptions. From a legal standpoint, incorporating a YouTube extractor directly into the core may lead to complications. YouTube's terms of service often conflict with the methods used by these extractors. To ensure we are following legal best practices, it is prudent to exclude the extractor from the core project and leave the responsibility of compliance to individual users. Maintaining the YouTube extractor as part of the core increases the maintenance burden. The development team must constantly monitor changes in YouTube's platform and update the extractor accordingly. By removing it, we can focus on improving the core functionalities of the project and reduce the overall maintenance load.

Implementation

First, we should announce the deprecation of the default YouTube extractor in upcoming release notes and documentation. This should include providing users with a timeline for its removal to allow ample time for transition. Next, we should emphasize the project's existing customizability, highlighting that users can integrate their own extractors. This will require providing detailed documentation on how to add third-party extractors. Additionally, we should recommend reliable third-party extractors. For example, @retrouser955's discord-player-youtubei has proven to be more stable and effective compared to ytdl-based extractors. Providing examples and guides on how to integrate these alternatives will be essential. Finally, we should begin the process of removing the default YouTube extractor from the core codebase. This should be done gradually, with clear communication to users at each stage.

Conclusion

Removing the default YouTube extractor from the core project is a strategic decision that aligns with our goals of improving stability, ensuring legal compliance, and focusing on core functionalities. By leveraging the community's customizability options and promoting reliable third-party extractors, we can continue to offer robust YouTube support without the associated risks and maintenance burdens.

@twlite twlite added enhancement New feature or request area:extractor Extractors related labels Jul 12, 2024
@retrouser955
Copy link
Collaborator

I feel as per v6, a warning in the readme would suffice but in the upcoming update (v7), YouTube Extractor should be entirely replaced by the system currently present in discord-player-youtubei.

@twlite
Copy link
Collaborator Author

twlite commented Jul 16, 2024

The thing is v7 will take a long time before it is stable. Maybe we should add a warning first (both in documentation and program), then slowly remove it with next release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:extractor Extractors related enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants