2
0
mirror of https://github.com/TeamNewPipe/NewPipeExtractor synced 2025-08-22 01:48:58 +00:00

2933 Commits

Author SHA1 Message Date
Tobi
8476a463e8
Fix JDoc and automated doc build
See https://github.com/TeamNewPipe/NewPipeExtractor/actions/runs/16660575612/job/47156509194#step:5:43

NewPipeExtractor/NewPipeExtractor/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeStreamInfoItemLockupExtractor.java:29: error: self-closing element not allowed
 * This extractor is currently (2025-07) only used to extract related video streams.<br/>
2025-08-01 07:59:08 +02:00
Stypox
88ff8972e5
Release v0.24.8
v0.24.7 accidentally pointed at v0.24.6 and JitPack had already built so we had to make a new release
v0.24.8
2025-07-31 23:38:02 +02:00
Stypox
d376c94bd5
Release v0.24.7 2025-07-31 23:28:24 +02:00
Stypox
0a7b72aec6
Merge pull request #1354 from AudricV/yt_more_kiosks_and_trending_deprecation 2025-07-31 23:24:13 +02:00
Stypox
426a227047
Merge pull request #1347 from litetex/fix-yt-channel-id-resolution 2025-07-31 22:28:07 +02:00
AudricV
2cccf48d6c
Add an UnsupportedContentInCountryException and use it in YouTube Charts
This allows client to distinguish of a generic
ContentNotSupportedException, which hasn't fully its place for its usage
in YouTube Charts.
2025-07-31 21:10:38 +02:00
AudricV
25e30b745a
[YouTube] Set running lives as new default kiosk
Also move YoutubeKioskExtractorTest.Trending at the bottom of the file
and add deprecation notice on test class too.
2025-07-31 21:10:38 +02:00
AudricV
5c7abeeab0
[YouTube] Add mocks for new kiosks' tests 2025-07-31 21:10:37 +02:00
AudricV
0687977690
[YouTube] Add tests for new kiosks 2025-07-31 21:00:41 +02:00
AudricV
9f7690823d
[YouTube] Move Trending kiosk to kiosk package, add deprecation comment
Trending is still working at the time this commit is made, it has been
just removed from the interface.

Also remove getInstance method of YoutubeTrendingLinkHandlerFactory to
make the INSTANCE static field public, for consistency with other
kiosks of the service.
2025-07-31 21:00:41 +02:00
AudricV
21c3aad320
[YouTube] Add trending music extractor
This kiosk is meant to return official music videos, but it also
returns unofficial content and autogenerated tracks, hence the
kiosk name.

Making requests with an unsupported YouTube Charts country leads to a
400 HTTP error, so for these countries a ContentNotSupportedException
is thrown by the extractor.
2025-07-31 21:00:41 +02:00
AudricV
f4203e632d
[YouTube] Add trending movies and shows trailers extractor
This kiosk also returns some videos for unsupported YouTube Charts
countries, even if there are fewer than in a supported country.
2025-07-31 21:00:41 +02:00
AudricV
e643024ff0
[YouTube] Add base class to parse trending videos' charts responses 2025-07-31 21:00:40 +02:00
AudricV
a4aeedff90
[YouTube] Add WEB_MUSIC_ANALYTICS constants, make some methods public
This is the client for YouTube Charts (charts.youtube.com).

Also change nullability of two fields and fix wrong client constant
usage in ofWebEmbeddedPlayerClient method in InnertubeClientRequestInfo.

Usages in YoutubeParsingHelper have been updated, getClientHeaders and
prepareJsonBuilder methods in this class have been made public.
2025-07-31 21:00:40 +02:00
TobiGr
6397b2ec3f Fix missing paranthesis in condition and improve null-safety 2025-07-31 11:19:33 +02:00
litetex
aa70b5a04b Create `YouTubeChannelHelperTest` 2025-07-31 11:19:17 +02:00
litetex
b05347d68d Redirection doesn't always seem to happen
Ref: https://github.com/TeamNewPipe/NewPipeExtractor/pull/1347#issuecomment-3123364807
Co-Authored-By: Audric V. <74829229+AudricV@users.noreply.github.com>
2025-07-31 11:10:33 +02:00
litetex
f91454d24f [YT] Correctly resolve redirects when resolving channel ids 2025-07-31 10:57:11 +02:00
litetex
4701c56e86 [YT] Build correct handle 2025-07-31 10:57:11 +02:00
Tobi
a5fcc7d7aa
Merge pull request #1351 from Stypox/fix-ytm-albums-playlists
[YouTube Music] Fix uploader and stream count for album/playlist info items
2025-07-29 06:09:28 -07:00
AudricV
f4b0a7d97e
[YouTube] Add trending gaming videos extractor from Gaming system channel 2025-07-28 21:45:54 +02:00
AudricV
a870e3767d
[YouTube] Add trending podcasts episodes extractor from Podcasts page 2025-07-28 21:45:54 +02:00
AudricV
d38d64708d
[YouTube] Add running lives extractor from Live system channel 2025-07-28 21:45:54 +02:00
AudricV
3d0e302230
[YouTube] Add base class to parse kiosks from WEB InnerTube client
Kiosks structure work in a very similar way to channel tabs, so
YoutubeChannelHelper is used in this abstract class.
2025-07-28 21:45:53 +02:00
Stypox
bd6e5d3fdb
Code style 2025-07-28 20:44:40 +02:00
Stypox
03a65516b0
[YouTube Music] Fix uploader and stream count for album/playlist info items
- handles autogenerated albums instead of returning an error for invalid uploader url
- extracts uploader url of playlists too using another method
- getStreamCount() now returns ITEM_COUNT_UNKNOWN because no info is included in the JSON
2025-07-28 17:43:53 +02:00
Stypox
260ba4749a
Merge pull request #1350 from Stypox/fix-search-filtered-lockup 2025-07-28 16:09:58 +02:00
Stypox
80e42aa584
[YouTube] Fix search filters messing with which lockup formats are extracted 2025-07-28 15:56:10 +02:00
Stypox
c5337943d6
Merge pull request #1348 from TobiGr/user-agent-140 2025-07-28 14:00:31 +02:00
TobiGr
0378fdee5c Fix checkstyle 2025-07-27 12:34:30 +02:00
TobiGr
e9dbcba308 Update USER_AGENT to Firefox ESR 140 2025-07-27 09:41:09 +02:00
litetex
af82c7ae0a
Merge pull request #1344 from FineFindus/fix/invalid-related-id
[YouTube] Correctly set `uploaderUrl` for lockup content type items
2025-07-26 15:28:33 +02:00
FineFindus
352fae640f
[YouTube] Correctly set uploaderUrl for lockup content type items
Fixes an issue, where the uploader URL for related items would be incorrect,
due to the `YoutubeChannelLinkHandlerFactory.getUrl` expecting the id with a
`channel/` prefix. However, the `browseId` used to extract the channel id is
missing this prefix.

Ref: https://github.com/TeamNewPipe/NewPipeExtractor/pull/1320

Fix getUploaderUrl not resolving correct url
2025-07-26 15:24:11 +02:00
Tobi
d9c777df78
Merge pull request #1342 from TeamNewPipe/dependabot/gradle/org.junit-junit-bom-5.13.4
Bump org.junit:junit-bom from 5.13.3 to 5.13.4
2025-07-21 03:31:47 -07:00
dependabot[bot]
2c0db03601
Bump org.junit:junit-bom from 5.13.3 to 5.13.4
Bumps [org.junit:junit-bom](https://github.com/junit-team/junit-framework) from 5.13.3 to 5.13.4.
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.3...r5.13.4)

---
updated-dependencies:
- dependency-name: org.junit:junit-bom
  dependency-version: 5.13.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-21 10:00:05 +00:00
litetex
7adbc48a0a Merge pull request #1332 from litetex/fix-all-tests
Fix all tests and make everything work offline/with mocks.
Remove old mocks and generate new ones with new structure.

Remove SoundCloud "Top 50" kiosk.
2025-07-18 12:27:50 +02:00
Stypox
f3df599e8a
Merge pull request #1340 from TeamNewPipe/dependabot/gradle/protobufVersion-4.31.1 2025-07-17 17:43:22 +02:00
dependabot[bot]
3e6f1fa018
Bump protobufVersion from 4.30.2 to 4.31.1
Bumps `protobufVersion` from 4.30.2 to 4.31.1.

Updates `com.google.protobuf:protobuf-javalite` from 4.30.2 to 4.31.1

Updates `com.google.protobuf:protoc` from 4.30.2 to 4.31.1
- [Release notes](https://github.com/protocolbuffers/protobuf/releases)
- [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl)
- [Commits](https://github.com/protocolbuffers/protobuf/compare/v4.30.2...v4.31.1)

---
updated-dependencies:
- dependency-name: com.google.protobuf:protobuf-javalite
  dependency-version: 4.31.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.google.protobuf:protoc
  dependency-version: 4.31.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-17 09:51:21 +00:00
Tobi
68b4c9acba
Merge pull request #1338 from Stypox/lockup-podcast
[YouTube] Support LOCKUP_CONTENT_TYPE_PODCAST
2025-07-16 09:14:33 -07:00
Stypox
35cc5a77b5
[YouTube] Support LOCKUP_CONTENT_TYPE_PODCAST
Also extend support for LOCKUP_CONTENT_TYPE_VIDEO
2025-07-16 14:48:06 +02:00
Stypox
a9a4181c0d
Merge pull request #1104 from AudricV/yt_continuations-playlists-shorts-ui 2025-07-16 13:44:28 +02:00
Stypox
a3e2d4887c
Fix *.proto ending up in JAR 2025-07-16 13:43:13 +02:00
Stypox
be65c5e94b
Let IDE fix warnings in build.gradle 2025-07-16 13:33:21 +02:00
AudricV
3ba3dbc4d1
[YouTube] Update channel mocks using playlists 2025-07-16 13:26:39 +02:00
AudricV
dbca2b4e1f
[YouTube] Update playlists mocks 2025-07-16 13:26:39 +02:00
AudricV
88efec6e4d
[YouTube] Enable YoutubePlaylistExtractorTest.ShortsUI.testMoreRelatedItems
As continuations are now again available for playlists with Shorts UI, more
items' tests can be enabled.
2025-07-16 13:26:39 +02:00
AudricV
9415e1bbef
[YouTube] Workaround playlists' Shorts UI
YouTube doesn't return currently a continuation, if applicable, for
Shorts UI playlists, restricting access to the 100th first items. The
reel items returned don't give also upload date, uploader info and
precise view count.

Using a continuation which requests the first page of the playlist
allows currently to get access to continuations, if applicable, and
also standard video elements instead of Shorts ones, making extraction
of upload date, uploader info and precise view count again possible.

This method is used for all playlist types, the original request is
still made, but now only returns what we need.

It requires to add a protocol buffer definition file, for which its
structure is based on reverse engineering of playlists continuations
sent by WEB InnerTube client, received from InnerTube responses.

Java classes of this file are generated for the Java Lite runtime of
Protobuf with the Protobuf Gradle plugin, as the lite version is enough
for our use cases. This plugin ships in JARs Protobuf definitions,
which should be avoided.

As Protobuf classes are parsed by Checkstyle checks and do not follow
our style rules at all, an exclusion rule has been for them.
2025-07-16 13:26:38 +02:00
AudricV
e12094f483
[YouTube] Add utility method to make InnerTube requests with custom
query parameters

This can be used to pass Google APIs standard parameters to requests.
2025-07-16 13:26:38 +02:00
Stypox
a94a6e0dcb
Merge pull request #1320 from litetex/add-support-for-LOCKUP_CONTENT_TYPE_VIDEO 2025-07-16 13:22:54 +02:00
Stypox
4d1ea24c5c
Improve comments 2025-07-16 13:22:13 +02:00