{"id":15145862,"url":"https://github.com/teamnewpipe/newpipeextractor","last_synced_at":"2026-02-05T19:00:56.152Z","repository":{"id":37549719,"uuid":"83583832","full_name":"TeamNewPipe/NewPipeExtractor","owner":"TeamNewPipe","description":"NewPipe's core library for extracting data from streaming sites","archived":false,"fork":false,"pushed_at":"2026-01-28T09:52:10.000Z","size":163184,"stargazers_count":1719,"open_issues_count":177,"forks_count":517,"subscribers_count":71,"default_branch":"dev","last_synced_at":"2026-01-28T17:00:55.309Z","etag":null,"topics":["bandcamp","crawler","extractor","mediaccc","newpipe","peertube","scraper","soundcloud","youtube"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TeamNewPipe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"liberapay":"TeamNewPipe","custom":"https://newpipe.net/donate/"}},"created_at":"2017-03-01T17:50:17.000Z","updated_at":"2026-01-28T14:48:46.000Z","dependencies_parsed_at":"2023-09-22T21:00:17.685Z","dependency_job_id":"26e4b881-b10f-40d5-b04c-1ea7898218ea","html_url":"https://github.com/TeamNewPipe/NewPipeExtractor","commit_stats":{"total_commits":2075,"total_committers":80,"mean_commits":25.9375,"dds":0.8722891566265061,"last_synced_commit":"6e3a4a6d9de61eafb73e7eb1b714847b5077856d"},"previous_names":[],"tags_count":81,"template":false,"template_full_name":null,"purl":"pkg:github/TeamNewPipe/NewPipeExtractor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeamNewPipe%2FNewPipeExtractor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeamNewPipe%2FNewPipeExtractor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeamNewPipe%2FNewPipeExtractor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeamNewPipe%2FNewPipeExtractor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TeamNewPipe","download_url":"https://codeload.github.com/TeamNewPipe/NewPipeExtractor/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeamNewPipe%2FNewPipeExtractor/sbom","scorecard":{"id":138424,"data":{"date":"2025-08-04","repo":{"name":"github.com/TeamNewPipe/NewPipeExtractor","commit":"6f51a23fa5e8f821f8a066ab92a5800186fd64a9"},"scorecard":{"version":"v5.2.1-28-gc1d103a9","commit":"c1d103a9bb9f635ec7260bf9aa0699466fa4be0e"},"score":5.4,"checks":[{"name":"Code-Review","score":7,"reason":"Found 6/8 approved changesets -- score normalized to 7","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#packaging"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 15 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/ci.yml:22","Warn: topLevel 'contents' permission set to 'write': .github/workflows/docs.yml:10","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":9,"reason":"binaries present in source code","details":["Warn: binary detected: gradle/wrapper/gradle-wrapper.jar:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/TeamNewPipe/NewPipeExtractor/ci.yml/dev?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/TeamNewPipe/NewPipeExtractor/ci.yml/dev?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/TeamNewPipe/NewPipeExtractor/ci.yml/dev?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/TeamNewPipe/NewPipeExtractor/ci.yml/dev?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:65: update your workflow using https://app.stepsecurity.io/secureworkflow/TeamNewPipe/NewPipeExtractor/ci.yml/dev?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docs.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/TeamNewPipe/NewPipeExtractor/docs.yml/dev?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docs.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/TeamNewPipe/NewPipeExtractor/docs.yml/dev?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docs.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/TeamNewPipe/NewPipeExtractor/docs.yml/dev?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docs.yml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/TeamNewPipe/NewPipeExtractor/docs.yml/dev?enable=pin","Info:   0 out of   8 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#license"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 28 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-16T07:17:08.323Z","repository_id":37549719,"created_at":"2025-08-16T07:17:08.323Z","updated_at":"2025-08-16T07:17:08.323Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29130088,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T18:55:47.139Z","status":"ssl_error","status_checked_at":"2026-02-05T18:55:04.010Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bandcamp","crawler","extractor","mediaccc","newpipe","peertube","scraper","soundcloud","youtube"],"created_at":"2024-09-26T11:43:21.119Z","updated_at":"2026-02-05T19:00:56.139Z","avatar_url":"https://github.com/TeamNewPipe.png","language":"Java","readme":"# NewPipe Extractor\n\n[![CI](https://github.com/TeamNewPipe/NewPipeExtractor/actions/workflows/ci.yml/badge.svg?branch=dev\u0026event=schedule)](https://github.com/TeamNewPipe/NewPipeExtractor/actions/workflows/ci.yml) [![JIT Pack Badge](https://jitpack.io/v/teamnewpipe/NewPipeExtractor.svg)](https://jitpack.io/#teamnewpipe/NewPipeExtractor) [JDoc](https://teamnewpipe.github.io/NewPipeExtractor/javadoc/) • [Documentation](https://teamnewpipe.github.io/documentation/)\n\nNewPipe Extractor is a library for extracting things from streaming sites. It is a core component of [NewPipe](https://github.com/TeamNewPipe/NewPipe), but could be used independently.\n\n## Usage\n\nNewPipe Extractor is available at JitPack's Maven repo.\n\nIf you're using Gradle, you could add NewPipe Extractor as a dependency with the following steps:\n\n1. Add `maven { url 'https://jitpack.io' }` to the `repositories` in your `build.gradle`.\n2. Add `implementation 'com.github.teamnewpipe:NewPipeExtractor:INSERT_VERSION_HERE'` to the `dependencies` in your `build.gradle`. Replace `INSERT_VERSION_HERE` with the [latest release](https://github.com/TeamNewPipe/NewPipeExtractor/releases/latest).\n3. If you are using tools to minimize your project, make sure to keep the files below, by e.g. adding the following lines to your proguard file:\n ```\n## Rules for NewPipeExtractor\n-keep class org.mozilla.javascript.** { *; }\n-keep class org.mozilla.classfile.ClassFileWriter\n-dontwarn org.mozilla.javascript.tools.**\n```\n\n\u003e [!NOTE]\n\u003e To use NewPipe Extractor in Android projects with a `minSdk` below 33, [core library desugaring](https://developer.android.com/studio/write/java8-support#library-desugaring) with the `desugar_jdk_libs_nio` artifact is required.\n\n### Testing changes\n\nTo test changes quickly you can build the library locally. A good approach would be to add something like the following to your `settings.gradle`:\n\n```groovy\nincludeBuild('../NewPipeExtractor') {\n    dependencySubstitution {\n        substitute module('com.github.teamnewpipe:NewPipeExtractor') with project(':extractor')\n    }\n}\n```\n\nAnother approach would be to use the local Maven repository, here's a gist of how to use it:\n\n1. Add `mavenLocal()` in your project `repositories` list (usually as the first entry to give priority above the others).\n2. It's _recommended_ that you change the `version` of this library (e.g. `LOCAL_SNAPSHOT`).\n3. Run gradle's `ìnstall` task to deploy this library to your local repository (using the wrapper, present in the root of this project: `./gradlew install`)\n4. Change the dependency version used in your project to match the one you chose in step 2 (`implementation 'com.github.teamnewpipe:NewPipeExtractor:LOCAL_SNAPSHOT'`)\n\n\n\u003e [!TIP]\n\u003e Tip for Android Studio users: After you make changes and run the `install` task, use the menu option `File → \"Sync with File System\"` to refresh the library in your project.\n\n## Supported sites\n\nThe following sites are currently supported:\n\n- YouTube\n- SoundCloud\n- media.ccc.de\n- PeerTube (no P2P)\n- Bandcamp\n\n## License\n\n[![GNU GPLv3 Image](https://www.gnu.org/graphics/gplv3-127x51.png)](https://www.gnu.org/licenses/gpl-3.0.en.html)  \n\nNewPipe Extractor is Free Software: You can use, study share and improve it at your\nwill. Specifically you can redistribute and/or modify it under the terms of the\n[GNU General Public License](https://www.gnu.org/licenses/gpl.html) as\npublished by the Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.  \n","funding_links":["https://liberapay.com/TeamNewPipe","https://newpipe.net/donate/"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteamnewpipe%2Fnewpipeextractor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteamnewpipe%2Fnewpipeextractor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteamnewpipe%2Fnewpipeextractor/lists"}