Giter VIP home page Giter VIP logo

youtube-dl-android's Introduction

youtube-dl-android

Android library wrapper for youtube-dl executable. Based on yausername's youtubedl-android but with ability to download binary files at runtime to decrease apk size.

Credits


Installation

Gradle

Step 1 : Add jitpack repository to your project build file

allprojects {
    repositories {
        maven { url 'https://jitpack.io' }
    }
}

Step 2: Add the dependency

dependencies {
    implementation 'com.github.bawaviki.youtube-dl-android:library:0.7.+'
}

Optional FFmpeg dependency can also be added

dependencies {
    implementation 'com.github.bawaviki.youtube-dl-android:library:0.7.+'
    implementation 'com.github.bawaviki.youtube-dl-android:ffmpeg:0.7.+'
}

Usage

  • youtube-dl executable and python 3.7 are bundled in the library.
  • Initialize library, preferably in onCreate.
try {
    YoutubeDL.getInstance().init(getApplication(),this);
} catch (YoutubeDLException e) {
    Log.e(TAG, "failed to initialize youtubedl-android", e);
}
  • Downloading / custom command (A detailed example can be found in the sample app)
File youtubeDLDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "youtubedl-android");
YoutubeDLRequest request = new YoutubeDLRequest("https://vimeo.com/22439234");
request.setOption("-o", youtubeDLDir.getAbsolutePath() + "/%(title)s.%(ext)s");
YoutubeDL.getInstance().execute(request, (progress, etaInSeconds) -> {
    System.out.println(String.valueOf(progress) + "% (ETA " + String.valueOf(etaInSeconds) + " seconds)");
});
  • Get stream info (equivalent to --dump-json of youtube-dl)
VideoInfo streamInfo = YoutubeDL.getInstance().getInfo("https://vimeo.com/22439234");
System.out.println(streamInfo.getTitle());
  • youtube-dl supports myriad different options which be seen here

  • youtube-dl binary can be updated from within the library

YoutubeDL.getInstance().updateYoutubeDL(getApplication());

FFmpeg

If you wish to use ffmpeg features of youtube-dl (e.g. --extract-audio), include and initialize the ffmpeg library(you only need to Initialize FFmpeg library youtube-dl already initialize in this).

try {
    FFmpeg.getInstance().init(getApplication(),this);
} catch (YoutubeDLException e) {
    Log.e(TAG, "failed to initialize ffmpeg", e);
}

Sample app

Download Example Streaming Example


Docs

  • Though not required for just using this library, documentation on building python for android can be seen here. Same for ffmpeg here.
  • youtubedl-android uses lazy extractors based build of youtube-dl (youtubedl-lazy)

youtube-dl-android's People

Contributors

bawaviki avatar yausername avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.