276 lines
12 KiB
HTML
276 lines
12 KiB
HTML
<!DOCTYPE html>
|
|
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
|
|
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
|
|
<link rel="shortcut icon" href="../img/favicon.ico">
|
|
<title>Prepare everything - NewPipe Documentation</title>
|
|
<!-- local fonts -->
|
|
<link rel="stylesheet" href="../css/local_fonts.css" type="text/css" />
|
|
|
|
<link rel="stylesheet" href="../css/theme.css" type="text/css" />
|
|
<link rel="stylesheet" href="../css/theme_extra.css" type="text/css" />
|
|
<!-- local code syntax highlighting -->
|
|
<link rel="stylesheet" href="../css/github.min.css" type="text/css" />
|
|
<link rel="stylesheet" href="../css/highlight.css" type="text/css" />
|
|
|
|
<script>
|
|
// Current page data
|
|
var mkdocs_page_name = "Prepare everything";
|
|
var mkdocs_page_input_path = "00_Prepare_everything.md";
|
|
var mkdocs_page_url = null;
|
|
</script>
|
|
|
|
<script src="../js/jquery-2.1.1.min.js" defer></script>
|
|
<script src="../js/modernizr-2.8.3.min.js" defer></script>
|
|
<script src="../js/highlight.min.js"></script>
|
|
<script>hljs.initHighlightingOnLoad();</script>
|
|
|
|
</head>
|
|
|
|
<body class="wy-body-for-nav" role="document">
|
|
|
|
<div class="wy-grid-for-nav">
|
|
|
|
|
|
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
|
|
<div class="wy-side-nav-search">
|
|
<a href=".." class="icon icon-home"> NewPipe Documentation</a>
|
|
<div role="search">
|
|
<form id ="rtd-search-form" class="wy-form" action="../search.html" method="get">
|
|
<input type="text" name="q" placeholder="Search docs" title="Type search term here" />
|
|
</form>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
|
|
<ul class="current">
|
|
|
|
|
|
<li class="toctree-l1">
|
|
|
|
<a class="" href="..">Welcome to the NewPipe Documentation.</a>
|
|
</li>
|
|
|
|
<li class="toctree-l1 current">
|
|
|
|
<a class="current" href="./">Prepare everything</a>
|
|
<ul class="subnav">
|
|
|
|
<li class="toctree-l2"><a href="#prepare-everything">Prepare everything</a></li>
|
|
|
|
<ul>
|
|
|
|
<li><a class="toctree-l3" href="#setup-your-dev-environment">Setup your dev environment</a></li>
|
|
|
|
</ul>
|
|
|
|
|
|
<li class="toctree-l2"><a href="#inclusion-criteria-for-services">Inclusion criteria for services</a></li>
|
|
|
|
<ul>
|
|
|
|
<li><a class="toctree-l3" href="#allowed-content">Allowed Content</a></li>
|
|
|
|
<li><a class="toctree-l3" href="#not-allowed-content">NOT allowed Content</a></li>
|
|
|
|
</ul>
|
|
|
|
|
|
</ul>
|
|
</li>
|
|
|
|
<li class="toctree-l1">
|
|
|
|
<a class="" href="../01_Concept_of_the_extractor/">Concept of the Extractor</a>
|
|
</li>
|
|
|
|
<li class="toctree-l1">
|
|
|
|
<a class="" href="../02_Concept_of_LinkHandler/">Concept of LinkHandler</a>
|
|
</li>
|
|
|
|
<li class="toctree-l1">
|
|
|
|
<a class="" href="../03_Implement_a_service/">Implement a service</a>
|
|
</li>
|
|
|
|
<li class="toctree-l1">
|
|
|
|
<a class="" href="../04_Run_changes_in_App/">Run the changes in the App</a>
|
|
</li>
|
|
|
|
<li class="toctree-l1">
|
|
|
|
<a class="" href="../05_releasing/">Releasing a new NewPipe version</a>
|
|
</li>
|
|
|
|
<li class="toctree-l1">
|
|
|
|
<a class="" href="../06_documentation/">Documentation</a>
|
|
</li>
|
|
|
|
</ul>
|
|
</div>
|
|
|
|
</nav>
|
|
|
|
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
|
|
|
|
|
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
|
|
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
|
<a href="..">NewPipe Documentation</a>
|
|
</nav>
|
|
|
|
|
|
<div class="wy-nav-content">
|
|
<div class="rst-content">
|
|
<div role="navigation" aria-label="breadcrumbs navigation">
|
|
<ul class="wy-breadcrumbs">
|
|
<li><a href="..">Docs</a> »</li>
|
|
|
|
|
|
|
|
<li>Prepare everything</li>
|
|
<li class="wy-breadcrumbs-aside">
|
|
|
|
</li>
|
|
</ul>
|
|
<hr/>
|
|
</div>
|
|
<div role="main">
|
|
<div class="section">
|
|
|
|
<h1 id="prepare-everything">Prepare everything</h1>
|
|
<p>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
|
|
<a href="https://teamnewpipe.github.io/NewPipeExtractor/javadoc/">Jdoc</a> setup.</p>
|
|
<p><strong>IMPORTANT!!!</strong> this is likely to be the worst documentation you have ever read, so do not hesitate to
|
|
<a href="https://github.com/teamnewpipe/documentation/issues">report</a> 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 :)</p>
|
|
<h2 id="setup-your-dev-environment">Setup your dev environment</h2>
|
|
<p>First and foremost you need to meet certain conditions in order to write your own service.</p>
|
|
<h3 id="what-you-need-to-know">What you need to know</h3>
|
|
<ul>
|
|
<li>Basic understanding of <strong><a href="https://try.github.io">git</a></strong></li>
|
|
<li>Good <strong><a href="https://whatpixel.com/best-java-books/">Java</a></strong> knowledge</li>
|
|
<li>Good understanding of <strong><a href="https://www.w3schools.com/">web technology</a></strong></li>
|
|
<li>Basic understanding of <strong><a href="https://www.vogella.com/tutorials/JUnit/article.html">unit testing</a></strong> and <strong><a href="https://junit.org/">JUnit</a></strong></li>
|
|
<li>Flawless understanding of how to <a href="https://github.com/TeamNewPipe/NewPipe/blob/dev/.github/CONTRIBUTING.md#code-contribution">contribute</a> to the <strong>NewPipe project</strong></li>
|
|
</ul>
|
|
<h3 id="what-you-need-to-have">What you need to have</h3>
|
|
<ul>
|
|
<li>A dev environment/ide that supports:<ul>
|
|
<li><strong><a href="https://git-scm.com/downloads/guis">git</a></strong></li>
|
|
<li><strong><a href="https://www.java.com/en/download/faq/java8.xml">java 8</a></strong></li>
|
|
<li><strong><a href="https://gradle.org/">gradle</a></strong></li>
|
|
<li><strong><a href="https://junit.org/junit5/">unit testing</a></strong></li>
|
|
<li>I highly recommend <a href="https://www.jetbrains.com/idea/">IDEA Community</a> since it has everything we need.</li>
|
|
</ul>
|
|
</li>
|
|
<li>A <strong><a href="https://github.com/">Github</a></strong> account</li>
|
|
<li>A lot of patience and excitement ;D</li>
|
|
</ul>
|
|
<p>After making sure all these conditions are provided fork the <a href="https://github.com/TeamNewPipe/NewPipeExtractor">NewPipeExtractor</a>,
|
|
using the <a href="https://github.com/TeamNewPipe/NewPipeExtractor#fork-destination-box">fork button</a>.
|
|
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 <a href="https://www.jetbrains.com/help/idea/configuring-projects.html#importing-project">IDE</a>
|
|
and <a href="https://www.jetbrains.com/help/idea/performing-tests.html">run</a> it.
|
|
If all the checks are green you did everything right, and you are good to go to move on to the next chapter.</p>
|
|
<h3 id="importing-the-newpipe-extractor-in-intellij-idea">Importing the NewPipe Extractor in IntelliJ IDEA</h3>
|
|
<p>If you use IntelliJ IDEA you might want to know how to import the NewPipe extractor painlessly. This is what you want to do.</p>
|
|
<ol>
|
|
<li><code>git clone</code> the extractor onto your computer locally.</li>
|
|
<li>Start IntelliJ Idea, and click on <code>Import Project</code>.</li>
|
|
<li>Select the root directory of the NewPipe Extractor</li>
|
|
<li>Now it's important to select "<strong>Import Project form external Model</strong>" and then choose <strong>Gradle</strong>.
|
|
<img alt="import from gradle image" src="../img/select_gradle.png" /></li>
|
|
<li>In the next window make sure "<strong>Use grale 'wrapper' task configuration</strong>" is selected.
|
|
<img alt="use gradle 'wrapper' task configuration checkbox" src="../img/select_gradle_wrapper.png" /></li>
|
|
</ol>
|
|
<h3 id="running-test-in-android-studiointellij-idea">Running test in Android Studio/IntelliJ IDEA</h3>
|
|
<p>Go to <em>run</em> > <em>edit configurations</em> > <em>add new configuration</em> and select "Gradle".
|
|
As Gradle Project, select NewPipeExtractor. As task add "test". Now save and you should be able to run.</p>
|
|
<p><img alt="tests passed on idea" src="../img/prepare_tests_passed.png" /></p>
|
|
<h1 id="inclusion-criteria-for-services">Inclusion criteria for services</h1>
|
|
<p>After creating you own service you will need to submit it to our <a href="https://github.com/teamnewpipe/newpipeextractor">NewPipeExtractor</a>
|
|
repository. However in order to include your changes you need to follow these rules:</p>
|
|
<ol>
|
|
<li>Stick to our <a href="https://github.com/TeamNewPipe/NewPipe/blob/dev/.github/CONTRIBUTING.md#code-contribution">Code contribution guidelines</a></li>
|
|
<li>Do not send services that present content we <a href="#not-allowed-content">don't allow</a> on NewPipe.</li>
|
|
<li>You need to be willing to keep on maintaining your service after submission.</li>
|
|
<li>Be patient and do the requested changes when one of our maintainers rejects your code.</li>
|
|
</ol>
|
|
<h2 id="allowed-content">Allowed Content</h2>
|
|
<ul>
|
|
<li>Basically anything except <a href="#not-allowed-content">NOT allowed content</a>.</li>
|
|
<li>Any kind of porn/NSFW that is allowed according to the <a href="https://www.justice.gov/archive/opa/pr/2003/April/03_ag_266.htm">US Porn act</a>.</li>
|
|
<li>Advertisement (may be handled specially though)</li>
|
|
</ul>
|
|
<h2 id="not-allowed-content">NOT allowed Content</h2>
|
|
<ul>
|
|
<li>NSFL (Not Safe For Life)</li>
|
|
<li>Porn that is not allowed according to <a href="https://www.justice.gov/archive/opa/pr/2003/April/03_ag_266.htm">US Porn act</a>.</li>
|
|
<li>Any form of violence</li>
|
|
<li>Child pornography</li>
|
|
<li>Media that harms others</li>
|
|
<li>Media that violates human rights</li>
|
|
<li>Copyright infringement/pirated media</li>
|
|
</ul>
|
|
|
|
</div>
|
|
</div>
|
|
<footer>
|
|
|
|
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
|
|
|
|
<a href="../01_Concept_of_the_extractor/" class="btn btn-neutral float-right" title="Concept of the Extractor">Next <span class="icon icon-circle-arrow-right"></span></a>
|
|
|
|
|
|
<a href=".." class="btn btn-neutral" title="Welcome to the NewPipe Documentation."><span class="icon icon-circle-arrow-left"></span> Previous</a>
|
|
|
|
</div>
|
|
|
|
|
|
<hr/>
|
|
|
|
<div role="contentinfo">
|
|
<!-- Copyright etc -->
|
|
|
|
</div>
|
|
|
|
Built with <a href="http://www.mkdocs.org">MkDocs</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
|
</footer>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
</section>
|
|
|
|
</div>
|
|
|
|
<div class="rst-versions" role="note" style="cursor: pointer">
|
|
<span class="rst-current-version" data-toggle="rst-current-version">
|
|
|
|
|
|
<span><a href=".." style="color: #fcfcfc;">« Previous</a></span>
|
|
|
|
|
|
<span style="margin-left: 15px"><a href="../01_Concept_of_the_extractor/" style="color: #fcfcfc">Next »</a></span>
|
|
|
|
</span>
|
|
</div>
|
|
<script>var base_url = '..';</script>
|
|
<script src="../js/theme.js" defer></script>
|
|
<script src="../search/main.js" defer></script>
|
|
|
|
</body>
|
|
</html>
|