# Prepare everything - NewPipe Documentation

# Prepare everything

Welcome to the NewPipeExtractor documentation. This tutorial will guide you through the process of creating your own Extractor service with which NewPipe will gain support for a dedicated streaming service like YouTube, Vimeo or SoundCloud. The whole documentation consists of this page, which explains the general concept of the NewPipeExtractor, as well as our Jdoc setup.

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 :)

## Setup your dev environment

First and foremost you need to meet certain conditions in order to write your own service.

### What you need to know

- Basic understanding of git
- Good Java knowledge
- Good understanding of web technology
- Basic understanding of unit testing and JUnit
- Flawless understanding of how to contribute to the NewPipe project

### What you need to have

- A dev environment/ide that supports:
  - git
  - java 8
  - gradle
  - unit testing
  - I highly recommend IDEA Community since it has everything we need.
- 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 way you have your own working repository. Now clone this repository into your local folder in which you want to work in. Next import the cloned project into your IDE and run it. If all the checks are green you did everything right, and you are good to go to move on to the next chapter.

#### Running test in Android Studio

Go to run > edit configurations > add new configuration and select "Gradle". As Gradle Project, select NewPipeExtractor. As 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:

1. Stick to our Code contribution guidelines
2. Do not send services that present content we don't allow on NewPipe.
3. You need to be willing to keep on maintaining your service after submission.
4. Be patient and do the requested changes when one of our maintainers rejects your code.

## Allowed Content

- Basically anything except NOT allowed content.
- Any kind of porn/NSFW that is allowed according to the US Porn act.
- Advertisement (may be handled specially though)

## NOT allowed Content

- NSFL (Not Safe For Life)
- Porn that is not allowed according to US Porn act.
- Any form of violence
- Child pornography
- Media that harms others
- Media that violates human rights
- Copyright infringement/pirated media

« Previous Next »