Skip to content

Commit cd75e7d

Browse files
ShareASmileStypoxProfpatschdependabot[bot]TobiGr
authored
Merge pull request #61 from SkyTubeTeam/dev
* [MediaCCC] Allow obtaining channel tab extractor from scratch i.e. without needing to pass through the conference/channel extractor This was needed because clients (like NewPipe) might rely on link handlers to hold as little data as possible, since they might be kept around for long or passed around in system transactions, so this commit allows obtaining a standalone link handler that does not hold a JsonObject within itself. * [MediaCCC] Add ChannelTabExtractorTest * [MediaCCC] Fix lambda link handler keeping reference to extractor This caused problems in NewPipe, because extractors are not serializable, and well, keeping references to them is a bad idea anyway. * LocaleCompat.forLanguageTag: return Optional if parsing fails It’s not obvious that the function will fail in some cases and throw an `IllegalArgumentException`. So instead of just failing if parsing fails, return an Optional that all callers have to decide what to do (e.g. the YoutubeExtractor can just ignore the locale in that case, like it does with most other fields in the json if they are unexpected). * Bump actions/cache from 3 to 4 Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](actions/cache@v3...v4) --- updated-dependencies: - dependency-name: actions/cache dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> * [PeerTube] Add support for stream frames/storyboards extraction Implement PeerTubeStreamExtractor.getFrames() * [PeerTube] Add test for segments and framesets * Bump org.junit:junit-bom from 5.10.0 to 5.10.2 Bumps [org.junit:junit-bom](https://github.com/junit-team/junit5) from 5.10.0 to 5.10.2. - [Release notes](https://github.com/junit-team/junit5/releases) - [Commits](junit-team/junit-framework@r5.10.0...r5.10.2) --- updated-dependencies: - dependency-name: org.junit:junit-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * Bump actions/upload-artifact from 3 to 4 Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](actions/upload-artifact@v3...v4) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> * [PeerTube] Fix tests for "What is PeerTube?" video * [YouTube] Detect new account termination messages * Update mocks for YoutubeChannelExtractorTest.NotAvailable * [SoundCloud] Fix SoundcloudSearchExtractorTest.NoNextPage Search did not return no item at all, causing a NothingFoundException. New search query yields three items on first page * Make getCommentText @nonnull * Throw ParsingException instead of IllegalArg * [YouTube] Support new A/B tested comments data Also improve current comments code by removing outdated comment renderer data. * [YouTube] Add support for styles in attributed descriptions Also refactor descriptions parsing. * [YouTube] Replace link text with accessibility label * [YouTube] Cleanup description helper Remove unneeded isClose field, and make constants private * [YouTube] Add YoutubeDescriptionHelperTest * [YouTube] Avoid XSS attacks in description or comments * [YouTube] Add missing prettyPrint query parameter to mixes continuations * [YouTube] Remove usage of API keys for InnerTube requests, bump versions The API keys are not used anymore by official clients in almost all cases (still used by the Android app until it gets a configuration) for all requests we made. Clients and device OS versions have been bumped to their latest stable version known. Methods and fields related to API keys have been renamed or deleted if they're no longer relevant. * [YouTube] Update Android client player parameters YouTube disabled the effectiveness of the parameters which were used (the player response we get redirects to another video), but new parameters which work around Android's client integrity checks have been found. * [YouTube] Fix YoutubeStreamExtractorDefaultTest tests * [YouTube] Fix YoutubeStreamExtractorRelatedMixTest * [YouTube] Add support for new crisis meta info action data The new action data can return multiple contact actions instead of only one, which will be concatenated by a new line return. This commit fixes tests of the CrisisResources test class of YoutubeSearchExtractorTest. * [YouTube] Fix InteractiveTabbedHeader.testTabs test YouTube now returns a Shorts tab for InteractiveTabbedHeader gaming channels, which contains Shorts about the game of the topic channel but are not uploaded on the game topic channel. As this tab is already supported by the extractor, fetching a gaming topic channel now returns a tab instead of none. Channel name and channel URL of these Shorts needs to be set to null in a separate commit, as Shorts on this tab do not have the topic channel as their uploader. * [YouTube] Update mocks * [YouTube] Improve meta info code for review * [YouTube] Create constants for client names/versions * Improve assertTabsContain() to also check size * Fix JDoc Add Checkstyle exception for LineLength in JDoc links. See https://github.com/TeamNewPipe/NewPipeExtractor/actions/runs/8804403691/job/24164703883 * [PeerTube] Fix test * Bump com.github.spotbugs:spotbugs-annotations from 4.8.3 to 4.8.5 Bumps [com.github.spotbugs:spotbugs-annotations](https://github.com/spotbugs/spotbugs) from 4.8.3 to 4.8.5. - [Release notes](https://github.com/spotbugs/spotbugs/releases) - [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md) - [Commits](spotbugs/spotbugs@4.8.3...4.8.5) --- updated-dependencies: - dependency-name: com.github.spotbugs:spotbugs-annotations dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * Bump org.mozilla:rhino from 1.7.13 to 1.7.15 Bumps [org.mozilla:rhino](https://github.com/mozilla/rhino) from 1.7.13 to 1.7.15. - [Release notes](https://github.com/mozilla/rhino/releases) - [Changelog](https://github.com/mozilla/rhino/blob/master/RELEASE-NOTES.md) - [Commits](https://github.com/mozilla/rhino/commits) --- updated-dependencies: - dependency-name: org.mozilla:rhino dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * Fix JDoc YoutubePostLiveStreamDvrDashManifestCreator.java:90: error: unexpected end tag: </p> * version 0.24.0 * [PeerTube] Fix test UploaderName was changed by user * Bump peaceiris/actions-gh-pages from 3 to 4 Bumps [peaceiris/actions-gh-pages](https://github.com/peaceiris/actions-gh-pages) from 3 to 4. - [Release notes](https://github.com/peaceiris/actions-gh-pages/releases) - [Changelog](https://github.com/peaceiris/actions-gh-pages/blob/main/CHANGELOG.md) - [Commits](peaceiris/actions-gh-pages@v3...v4) --- updated-dependencies: - dependency-name: peaceiris/actions-gh-pages dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> * [PeerTube] Fix testing comment content The comment is not available anymore. * [PeerTube] Fix test for like count Number changed * Bump com.github.spotbugs:spotbugs-annotations from 4.8.5 to 4.8.6 Bumps [com.github.spotbugs:spotbugs-annotations](https://github.com/spotbugs/spotbugs) from 4.8.5 to 4.8.6. - [Release notes](https://github.com/spotbugs/spotbugs/releases) - [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md) - [Commits](spotbugs/spotbugs@4.8.5...4.8.6) --- updated-dependencies: - dependency-name: com.github.spotbugs:spotbugs-annotations dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * Bump org.junit:junit-bom from 5.10.2 to 5.10.3 Bumps [org.junit:junit-bom](https://github.com/junit-team/junit5) from 5.10.2 to 5.10.3. - [Release notes](https://github.com/junit-team/junit5/releases) - [Commits](junit-team/junit-framework@r5.10.2...r5.10.3) --- updated-dependencies: - dependency-name: org.junit:junit-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * Bump com.google.code.gson:gson from 2.10.1 to 2.11.0 Bumps [com.google.code.gson:gson](https://github.com/google/gson) from 2.10.1 to 2.11.0. - [Release notes](https://github.com/google/gson/releases) - [Changelog](https://github.com/google/gson/blob/main/CHANGELOG.md) - [Commits](google/gson@gson-parent-2.10.1...gson-parent-2.11.0) --- updated-dependencies: - dependency-name: com.google.code.gson:gson dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * [Youtube] Adjust throttling function extraction to changes (TeamNewPipe#1191) * [Youtube] Adjust throttling function extraction to changes --------- Co-authored-by: Stypox <[email protected]> * [Youtube] Adjust throttling function extraction to changes (TeamNewPipe#1191) * [Youtube] Adjust throttling function extraction to changes --------- Co-authored-by: Stypox <[email protected]> * [Bandcamp] Update artist page detection Bandcamp changed the way the footer is rendered. Therefore, we check for a link to the cart page instead. * Use the new URL encode/decode methods introduced in Java 10 (TeamNewPipe#1196) * Use Java 10 URLDecoder/URLEncoder methods * Simplify compatParseMap * [Bandcamp] Null-safe url catenation in track playlist Previously, if no URL was provided due to the track being a preorder or unpaid track that doesn't have its own public page, we would catenate the artist URL and null to a nonsensical string. This invalid URL would also be used to try fetching a thumbnail URL. The downstream behavior of the NewPipe client is only marginally improved, as it now no longer throws visible exceptions due to the missing thumbnails, but still gives an unfriendly error upon clicking the item that has a `null` URL. * [Bandcamp] Show additional info in radio kiosk A newer version of the radio list API delivers additional fields. Thanks @crisp5. * Add support for on.soundcloud.com urls (TeamNewPipe#1179) Add support for on.soundcloud.com urls Fixes TeamNewPipe#1178 Co-authored-by: TobiGr <[email protected]> * [Bandcamp] Upgrade incoming links to HTTPS * [YouTube] Workaround 403s on streaming URLs of WEB client after some time These changes work around an anti-bot token, for which its requirement is A/B tested on the WEB client. In this test, streaming URLs of this client return HTTP errors 403 if the token is not provided after some time. It also allows to not fetch the JavaScript player for non-age restricted videos, reducing data usage. The TVHTML5 embed client is now only fetched in the case of age-restricted videos. The methods forceFetchAndroidClient and forceFetchIosClient of YoutubeStreamExtractor have been removed, as they are now not needed anymore. These changes also break the extraction of appropriate error states for private and deleted videos and invalid video IDs. * [YouTube] Update clients info * [YouTube] Fix YoutubeSearchExtractorTest.CrisisResources The "blue whale" search query does not return a crisis resource panel anymore, so it was changed to a different word, "suicide". * [YouTube] Fix some YoutubeStreamExtractorDefaultTest tests - Fix typo in folder name of DescriptionTestPewdiepie test; - Fix constant usage of DownloaderTestImpl as download implementation for UnlistedTest and CCLicensed tests. * [YouTube] Update mocks * [YouTube] Fix JavaScript n parameter decoding function name extraction This commits fixes extraction of the function name decoding the n parameter for HTML5 clients' streaming URLs for YouTube base JavaScript player 3400486c. Two new regexes have been added to the existing ones. All regexes and what they extract has been documented. * [YouTube] Don't provide streaming URLs which have an non-decoded n param This param used to throttle bandwidth of streaming URLs which have this parameter when the correct value is not provided but it is not the case anymore, as the streaming URLs return now an HTTP response code 403 in this case. * [YouTube] Do not get twice runs array in YoutubeParsingHelper The runs object was computed twice in getTextFromObject and getUrlFromObject methods, leading to unneeded search costs. This has been avoided by storing the array in method variables. * [YouTube] Support playlists as URL navigation endpoints * [YouTube] Move channel header's verified status code to YoutubeChannelHelper Also throw an exception when we cannot get the verified status of a channel in YoutubeChannelExtractor due to a missing channelHeader, if the channel has no channelAgeGateRenderer. * [YouTube] Add base implementation for show InfoItems As there are multiple show UI elements which share a lot of common data, a base implementation, an abstract class named YoutubeBaseShowInfoItemExtractor, has been created to handle common cases. * [YouTube] Add support for showRenderers in search results * [YouTube] Support shows in channels and provide verified status to items Also fix naming of info items' collection methods. * [YouTube] Add common methods to get ID, name and age gate object of channels Also move duplicate strings into constants and support pageHeader channel header in user channels on YoutubeChannelHelper methods. * [YouTube] Support pageHeader on user channels Also move duplicate strings into constants and add a missing default switch case. * [YouTube] Fix NPE when getting channel header for videos channel tab * [YouTube] Fix VSauce test of YoutubeChannelExtractorTest test class The channel description has been changed and some expected words have been removed. * [YouTube] Update mocks of YoutubeChannelTabExtractorTest.Shorts test For some reason, mocks of the continuation were not parsed. All mocks of the test have been updated to fix the issue. * Release v0.24.2 * Add issue templates (TeamNewPipe#1204) * Create bug report template * Create feature request template * Create config.yml --------- Co-authored-by: TobiGr <[email protected]> * Fix issue template dir name * [PeerTube] Fix parsing id for instances whose domain ends with a or c The pattern to detect the channel ID was faulty and e.g. the ID detected for "https://kolektiva.media/video-channels/documentary_channel" was "a/video-channels" which is wrong. A new pattern is added to distinguish between URLs and potential IDs because IDs must not start with a "/" while IDs inside an URL must. Fixes TeamNewPipe/NewPipe#11369 * Bump org.junit:junit-bom from 5.10.3 to 5.11.0 Bumps [org.junit:junit-bom](https://github.com/junit-team/junit5) from 5.10.3 to 5.11.0. - [Release notes](https://github.com/junit-team/junit5/releases) - [Commits](junit-team/junit-framework@r5.10.3...r5.11.0) --- updated-dependencies: - dependency-name: org.junit:junit-bom dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * [SoundCloud] Fix test: title changed * Update dependency coordinates due to case sensitivity in JitPack * [YouTube] Add support for shortsLockupViewModels This new UI data type is replacing the reelItemRenderer one. * [YouTube] Remove visitorData usage for shorts continuations It isn't required anymore and not used by extractor anymore since commit 5a6da5f, as the wrong page ID is used as a visitor data (the VerifiedStatus value as a string). * [YouTube] Update YoutubeChannelTabExtractorTest.Shorts test class mocks * [YouTube] Fix serialization of Videos channel tab when already fetched Also remove usage of Optional as fields as it is not a good practice. This simplifies in some places channel info extraction code. * [YouTube] Fix extraction of n param deobfuscation function name This commit adds two new regular expressions to parse the n parameter function. It also improves existing regular expressions by using the constant representing multiple characters instead of adding the one or multiple characters token manually in each regex for everything and not only function names. * Bump org.junit:junit-bom from 5.11.0 to 5.11.2 Bumps [org.junit:junit-bom](https://github.com/junit-team/junit5) from 5.11.0 to 5.11.2. - [Release notes](https://github.com/junit-team/junit5/releases) - [Commits](junit-team/junit-framework@r5.11.0...r5.11.2) --- updated-dependencies: - dependency-name: org.junit:junit-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * Bump org.junit:junit-bom from 5.11.2 to 5.11.3 Bumps [org.junit:junit-bom](https://github.com/junit-team/junit5) from 5.11.2 to 5.11.3. - [Release notes](https://github.com/junit-team/junit5/releases) - [Commits](junit-team/junit-framework@r5.11.2...r5.11.3) --- updated-dependencies: - dependency-name: org.junit:junit-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * Add documentation for faulty framesets * [YouTube] Add support for automatic dubbed and secondary tracks * Use JDoc and inherit doc * [YouTube] Fix Shorts' thumbnails extraction in their channel tab Wrong methods were used to access and extract the thumbnails' data. This has been fixed with this commit. * Update user agent to Firefox ESR 128 * [YouTube] Move channel verified status check from badges to a method This method will be used in more places such as the new playlist item data. Support for a new icon used in artist channels has been also added. * [YouTube] Add support for playlists lockupViewModels This new data type, A/B tested or rolled out at the time the changes are commited, is present on multiple surfaces. * Refactored Identifiers (TeamNewPipe#1205) Extractor.pageFetched -> Extractor.isPageFetched Stream.equalStats(Stream) is renamed to Stream.areStatsEqual(Stream) Stream.getBitrate() is renamed to Stream.getBitRate() * Revert "Refactored Identifiers (TeamNewPipe#1205)" This reverts commit 0de2241. * Make RecordingDownloader more resillient against ReCaptchaExceptions Implement a max number of requests per minute to prevent hitting reate limits and triggering ReCaptchaExceptions. This slows down the RecordingDownloader significantly and can be adjusted if needed. A request ist retried once when facing a ReCaptchaException. * [YouTube] Update mocks * Fix tests * Release v0.24.3 * Fix JDoc * fix: update iOS client, add visitor data to YouTube requests * move ProtoBuilder, add tests, fix incompatible rand call * update comment * iPhone 15 Pro Max instead of 16 in comments * Update extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeParsingHelper.java Co-authored-by: Stypox <[email protected]> * Release v0.24.4 * Make it really old Android compatible * Update ci.yml Remove the scheduled run * Bump dependencies Bump [com.puppycrawl.tools:checkstyle](https://github.com/checkstyle/checkstyle) from 10.4 to 10.12.2. * Fix line length * Make it really old Android compatible - again Base64 is not available on such Androids too --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Stypox <[email protected]> Co-authored-by: Profpatsch <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: TobiGr <[email protected]> Co-authored-by: AudricV <[email protected]> Co-authored-by: XiangRongLin <[email protected]> Co-authored-by: Fynn Godau <[email protected]> Co-authored-by: Isira Seneviratne <[email protected]> Co-authored-by: Marco Sirabella <[email protected]> Co-authored-by: opusforlife2 <[email protected]> Co-authored-by: floriegl <[email protected]> Co-authored-by: Thompson3142 <[email protected]> Co-authored-by: congyuluo <[email protected]> Co-authored-by: ThetaDev <[email protected]> Co-authored-by: Zsombor Gegesy <[email protected]>
2 parents 3402cdb + 3be6a7b commit cd75e7d

File tree

502 files changed

+37704
-33660
lines changed

Some content is hidden

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

502 files changed

+37704
-33660
lines changed
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
name: Bug report
2+
description: Create a bug report to help us improve
3+
labels: [bug]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
Thank you for helping to make the NewPipe Extractor better by reporting a bug. :hugs:
9+
10+
Please fill in as much information as possible about your bug so that we don't have to play "information ping-pong" and can help you immediately.
11+
12+
- type: checkboxes
13+
id: checklist
14+
attributes:
15+
label: "Checklist"
16+
options:
17+
- label: "I am able to reproduce the bug with the latest version given here: [CLICK THIS LINK](https://github.com/TeamNewPipe/NewPipeExtractor/releases/latest)."
18+
required: true
19+
- label: "I am aware that this issue is being opened for the NewPipe Extractor, NOT the [app](https://github.com/TeamNewPipe/NewPipe), and my bug report will be dismissed otherwise."
20+
required: true
21+
- label: "I made sure that there are *no existing issues* - [open](https://github.com/TeamNewPipe/NewPipeExtractor/issues) or [closed](https://github.com/TeamNewPipe/NewPipeExtractor/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
22+
required: true
23+
- label: "I have taken the time to fill in all the required details. I understand that the bug report will be dismissed otherwise."
24+
required: true
25+
- label: "This issue contains only one bug."
26+
required: true
27+
- label: "I have read and understood the [contribution guidelines](https://github.com/TeamNewPipe/NewPipe/blob/dev/.github/CONTRIBUTING.md)."
28+
required: true
29+
30+
- type: input
31+
id: extractor-version
32+
attributes:
33+
label: Affected version
34+
description: "In which NewPipe Extractor version did you encounter the bug?"
35+
placeholder: "x.xx.x"
36+
validations:
37+
required: true
38+
39+
- type: textarea
40+
id: steps-to-reproduce
41+
attributes:
42+
label: Steps to reproduce the bug
43+
description: |
44+
What did you do for the bug to show up?
45+
46+
If you can't cause the bug to show up again reliably (and hence don't have a proper set of steps to give us), please still try to give as many details as possible on how you think you encountered the bug.
47+
placeholder: |
48+
1. Init NewPipe with 'NewPipe.init(...)'
49+
2. Create a StreamExtractor for xyz: 'StreamExtractor e = YouTube.getStreamExtractor(xyz.com)'
50+
3. Get the description 'e.getDescription()'
51+
validations:
52+
required: true
53+
54+
- type: textarea
55+
id: expected-behavior
56+
attributes:
57+
label: Expected behavior
58+
description: |
59+
Tell us what you expect to happen.
60+
61+
- type: textarea
62+
id: actual-behavior
63+
attributes:
64+
label: Actual behavior
65+
description: |
66+
Tell us what happens with the steps given above.
67+
68+
- type: textarea
69+
id: screen-media
70+
attributes:
71+
label: Screenshots/Screen recordings
72+
description: |
73+
A picture or video is worth a thousand words.
74+
75+
If applicable, add screenshots or a screen recording to help explain your problem.
76+
GitHub supports uploading them directly in the text box.
77+
If your file is too big for Github to accept, try to compress it (ZIP-file) or feel free to paste a link to an image/video hoster here instead.
78+
79+
- type: textarea
80+
id: logs
81+
attributes:
82+
label: Logs
83+
description: |
84+
If your bug includes a log you think we need to see, paste it here.
85+
86+
- type: textarea
87+
id: additional-information
88+
attributes:
89+
label: Additional information
90+
description: |
91+
Any other information you'd like to include, for instance that
92+
* your cat disabled your network connection
93+
* ...

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: 💬 Matrix
4+
url: https://matrix.to/#/#newpipe:matrix.newpipe-ev.de
5+
about: Chat with us via Matrix for quick Q/A
6+
- name: 💬 IRC
7+
url: https://web.libera.chat/#newpipe
8+
about: Chat with us via IRC for quick Q/A
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Feature request
2+
description: Suggest an idea for this project
3+
labels: [enhancement]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
Thank you for helping to make the NewPipe Extractor better by suggesting a feature. :hugs:
9+
10+
Your ideas are highly welcome! The Extractor is made for you, the downstream developers, after all.
11+
12+
- type: checkboxes
13+
id: checklist
14+
attributes:
15+
label: "Checklist"
16+
options:
17+
- label: "I am aware that this issue is being opened for the NewPipe Extractor, NOT the [app](https://github.com/TeamNewPipe/NewPipe), and my feature request will be dismissed otherwise."
18+
required: true
19+
- label: "I made sure that there are *no existing issues* - [open](https://github.com/TeamNewPipe/NewPipeExtractor/issues) or [closed](https://github.com/TeamNewPipe/NewPipeExtractor/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
20+
required: true
21+
- label: "I have taken the time to fill in all the required details. I understand that the feature request will be dismissed otherwise."
22+
required: true
23+
- label: "This issue contains only one feature request."
24+
required: true
25+
- label: "I have read and understood the [contribution guidelines](https://github.com/TeamNewPipe/NewPipe/blob/dev/.github/CONTRIBUTING.md)."
26+
required: true
27+
28+
- type: textarea
29+
id: feature-description
30+
attributes:
31+
label: Feature description
32+
description: |
33+
Explain how you want the Extractor's behavior to change to suit your needs.
34+
validations:
35+
required: true
36+
37+
- type: textarea
38+
id: why-is-the-feature-requested
39+
attributes:
40+
label: Why do you want this feature?
41+
description: |
42+
Describe any problem or limitation you come across while using the Extractor which would be solved by this feature.
43+
validations:
44+
required: true
45+
46+
- type: textarea
47+
id: additional-information
48+
attributes:
49+
label: Additional information
50+
description: Any other information you'd like to include, for instance sketches, mockups, pictures of cats, etc.

.github/workflows/ci.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
name: CI
22

33
on:
4-
schedule:
5-
# once per day
6-
- cron: 0 0 * * *
4+
# schedule:
5+
# # once per day
6+
# - cron: 0 0 * * *
77
push:
88
branches:
99
- dev
@@ -26,7 +26,7 @@ jobs:
2626
distribution: 'temurin'
2727

2828
- name: Cache Gradle dependencies
29-
uses: actions/cache@v3
29+
uses: actions/cache@v4
3030
with:
3131
path: ~/.gradle/caches
3232
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
@@ -44,7 +44,7 @@ jobs:
4444
fi
4545
4646
- name: Upload test reports when failure occurs
47-
uses: actions/upload-artifact@v3
47+
uses: actions/upload-artifact@v4
4848
if: failure()
4949
with:
5050
name: NewPipeExtractor-test-reports

.github/workflows/docs.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
distribution: 'temurin'
2323

2424
- name: Cache Gradle dependencies
25-
uses: actions/cache@v3
25+
uses: actions/cache@v4
2626
with:
2727
path: ~/.gradle/caches
2828
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
@@ -32,7 +32,7 @@ jobs:
3232
run: ./gradlew aggregatedJavadocs
3333

3434
- name: Deploy JavaDocs
35-
uses: peaceiris/actions-gh-pages@v3
35+
uses: peaceiris/actions-gh-pages@v4
3636
with:
3737
github_token: ${{ secrets.GITHUB_TOKEN }}
3838
publish_dir: ./build/docs

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# NewPipe Extractor
22

3-
[![CI](https://github.com/TeamNewPipe/NewPipeExtractor/actions/workflows/ci.yml/badge.svg?branch=dev&event=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/)
3+
[![CI](https://github.com/TeamNewPipe/NewPipeExtractor/actions/workflows/ci.yml/badge.svg?branch=dev&event=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/)
44

55
NewPipe 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.
66

@@ -11,7 +11,7 @@ NewPipe Extractor is available at JitPack's Maven repo.
1111
If you're using Gradle, you could add NewPipe Extractor as a dependency with the following steps:
1212

1313
1. Add `maven { url 'https://jitpack.io' }` to the `repositories` in your `build.gradle`.
14-
2. 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).
14+
2. 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).
1515
3. 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:
1616
```
1717
## Rules for NewPipeExtractor
@@ -21,7 +21,7 @@ If you're using Gradle, you could add NewPipe Extractor as a dependency with the
2121
-dontwarn org.mozilla.javascript.tools.**
2222
```
2323

24-
**Note:** To use NewPipe Extractor in Android projects with a `minSdk` below 26, [API desugaring](https://developer.android.com/studio/write/java8-support#library-desugaring) is required. If the `minSdk` is below 19, the `desugar_jdk_libs_nio` artifact is required, which requires Android Gradle Plugin (AGP) version 7.4.0.
24+
**Note:** 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.
2525

2626
### Testing changes
2727

@@ -30,7 +30,7 @@ To test changes quickly you can build the library locally. A good approach would
3030
```groovy
3131
includeBuild('../NewPipeExtractor') {
3232
dependencySubstitution {
33-
substitute module('com.github.TeamNewPipe:NewPipeExtractor') with project(':extractor')
33+
substitute module('com.github.teamnewpipe:NewPipeExtractor') with project(':extractor')
3434
}
3535
}
3636
```
@@ -40,7 +40,7 @@ Another approach would be to use the local Maven repository, here's a gist of ho
4040
1. Add `mavenLocal()` in your project `repositories` list (usually as the first entry to give priority above the others).
4141
2. It's _recommended_ that you change the `version` of this library (e.g. `LOCAL_SNAPSHOT`).
4242
3. 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`)
43-
4. Change the dependency version used in your project to match the one you chose in step 2 (`implementation 'com.github.TeamNewPipe:NewPipeExtractor:LOCAL_SNAPSHOT'`)
43+
4. Change the dependency version used in your project to match the one you chose in step 2 (`implementation 'com.github.teamnewpipe:NewPipeExtractor:LOCAL_SNAPSHOT'`)
4444

4545
> 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.
4646

build.gradle

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ allprojects {
88
sourceCompatibility = JavaVersion.VERSION_11
99
targetCompatibility = JavaVersion.VERSION_11
1010

11-
version 'v0.23.1'
11+
version 'v0.24.4'
1212
group 'com.github.TeamNewPipe'
1313

1414
repositories {
@@ -28,9 +28,9 @@ allprojects {
2828

2929
ext {
3030
nanojsonVersion = "1d9e1aea9049fc9f85e68b43ba39fe7be1c1f751"
31-
spotbugsVersion = "4.8.3"
32-
junitVersion = "5.10.0"
33-
checkstyleVersion = "10.4"
31+
spotbugsVersion = "4.8.6"
32+
junitVersion = "5.11.3"
33+
checkstyleVersion = "10.12.2"
3434
}
3535
}
3636

checkstyle/checkstyle.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@
3838
<module name="LineLength">
3939
<property name="max" value="100"/>
4040
<property name="fileExtensions" value="java"/>
41+
<!-- Also allow links in javadocs to be longer (the default would just cover imports) -->
42+
<property name="ignorePattern" value="^((package|import) .*)|( *\* (@see )?&lt;a href ?\= ?&quot;.*&quot;&gt;)$"/>
4143
</module>
4244

4345
<!-- Checks for whitespace -->
@@ -98,6 +100,8 @@
98100
<module name="AvoidStarImport"/>
99101
<module name="IllegalImport"> <!-- defaults to sun.* packages -->
100102
<property name="illegalClasses" value="
103+
java.nio.charset.StandardCharsets,
104+
java.util.Base64,
101105
org.jetbrains.annotations.Nullable,
102106
org.jetbrains.annotations.NotNull,
103107
androidx.annotation.Nullable,

extractor/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ dependencies {
3131

3232
// do not upgrade to 1.7.14, since in 1.7.14 Rhino uses the `SourceVersion` class, which is not
3333
// available on Android (even when using desugaring), and `NoClassDefFoundError` is thrown
34-
implementation 'org.mozilla:rhino:1.7.13'
34+
implementation 'org.mozilla:rhino:1.7.15'
3535

3636
checkstyle "com.puppycrawl.tools:checkstyle:$checkstyleVersion"
3737

@@ -41,5 +41,5 @@ dependencies {
4141
testImplementation 'org.junit.jupiter:junit-jupiter-params'
4242

4343
testImplementation "com.squareup.okhttp3:okhttp:3.12.13"
44-
testImplementation 'com.google.code.gson:gson:2.10.1'
44+
testImplementation 'com.google.code.gson:gson:2.11.0'
4545
}

extractor/src/main/java/org/schabi/newpipe/extractor/MediaFormat.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public enum MediaFormat {
5151
WEBMA_OPUS(0x200, "WebM Opus", "webm", "audio/webm"),
5252
AIFF (0x600, "AIFF", "aiff", "audio/aiff"),
5353
/**
54-
* Same as {@link MediaFormat.AIFF}, just with the shorter suffix/file extension
54+
* Same as {@link MediaFormat#AIFF}, just with the shorter suffix/file extension
5555
*/
5656
AIF (0x600, "AIFF", "aif", "audio/aiff"),
5757
WAV (0x700, "WAV", "wav", "audio/wav"),

0 commit comments

Comments
 (0)