Wykres commitów

2773 Commity (9f94a2912dc29c8779d103f93bba1624311f6350)

Autor SHA1 Wiadomość Data
litetex 9f94a2912d
Remove recording retry/throttle as this is now handled in a more general way 2025-02-11 20:47:14 +01:00
litetex 460e0f77e6
Update test dependencies 2025-02-11 20:46:45 +01:00
litetex 351174a85f
Enforce modern TLS1.2+
This fixes the following problem:
Bandcamp/their Fastly CDN fails with 403 responses when running tests
* on Windows
* with Java 17+
* and OkHttp's APPROVED_CIPHER_SUITES (default) are used
2025-02-11 20:43:55 +01:00
litetex 12e2145185
Update gradle 2025-02-09 22:26:21 +01:00
litetex ad5ca4eced
Backport/Sync code from NewPipe implementation 2025-02-09 22:06:41 +01:00
litetex c892cfaafa
Fix PeerTube tests 2025-02-09 21:40:05 +01:00
litetex e1b94c4148
Move into dedicated package 2025-02-09 20:57:21 +01:00
litetex f1b90985da
Remove outdated comment 2025-02-09 20:45:17 +01:00
litetex 1a9df85213
MetaInfo Search is was removed or there is none active anymore
https://github.com/TeamNewPipe/NewPipeExtractor/issues/1274
2025-02-09 20:38:38 +01:00
litetex 61ef1699f8
Fix code style 2025-02-09 20:37:59 +01:00
litetex d746d1b288
Disable irrelevant test 2025-02-09 20:37:50 +01:00
litetex 271a4656da
Add missing override annotations 2025-02-09 20:22:59 +01:00
litetex 51586c0957
Disable YT Shorts UI
https://github.com/TeamNewPipe/NewPipeExtractor/issues/1273
2025-02-09 20:21:52 +01:00
litetex 451bb1315c
YouTube channel mixes no longer exist
It looks like YT removed this around autumn 2024

Other mentions: https://www.reddit.com/r/youtube/comments/1dhuvyo/channel_mixes_disappeared/
2025-02-09 20:15:08 +01:00
litetex ee7d8b042f
Channel has a new name 2025-02-09 20:08:49 +01:00
litetex ddc7f3e33a
Fix unexpected error due to malformed url 2025-02-09 20:08:40 +01:00
litetex 6e82a80b26
Disabled age restricted test as it's currently not working 2025-02-09 20:08:29 +01:00
litetex f0ed76c8c6
Implement rate-limiting 2025-02-09 19:57:04 +01:00
Stypox 9f83b385a4
Release v0.24.5 2025-02-05 10:05:59 +01:00
Stypox fe168aba0b
Merge pull request #1272 from AudricV/yt_clients_changes_and_potokens_support
[YouTube] Refactor player clients, add support for poTokens, extract visitor data from the service and more
2025-02-05 10:02:51 +01:00
AudricV 96911ae2a4
[YouTube] Fix usage of WEB client headers for all HTML5 URLs in DASH creators
Also use TVHTML5 user agent for requests from this client in these
DASH manifests creators.
2025-02-05 09:56:53 +01:00
AudricV c48d449853
[YouTube] Add ability to get TVHTML5 user agent used
Also make YoutubeParsingHelper.getOriginReferrerHeaders public, in
order to be used by other extractor classes and improve the name of a
parameter of YoutubeParsingHelper.getVisitorDataFromInnertube.
2025-02-05 09:56:52 +01:00
AudricV 0952431121
[YouTube] Move InnertubeClientRequestInfo creations in class' methods
This commits provides methods to get InnertubeClientRequestInfo
instances, which can be used by extractor clients to get visitor data
to pass to PoTokenProvider implementations using YoutubeParsingHelper.

Ability to create custom instances has been removed, but returned
objects can be modified. This is what YoutubeStreamHelper now uses to
set the visitorData property.
2025-02-05 09:56:52 +01:00
AudricV 4644e1744b
[YouTube] Add signatureTimestamp argument to TVHTML5 client requests
This argument, which has been forgot, is required to get valid
streaming URLs with this client.
2025-02-05 09:56:52 +01:00
AudricV 61f67854ed
[YouTube] Get visitorData for player requests if not provided and do some fixes
visitorData are get using InnertubeClientRequestInfo and
YoutubeParsingHelper.prepareJsonBuilder, which is replacing the
corresponding method in YoutubeStreamHelper, removed in this commit.

Also fix some bugs like JsonBuilder usages in some places and remove
HLS manifest filtering for the iOS client, as we still use for now
the full player response, in the case having streams requiring poTokens
after some time as a last resort is useful.
2025-02-05 09:56:52 +01:00
AudricV d08331dbcf
[YouTube] Add ability to use the guide endpoint to get a visitorData
Some clients like TVHTML5 are not allowed on the visitor_id endpoint
(with this client, a 400 HTTP response is returned with a precondition
check failed error).

Also disable pretty printing for these requests, like we do for others.
2025-02-05 09:56:52 +01:00
AudricV 862a607fc6
[YouTube] Add IOS and ANDROID client IDs in ClientsConstants 2025-02-05 09:56:52 +01:00
AudricV 6533a333fa
[YouTube] Add ability to get a visitorData from InnerTube 2025-02-05 09:56:52 +01:00
AudricV 9e45c8001a
[YouTube] Do not send a visitorData for every InnerTube request
As YouTube is disabling ability to use a random visitor ID in a
visitorData on player requests and BotGuard challenges, it
shouldn't matter if we use a random one or not for other
request types.
2025-02-05 09:56:52 +01:00
AudricV 94541d2d94
[YouTube] Add utility data class to store client and device info
This new class, InnertubeClientRequestInfo, composed of two mutable
subclasses, ClientInfo and DeviceInfo, allows to store client and
device info in a better way, without requiring to pass more than 10
method parameters like in YoutubeStreamHelper currently.

Mutability has been added in order to allow changing some fields
easily, especially visitorData.
2025-02-05 09:56:52 +01:00
AudricV 9333d7fcdc
[YouTube] Update DASH manifest creation clients' handling
- Use POST requests with the same body as official clients do;
- Update methods checking the client streaming URLs come from:
  - Replace TVHTML5_SIMPLY_EMBEDDED_PLAYER by TVHTML5;
  - Add WEB_EMBEDDED_PLAYER.
2025-02-05 09:56:52 +01:00
AudricV 38e2b67cb7
[YouTube] Remove unused methods and constants in YoutubeParsingHelper 2025-02-05 09:56:52 +01:00
AudricV 3878696b2c
[YouTube] Add support for poTokens, refactor player clients' fetching
Also improve detection of age-restricted statuses in playability error
messages returned by the service and provide version 7 of DASH
manifests.
2025-02-05 09:56:52 +01:00
AudricV 9d2b840cfb
[YouTube] Add utility class to handle player requests fetching
This internal class, YoutubeStreamHelper, has to be public in order to
be used by subpackages of the service's root one.

It supports poTokens, HTML5 signatureTimestamp property, embed context
and multiple InnerTube clients. It is meant to replace the
corresponding methods in YoutubeParsingHelper, in order to reduce the
class' size, code duplicates and improve its readability.

It adds a new way to get age-restricted videos' streams, the only ones
which are playable in YouTube embeds, which is not very common.
2025-02-05 09:56:52 +01:00
AudricV 1df0267440
[YouTube] Make client and origin HTTP headers methods package-private
This allows their internal usage in an upcoming new class to be used on
other InnerTube clients than the WEB one.
2025-02-05 09:56:52 +01:00
AudricV 3691fc22c6
[YouTube] Add an interface and a class to fetch and provide poTokens 2025-02-05 09:56:52 +01:00
AudricV fd82ec585b
[YouTube] Move to their own file and update clients' constants
Also update client version and device info and add TVHTML5 client and
WEB_EMBEDDED_PLAYER constants, these will be used in the future.

TVHTML5_SIMPLY_EMBED_CLIENT_VERSION has been kept in its place as
the corresponding client does not work anonymously anymore, so it will
be removed soon.
2025-02-05 09:56:52 +01:00
Stypox 186e32c9db
Merge pull request #1269 from AudricV/snd_no_drm_streams
[Soundcloud] Remove DRM-protected and downloadable formats extraction
2025-02-03 20:35:20 +01:00
AudricV a336a8ca97
[Soundcloud] Update SoundcloudStreamExtractorTest with latest changes 2025-01-28 21:52:29 +01:00
AudricV 7607688cb0
[Soundcloud] Remove DRM-protected and downloadable formats extraction
DRM-protected streams have been added to some tracks, mostly from
major music companies. We do not support DRM streams in the extractor,
so they shouldn't be extracted and so waste time, energy and resources.

Extracting downloadable format requires login for a pretty long time,
so there is no point again to do requests to extract this stream to get
an unauthorized response.

Also send the track_authorization property returned in the track info,
like the website does and allow duplicate MP3 formats in progressive and
HLS delivery methods to be returned.
2025-01-28 21:52:28 +01:00
litetex 3a33cefbc0
Merge pull request #1246 from Isira-Seneviratne/BufferedReader-lines
Use BufferedReader#lines()
2025-01-27 22:35:03 +01:00
litetex 222d869efc
Polish: Use ternary instead of if 2025-01-27 22:32:01 +01:00
litetex 625e9f96d2
Remove public modifier from tests 2025-01-27 22:24:15 +01:00
Isira Seneviratne e475b2971b
Restore URL check 2025-01-27 22:21:47 +01:00
Isira Seneviratne 0352659e2b
Use BufferedReader#lines() 2025-01-27 22:21:47 +01:00
litetex d5ade940fc
Merge pull request #1265 from gechoto/update-ios-client
[YouTube] Update IOS client
2025-01-27 22:17:53 +01:00
Stypox f7adeeff90
Fix checkstyle 2025-01-26 16:09:22 +01:00
Stypox 1ca8275419
Merge pull request #1253 from gechoto/fix-n-func
[YouTube] Fixes for n param deobfuscation function
2025-01-26 15:15:00 +01:00
gechoto 4b16b7ee41
YoutubeParsingHelper: update IOS client 2025-01-26 13:47:30 +00:00
Stypox b74a8d0df8
Remove manually writing cardinals of regexes 2025-01-26 13:07:23 +01:00