Skip to content

Commit adffae9

Browse files
Merge branch 'dev' into Refactor-Optional
# Conflicts: # extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeMetaInfoHelper.java # extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeParsingHelper.java # extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeStreamExtractor.java # extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeStreamInfoItemExtractor.java
2 parents f5c682d + e5eb463 commit adffae9

733 files changed

Lines changed: 60202 additions & 40246 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,23 +25,23 @@ jobs:
2525
build-and-test:
2626
runs-on: ubuntu-latest
2727
steps:
28-
- uses: actions/checkout@v5
28+
- uses: actions/checkout@v6
2929

30-
- name: set up JDK 11
30+
- name: set up JDK
3131
uses: actions/setup-java@v5
3232
with:
33-
java-version: '11'
33+
java-version: 21
3434
distribution: 'temurin'
3535

3636
- name: Cache Gradle wrapper dists
37-
uses: actions/cache@v4
37+
uses: actions/cache@v5
3838
with:
3939
path: ~/.gradle/wrapper/dists
4040
key: ${{ runner.os }}-gradle-wrapper-dists-${{ hashFiles('gradle/wrapper/**') }}
4141
restore-keys: ${{ runner.os }}-gradle-wrapper-dists
4242

4343
- name: Cache Gradle dependencies
44-
uses: actions/cache@v4
44+
uses: actions/cache@v5
4545
with:
4646
path: ~/.gradle/caches
4747
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
@@ -63,7 +63,7 @@ jobs:
6363
-Dcom.google.protobuf.error_on_unsafe_pre22_gencode
6464
6565
- name: Upload test reports when failure occurs
66-
uses: actions/upload-artifact@v5
66+
uses: actions/upload-artifact@v7
6767
if: failure()
6868
with:
6969
name: NewPipeExtractor-test-reports

.github/workflows/docs.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,16 @@ jobs:
1313
build-and-deploy-docs:
1414
runs-on: ubuntu-latest
1515
steps:
16-
- uses: actions/checkout@v5
16+
- uses: actions/checkout@v6
1717

18-
- name: set up JDK 11
18+
- name: set up JDK
1919
uses: actions/setup-java@v5
2020
with:
21-
java-version: '11'
21+
java-version: 21
2222
distribution: 'temurin'
2323

2424
- name: Cache Gradle dependencies
25-
uses: actions/cache@v4
25+
uses: actions/cache@v5
2626
with:
2727
path: ~/.gradle/caches
2828
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}

.github/workflows/snapshot.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Publish snapshot
2+
3+
on:
4+
push:
5+
branches:
6+
- dev
7+
workflow_dispatch:
8+
9+
jobs:
10+
build-and-deploy-docs:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- uses: actions/checkout@v6
14+
15+
- name: set up JDK
16+
uses: actions/setup-java@v5
17+
with:
18+
java-version: 21
19+
distribution: 'temurin'
20+
21+
- name: Cache Gradle dependencies
22+
uses: actions/cache@v5
23+
with:
24+
path: ~/.gradle/caches
25+
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
26+
restore-keys: ${{ runner.os }}-gradle
27+
28+
- name: Publish snapshot
29+
env:
30+
PGP_PRIVATE_SIGNING_KEY: ${{ secrets.PGP_PRIVATE_SIGNING_KEY }}
31+
PGP_PRIVATE_SIGNING_KEY_PASSWORD: ${{ secrets.PGP_PRIVATE_SIGNING_KEY_PASSWORD }}
32+
SONATYPE_MAVEN_CENTRAL_USERNAME: ${{ secrets.SONATYPE_MAVEN_CENTRAL_USERNAME }}
33+
SONATYPE_MAVEN_CENTRAL_PASSWORD: ${{ secrets.SONATYPE_MAVEN_CENTRAL_PASSWORD }}
34+
run: ./gradlew publishSnapshotPublicationToSonatypeRepository
35+
36+
- name: Upload metadata
37+
uses: actions/upload-artifact@v7
38+
with:
39+
name: NewPipeExtractor-Snapshot
40+
path: extractor/build/publications/snapshot/**

README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,24 @@ If you're using Gradle, you could add NewPipe Extractor as a dependency with the
2525
2626
### Testing changes
2727

28+
#### Maven Central
29+
30+
NewPipe Extractor's snapshots are available on Maven Central's snapshot repository. These versions
31+
are based on the commit's short hash (for e.g. `git rev-parse --short HEAD`) and are available for
32+
90 days since the date of publication/commit.
33+
34+
```kotlin
35+
repositories {
36+
maven(url = "https://central.sonatype.com/repository/maven-snapshots/")
37+
}
38+
39+
dependencies {
40+
implementation("net.newpipe:extractor:${LAST_COMMIT_SHORT_HASH}-SNAPSHOT")
41+
}
42+
```
43+
44+
#### Local
45+
2846
To test changes quickly you can build the library locally. A good approach would be to add something like the following to your `settings.gradle`:
2947

3048
```groovy

build.gradle

Lines changed: 0 additions & 91 deletions
This file was deleted.

build.gradle.kts

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
/*
2+
* SPDX-FileCopyrightText: 2025 NewPipe e.V. <https://newpipe-ev.de>
3+
* SPDX-License-Identifier: GPL-3.0-or-later
4+
*/
5+
6+
plugins {
7+
alias(libs.plugins.google.protobuf) apply false
8+
}
9+
10+
allprojects {
11+
apply(plugin = "java-library")
12+
13+
version = "v0.26.1"
14+
15+
tasks.withType<JavaCompile> {
16+
options.encoding = Charsets.UTF_8.toString()
17+
}
18+
19+
extensions.configure<JavaPluginExtension> {
20+
toolchain {
21+
languageVersion.set(JavaLanguageVersion.of(11))
22+
}
23+
}
24+
}
25+
26+
subprojects {
27+
// https://discuss.gradle.org/t/best-approach-gradle-multi-module-project-generate-just-one-global-javadoc/18657/21
28+
// Fixes unknown tag @implNote; the other two were added precautionary
29+
tasks.withType<Javadoc>().configureEach {
30+
(options as StandardJavadocDocletOptions).apply {
31+
encoding = Charsets.UTF_8.toString()
32+
links = listOf("https://docs.oracle.com/javase/11/docs/api/")
33+
tags = listOf(
34+
"apiNote:a:API Note:",
35+
"implSpec:a:Implementation Requirements:",
36+
"implNote:a:Implementation Note:"
37+
)
38+
}
39+
}
40+
}
41+
42+
tasks.register<Javadoc>("aggregatedJavadocs") {
43+
group = "documentation"
44+
description = "Generates aggregated Javadocs for all subprojects."
45+
(options as StandardJavadocDocletOptions).apply {
46+
encoding = Charsets.UTF_8.toString()
47+
links = listOf("https://docs.oracle.com/javase/11/docs/api/")
48+
title = "NewPipe Extractor ${rootProject.version}"
49+
tags = listOf(
50+
"apiNote:a:API Note:",
51+
"implSpec:a:Implementation Requirements:",
52+
"implNote:a:Implementation Note:"
53+
)
54+
}
55+
56+
dependsOn(subprojects.map { it.tasks.named("classes") })
57+
58+
subprojects.forEach { proj ->
59+
proj.extensions.findByType(JavaPluginExtension::class.java)?.sourceSets?.getByName("main")?.let { main ->
60+
source(main.allJava)
61+
classpath += main.output + proj.configurations.getByName("compileClasspath")
62+
}
63+
}
64+
}

extractor/build.gradle

Lines changed: 0 additions & 71 deletions
This file was deleted.

0 commit comments

Comments
 (0)