263 lines
13 KiB
HTML
263 lines
13 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>Before You Start - 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" />
|
|
<link rel="stylesheet" href="../css/theme_child.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 = "Before You Start";
|
|
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-scroll">
|
|
<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>
|
|
<li class="toctree-l1"><a class="reference internal" href="..">Welcome to NewPipe</a>
|
|
</li>
|
|
</ul>
|
|
<ul class="current">
|
|
<li class="toctree-l1 current"><a class="reference internal current" href="./">Before You Start</a>
|
|
<ul class="current">
|
|
<li class="toctree-l2"><a class="reference internal" href="#setting-up-your-dev-environment">Setting Up Your Dev Environment</a>
|
|
<ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="#what-you-need-to-know">What You Need to Know:</a>
|
|
</li>
|
|
<li class="toctree-l3"><a class="reference internal" href="#toolsprograms-you-will-need">Tools/Programs You Will Need:</a>
|
|
</li>
|
|
<li class="toctree-l3"><a class="reference internal" href="#importing-the-newpipe-extractor-in-intellij-idea">Importing the NewPipe Extractor in IntelliJ IDEA</a>
|
|
</li>
|
|
<li class="toctree-l3"><a class="reference internal" href="#running-test-in-android-studiointellij-idea">Running "test" in Android Studio/IntelliJ IDEA</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<ul>
|
|
<li class="toctree-l1"><a class="reference internal" href="../01_Concept_of_the_extractor/">Concept of the Extractor</a>
|
|
</li>
|
|
</ul>
|
|
<ul>
|
|
<li class="toctree-l1"><a class="reference internal" href="../02_Concept_of_LinkHandler/">Concept of the LinkHandler</a>
|
|
</li>
|
|
</ul>
|
|
<ul>
|
|
<li class="toctree-l1"><a class="reference internal" href="../03_Implement_a_service/">Implementing a Service</a>
|
|
</li>
|
|
</ul>
|
|
<ul>
|
|
<li class="toctree-l1"><a class="reference internal" href="../04_Run_changes_in_App/">Testing Your Changes in the App</a>
|
|
</li>
|
|
</ul>
|
|
<ul>
|
|
<li class="toctree-l1"><a class="reference internal" href="../05_releasing/">Releasing a New NewPipe Version</a>
|
|
</li>
|
|
</ul>
|
|
<ul>
|
|
<li class="toctree-l1"><a class="reference internal" href="../06_documentation/">About This Documentation</a>
|
|
</li>
|
|
</ul>
|
|
<ul>
|
|
<li class="toctree-l1"><a class="reference internal" href="../07_maintainers_view/">Maintainers' Section</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</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>Before You Start</li>
|
|
<li class="wy-breadcrumbs-aside">
|
|
|
|
</li>
|
|
</ul>
|
|
|
|
<hr/>
|
|
</div>
|
|
<div role="main">
|
|
<div class="section">
|
|
|
|
<h1 id="before-you-start">Before You Start</h1>
|
|
<p>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 <a href="https://teamnewpipe.github.io/NewPipeExtractor/javadoc/">Jdoc</a> setup, which explains the general concept of the NewPipeExtractor.</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="setting-up-your-dev-environment">Setting Up Your Dev Environment</h2>
|
|
<p>First and foremost, you need to meet the following conditions in order to write your own service.</p>
|
|
<h3 id="what-you-need-to-know">What You Need to Know:</h3>
|
|
<ul>
|
|
<li>A 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>A good understanding of <strong><a href="https://www.w3schools.com/">web technology</a></strong></li>
|
|
<li>A 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>A thorough 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="toolsprograms-you-will-need">Tools/Programs You Will Need:</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><a href="https://www.jetbrains.com/idea/">IDEA Community</a> (Strongly recommended, but not required)</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 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 <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 it.</a>
|
|
If all the checks are green, you did everything right! You can proceed 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 should know the easy way of importing the NewPipe extractor. If you don't, here's how to do it:</p>
|
|
<ol>
|
|
<li><code>git clone</code> the extractor onto your computer locally.</li>
|
|
<li>Start IntelliJ Idea and click <code>Import Project</code>.</li>
|
|
<li>Select the root directory of the NewPipe Extractor.</li>
|
|
<li>Select "<strong>Import Project from 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, select "<strong>Use gradle 'wrapper' task configuration</strong>".
|
|
<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 a 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="#content-that-is-not-permitted">don't allow</a> on NewPipe.</li>
|
|
<li>You must be willing to maintain your service after submission.</li>
|
|
<li>Be patient and make the requested changes when one of our maintainers rejects your code.</li>
|
|
</ol>
|
|
<h2 id="content-that-is-permitted">Content That is Permitted</h2>
|
|
<ul>
|
|
<li>Any content that is not in the <a href="#content-that-is-not-permitted">list of prohibited content</a>.</li>
|
|
<li>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.</li>
|
|
<li>Advertising, which may need to be approved beforehand.</li>
|
|
</ul>
|
|
<h2 id="content-that-is-not-permitted">Content That is NOT Permitted</h2>
|
|
<ul>
|
|
<li>Content that is considered NSFL (Not Safe For Life).</li>
|
|
<li>Content that is prohibited by US federal law (Sexualization of minors, any form of violence, violations of human rights, etc).</li>
|
|
<li>Copyrighted media, without the consent of the copyright holder/publisher.</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 NewPipe"><span class="icon icon-circle-arrow-left"></span> Previous</a>
|
|
|
|
</div>
|
|
|
|
|
|
<hr/>
|
|
|
|
<div role="contentinfo">
|
|
<!-- Copyright etc -->
|
|
|
|
</div>
|
|
|
|
Built with <a href="https://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" aria-label="versions">
|
|
<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>
|
|
<script defer>
|
|
window.onload = function () {
|
|
SphinxRtdTheme.Navigation.enable(true);
|
|
};
|
|
</script>
|
|
|
|
</body>
|
|
</html>
|