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:

Tools/Programs You Will Need:

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:

  1. git clone the extractor onto your computer locally.
  2. Start IntelliJ Idea and click Import Project.
  3. Select the root directory of the NewPipe Extractor.
  4. Select "Import Project from external Model" and then choose Gradle. import from gradle image
  5. In the next window, select "Use gradle 'wrapper' task configuration". use gradle 'wrapper' task configuration checkbox

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.

tests passed on idea

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:

  1. Stick to our code contribution guidelines.
  2. Do not send services that present content we don't allow on NewPipe.
  3. You must be willing to maintain your service after submission.
  4. 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.