Convert Figma logo to code with AI

TeamNewPipe logoNewPipe

A libre lightweight streaming front-end for Android.

31,338
3,049
31,338
1,228

Top Related Projects

82,065

A feature-rich command-line audio/video downloader

youtube-dl for android

Material Design file manager for Android

Termux - a terminal emulator application for Android OS extendible by variety of packages.

Kotlin Multiplatform Music Downloader, Supports Spotify / Gaana / Youtube Music / Jio Saavn / SoundCloud.

Quick Overview

NewPipe is a lightweight, open-source YouTube client for Android. It offers a privacy-focused alternative to the official YouTube app, allowing users to watch videos, listen to audio, and download content without requiring a Google account or sending personal data to Google's servers.

Pros

  • Privacy-focused: Does not require Google Services or a Google account
  • Ad-free experience with no tracking
  • Supports background playback and picture-in-picture mode
  • Allows downloading of videos and audio for offline use

Cons

  • Cannot access user-specific features like subscriptions or playlists tied to a Google account
  • May occasionally break due to changes in YouTube's API
  • Limited features compared to the official YouTube app
  • Requires manual updates as it's not available on the Google Play Store

Getting Started

To get started with NewPipe:

  1. Enable installation from unknown sources in your Android settings.
  2. Visit the NewPipe website or F-Droid to download the APK.
  3. Install the APK on your Android device.
  4. Open the app and start using it to search for and watch YouTube videos.

For developers interested in contributing:

  1. Fork the NewPipe GitHub repository.
  2. Clone your fork: git clone https://github.com/YourUsername/NewPipe.git
  3. Set up the project in Android Studio.
  4. Make your changes and submit a pull request to the main repository.

Competitor Comparisons

82,065

A feature-rich command-line audio/video downloader

Pros of yt-dlp

  • Supports a wider range of websites and platforms beyond YouTube
  • More powerful command-line interface with extensive options
  • Faster downloads and better handling of rate limiting

Cons of yt-dlp

  • Requires more technical knowledge to use effectively
  • No built-in GUI, which may be less user-friendly for some
  • Primarily focused on downloading, not streaming

Code Comparison

NewPipe (Java):

@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
    if (loadedImage != null) {
        thumbnailView.setImageBitmap(loadedImage);
    }
}

yt-dlp (Python):

def download(self, url_list):
    for url in url_list:
        with YoutubeDL(self.ydl_opts) as ydl:
            ydl.download([url])

NewPipe is an Android app for streaming YouTube content, while yt-dlp is a command-line tool for downloading videos from various platforms. NewPipe offers a user-friendly interface and focuses on streaming, making it more accessible for casual users. yt-dlp, on the other hand, provides more flexibility and power for downloading content from a wide range of sources, but requires more technical expertise to use effectively.

youtube-dl for android

Pros of youtubedl-android

  • Utilizes youtube-dl, providing broader support for various websites
  • Offers more flexibility in download options and formats
  • Smaller app size, potentially using less device resources

Cons of youtubedl-android

  • Less user-friendly interface compared to NewPipe
  • May require more technical knowledge to use effectively
  • Lacks some features like background playback and subscriptions

Code Comparison

NewPipe:

public class DownloadManager extends Service {
    private NotificationManager notificationManager;
    private DownloadManagerListener listener;
    // ...
}

youtubedl-android:

public class YoutubeDLRequest {
    private String url;
    private List<String> options = new ArrayList<>();
    // ...
}

NewPipe focuses on a service-based approach for downloads, while youtubedl-android emphasizes request handling. NewPipe's code structure suggests a more integrated system within the app, whereas youtubedl-android's approach allows for more flexibility in constructing download requests.

Both projects aim to provide YouTube downloading capabilities on Android, but they differ in their implementation and feature sets. NewPipe offers a more comprehensive YouTube alternative with additional features, while youtubedl-android focuses on providing a flexible downloading solution using youtube-dl.

Material Design file manager for Android

Pros of MaterialFiles

  • More comprehensive file management features, including support for various file systems and protocols
  • Cleaner, more modern Material Design user interface
  • Active development with frequent updates and bug fixes

Cons of MaterialFiles

  • Larger app size due to more extensive feature set
  • Potentially more complex for users who only need basic file management
  • Limited to file management functionality, unlike NewPipe's media focus

Code Comparison

MaterialFiles (Java):

public class FileSystemProvider extends DocumentsProvider {
    @Override
    public Cursor queryRoots(String[] projection) {
        // Implementation for querying root directories
    }
}

NewPipe (Java):

public class NewPipeExtractor {
    public static StreamExtractor getStreamExtractor(String url) throws ExtractionException {
        // Implementation for extracting stream information
    }
}

The code snippets highlight the different focus areas of the two projects. MaterialFiles deals with file system operations, while NewPipe focuses on media extraction and playback.

Termux - a terminal emulator application for Android OS extendible by variety of packages.

Pros of Termux

  • Provides a full Linux terminal environment on Android devices
  • Supports a wide range of Linux packages and tools
  • Highly customizable and extensible through package management

Cons of Termux

  • Steeper learning curve for non-technical users
  • Limited graphical user interface capabilities
  • May require root access for certain advanced features

Code Comparison

NewPipe (Java):

@Override
protected void onResume() {
    super.onResume();
    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
    if (sharedPreferences.getBoolean(Constants.KEY_THEME_CHANGE, false)) {
        sharedPreferences.edit().putBoolean(Constants.KEY_THEME_CHANGE, false).apply();
        ActivityCompat.recreate(this);
    }
}

Termux (Java):

@Override
public void onCreate() {
    super.onCreate();
    NativeLoader.loadNativeLibraries();
    TermuxInstaller.setupIfNeeded(this);
    ForegroundServiceNotification.setupNotificationChannel(this);
    startForegroundService(new Intent(this, TermuxService.class));
}

Summary

NewPipe is a lightweight YouTube frontend app, while Termux is a terminal emulator and Linux environment for Android. NewPipe focuses on providing a user-friendly interface for streaming content, whereas Termux offers a powerful command-line experience for advanced users. The code snippets demonstrate the different focuses of each project, with NewPipe handling theme changes and Termux setting up its Linux environment.

Kotlin Multiplatform Music Downloader, Supports Spotify / Gaana / Youtube Music / Jio Saavn / SoundCloud.

Pros of SpotiFlyer

  • Supports multiple music streaming platforms (Spotify, YouTube, Gaana, etc.)
  • Offers cross-platform compatibility (Android, iOS, Desktop)
  • Provides a user-friendly interface for downloading music

Cons of SpotiFlyer

  • Limited to audio downloads only
  • Smaller community and less frequent updates
  • May face legal challenges due to its focus on downloading copyrighted content

Code Comparison

NewPipe (Java):

@Override
protected void onResume() {
    super.onResume();
    if (currentWorker != null && currentWorker.isRunning()) {
        progressBar.setVisibility(View.VISIBLE);
    }
}

SpotiFlyer (Kotlin):

override fun onResume() {
    super.onResume()
    if (currentDownloadTask?.isActive == true) {
        progressBar.visibility = View.VISIBLE
    }
}

Both projects use similar patterns for handling UI updates when resuming the activity, but SpotiFlyer uses Kotlin's more concise syntax and null-safe operators.

NewPipe focuses on streaming various content types from YouTube and other platforms, while SpotiFlyer specializes in downloading music from multiple streaming services. NewPipe has a larger community and more frequent updates, but SpotiFlyer offers broader platform support for music downloads.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

We are planning to rewrite large chunks of the codebase, to bring about a new, modern and stable NewPipe!

Please do not open pull requests for new features now, only bugfix PRs will be accepted.

NewPipe

A libre lightweight streaming front-end for Android.

Get it on F-Droid


ScreenshotsSupported ServicesDescriptionFeaturesInstallation and updatesContributionDonateLicense

WebsiteBlogFAQPress


Read this document in other languages: Deutsch, English, Español, Français, हिन्दी, Italiano, 한국어, Português Brasil, Polski, ਪੰਜਾਬੀ , 日本語, Română, Soomaali, Türkçe, 正體中文, অসমীয়া, Српски

[!warning] THIS APP IS IN BETA, SO YOU MAY ENCOUNTER BUGS. IF YOU DO, OPEN AN ISSUE IN OUR GITHUB REPOSITORY BY FILLING OUT THE ISSUE TEMPLATE.

PUTTING NEWPIPE, OR ANY FORK OF IT, INTO THE GOOGLE PLAY STORE VIOLATES THEIR TERMS AND CONDITIONS.

Screenshots



Supported Services

NewPipe currently supports these services:

As you can see, NewPipe supports multiple video and audio services. Though it started off with YouTube, other people have added more services over the years, making NewPipe more and more versatile!

Partially due to circumstance, and partially due to its popularity, YouTube is the best supported out of these services. If you use or are familiar with any of these other services, please help us improve support for them! We're looking for maintainers for SoundCloud and PeerTube.

If you intend to add a new service, please get in touch with us first! Our docs provide more information on how a new service can be added to the app and to the NewPipe Extractor.

Description

NewPipe works by fetching the required data from the official API (e.g. PeerTube) of the service you're using. If the official API is restricted (e.g. YouTube) for our purposes, or is proprietary, the app parses the website or uses an internal API instead. This means that you don't need an account on any service to use NewPipe.

Also, since they are free and open source software, neither the app nor the Extractor use any proprietary libraries or frameworks, such as Google Play Services. This means you can use NewPipe on devices or custom ROMs that do not have Google apps installed.

Features

  • Watch videos at resolutions up to 4K
  • Listen to audio in the background, only loading the audio stream to save data
  • Popup mode (floating player, aka Picture-in-Picture)
  • Watch live streams
  • Show/hide subtitles/closed captions
  • Search videos and audios (on YouTube, you can specify the content language as well)
  • Enqueue videos (and optionally save them as local playlists)
  • Show/hide general information about videos (such as description and tags)
  • Show/hide next/related videos
  • Show/hide comments
  • Search videos, audios, channels, playlists and albums
  • Browse videos and audios within a channel
  • Subscribe to channels (yes, without logging into any account!)
  • Get notifications about new videos from channels you're subscribed to
  • Create and edit channel groups (for easier browsing and management)
  • Browse video feeds generated from your channel groups
  • View and search your watch history
  • Search and watch playlists (these are remote playlists, which means they're fetched from the service you're browsing)
  • Create and edit local playlists (these are created and saved within the app, and have nothing to do with any service)
  • Download videos/audios/subtitles (closed captions)
  • Open in Kodi
  • Watch/Block age-restricted material

Installation and updates

You can install NewPipe using one of the following methods:

  1. Add our custom repo to F-Droid and install it from there. The instructions are here: https://newpipe.net/FAQ/tutorials/install-add-fdroid-repo/
  2. Download the APK from GitHub Releases and install it.
  3. Update via F-Droid. This is the slowest method of getting updates, as F-Droid must recognize changes, build the APK itself, sign it, and then push the update to users.
  4. Build a debug APK yourself. This is the fastest way to get new features on your device, but is much more complicated, so we recommend using one of the other methods.
  5. If you're interested in a specific feature or bugfix provided in a Pull Request in this repo, you can also download its APK from within the PR. Read the PR description for instructions. The great thing about PR-specific APKs is that they're installed side-by-side the official app, so you don't have to worry about losing your data or messing anything up.

We recommend method 1 for most users. APKs installed using method 1 or 2 are compatible with each other (meaning that if you installed NewPipe using either method 1 or 2, you can also update NewPipe using the other), but not with those installed using method 3. This is due to the same signing key (ours) being used for 1 and 2, but a different signing key (F-Droid's) being used for 3. Building a debug APK using method 4 excludes a key entirely. Signing keys help ensure that a user isn't tricked into installing a malicious update to an app. When using method 5, each APK is signed with a different random key supplied by GitHub Actions, so you cannot even update it. You will have to backup and restore the app data each time you wish to use a new APK.

In the meanwhile, if you want to switch sources for some reason (e.g. NewPipe's core functionality breaks and F-Droid doesn't have the latest update yet), we recommend following this procedure:

  1. Back up your data via Settings > Backup and Restore > Export Database so you keep your history, subscriptions, and playlists
  2. Uninstall NewPipe
  3. Download the APK from the new source and install it
  4. Import the data from step 1 via Settings > Backup and Restore > Import Database

Note: when you're importing a database into the official app, always make sure that it is the one you exported from the official app. If you import a database exported from an APK other than the official app, it may break things. Such an action is unsupported, and you should only do so when you're absolutely certain you know what you're doing.

Contribution

Whether you have ideas, translations, design changes, code cleaning, or even major code changes, help is always welcome. The app gets better and better with each contribution, no matter how big or small! If you'd like to get involved, check our contribution notes.

Translation status

Donate

If you like NewPipe, you're welcome to send a donation. We prefer Liberapay, as it is both open-source and non-profit. For further info on donating to NewPipe, please visit our website.

Liberapay Visit NewPipe at liberapay.com Donate via Liberapay

Privacy Policy

The NewPipe project aims to provide a private, anonymous experience for using web-based media services. Therefore, the app does not collect any data without your consent. NewPipe's privacy policy explains in detail what data is sent and stored when you send a crash report, or leave a comment in our blog. You can find the document here.

License

GNU GPLv3 Image

NewPipe is Free Software: You can use, study, share, and improve it at will. Specifically you can redistribute and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.