Before You Start
These documents will guide you through the process of understanding or creating your own Extractor service of which will enable NewPipe to access additional streaming services, such as the currently supported YouTube, SoundCloud and MediaCCC. The whole documentation consists of this page and Jdoc setup, which explains the general concept of the NewPipeExtractor.
IMPORTANT!!! This is likely to be the worst documentation you have ever read, so do not hesitate to report if you find any spelling errors, incomplete parts or you simply don't understand something. We are an open community and are open for everyone to help :)
Setting Up Your Dev Environment
First and foremost, you need to meet the following conditions in order to write your own service.
What You Need to Know:
- A basic understanding of Git
- Good Java knowledge
- A good understanding of web technology
- A basic understanding of unit testing and JUnit
- A thorough understanding of how to contribute to the NewPipe project
Tools/Programs You Will Need:
- A dev environment/IDE that supports:
- A Github account
- A lot of patience and excitement ;D
After making sure all these conditions are provided, fork the NewPipeExtractor using the fork button. This is so you have a personal repository to develop on. Next, clone this repository into your local folder in which you want to work in. Then, import the cloned project into your IDE and run it. If all the checks are green, you did everything right! You can proceed to the next chapter.
Importing the NewPipe Extractor in IntelliJ IDEA
If you use IntelliJ IDEA, you should know the easy way of importing the NewPipe extractor. If you don't, here's how to do it:
git clonethe extractor onto your computer locally.
- Start IntelliJ Idea and click
- Select the root directory of the NewPipe Extractor.
- Select "Import Project from external Model" and then choose Gradle.
- In the next window, select "Use gradle 'wrapper' task configuration".
Running "test" in Android Studio/IntelliJ IDEA
Go to Run > Edit Configurations > Add New Configuration and select "Gradle". As Gradle Project, select NewPipeExtractor. As a task, add "test". Now save and you should be able to run.
Inclusion Criteria for Services
After creating you own service, you will need to submit it to our NewPipeExtractor repository. However, in order to include your changes, you need to follow these rules:
- Stick to our code contribution guidelines.
- Do not send services that present content we don't allow on NewPipe.
- You must be willing to maintain your service after submission.
- Be patient and make the requested changes when one of our maintainers rejects your code.
Content That is Permitted
- Any content that is not in the list of prohibited content.
- Any kind of pornography or NSFW content that does not violate US law. However, porn services will not be added to the official NewPipe app.
- Advertising, which may need to be approved beforehand.
Content That is NOT Permitted
- Content that is considered NSFL (Not Safe For Life).
- Content that is prohibited by US federal law (Sexualization of minors, any form of violence, violations of human rights, etc).
- Copyrighted media, without the consent of the copyright holder/publisher.