Commit graph

780 commits

Author SHA1 Message Date
Stypox
b62a09b5b3
Use WebSettingsCompat.setSafeBrowsingEnabled 2025-02-04 21:50:10 +01:00
Stypox
87317c6faf
Reorder functions in PoTokenWebView 2025-02-04 21:38:01 +01:00
Stypox
53b599b042
Make JavaScript code compatible with older WebViews 2025-02-04 21:38:01 +01:00
Stypox
21df24abfd
Detect when WebView is broken and return null poToken
Some old Android devices have a broken WebView implementation, that can't execute the poToken code. This is now detected and the getWebClientPoToken return null instead of throwing an error in such a case, to allow the extractor to try to extract the video data even without a poToken.
2025-02-04 11:22:50 +01:00
Stypox
3fc487310b
Use Runnable instead of () -> Unit if converted to Runnable anyway 2025-02-04 10:23:45 +01:00
Stypox
056809cb0d
Use "this" instead of "globalThis" as global scope
globalThis was introduced only on newer versions of JS
2025-02-04 10:22:10 +01:00
AudricV
a60bb3e7af
[YouTube] Change BotGuard endpoint to youtube.com's one
This prevents non-abilities to fetch BotGuard challenge and send its
result with the jnn-pa.googleapis.com domain (domain block like done
on Pi-hole lists or DNS servers).

That's what the official website uses to send the challenge execution
result, however it uses InnerTube to fetch the challenge. Embeds
still use the jnn-pa.googleapis.com domain.

Also rename the makeJnnPaGoogleapisRequest method appropriately.
2025-02-03 13:05:39 +01:00
AudricV
ecd3f6c2ee
[YouTube] Clarify BotGuard API key's origin and disable related Sonar warning 2025-02-01 15:40:16 +01:00
AudricV
70ff47b810
[YouTube] Get visitorData from the service to get valid responses 2025-02-01 15:39:07 +01:00
Stypox
e7fe84f2c7
Make sure downloadAndRunBotguard() is called after <script> loaded 2025-01-31 21:47:46 +01:00
Stypox
2b183a0576
Wrap logs in BuildConfig.DEBUG 2025-01-31 21:47:46 +01:00
Stypox
f856bd9306
Recreate poToken generator if current is broken
This will be tried only once, and afterwards an error will be thrown
2025-01-31 21:47:45 +01:00
Stypox
0066b322e1
Unify running on main thread 2025-01-31 21:47:45 +01:00
Stypox
3bdae81c0a
Fix checkstyle 2025-01-31 21:47:45 +01:00
Stypox
6010c4ea7f
Connect poToken generation to extractor 2025-01-31 21:47:45 +01:00
Stypox
690b3410e9
Interfaces for poTokens + WebView implementation 2025-01-31 21:47:44 +01:00
Stypox
01bf855015
Fix naming in VideoDetailFragment: video->stream, videoUrl->url 2025-01-27 14:52:35 +01:00
Stypox
ffe26d882b
Fix loading StreamInfo twice on first VideoDetailFragment opening 2025-01-26 12:39:07 +01:00
AudricV
dc3f55674f
Add support for secondary audio track type 2024-11-24 16:43:22 +01:00
Stypox
06d25b0310
Merge pull request #11244 from Isira-Seneviratne/Android-elapsed-time
Use Android's elapsed time formatting
2024-11-18 16:56:41 +01:00
litetex
2e96b65fda
Replaced `Icepick with Bridge and Android-State`
* IcePick fails on Java 21 (default in Android Studio 2024.2)
* Bridge is the most modern alternative that is currently available. It is backed by ``Android-State`` and can be configured with various frameworks
* In the long term this should be replaced with something better
2024-10-23 21:28:07 +02:00
Isira Seneviratne
07c63f794e Update documentation 2024-07-07 14:25:02 +05:30
Isira Seneviratne
26dd86e967 Use Android's elapsed time formatting 2024-07-07 10:46:17 +05:30
Isira Seneviratne
46139340fe Convert comment touch listener to a lambda 2024-05-15 06:51:57 +05:30
Stypox
24e65ef018
Merge branch 'dev' 2024-04-23 19:23:20 +02:00
bg1722
13baaa31cd add an intuitive prefix for the duration of lists on UI, and avoid using the new prefix for single videos 2024-04-06 07:58:05 +02:00
Stypox
d8423499dc
Use JSON for settings imports/exports 2024-03-30 16:58:12 +01:00
Stypox
e1ce3fef1b
Merge branch 'dev' into pr8221 2024-03-29 18:08:31 +01:00
bg1722
bef5907ec3
show OverallDuration in Playlist
earlier only overall amount of videos was shown. Now overall duration is shown there too - as formatted by existing Localization.concatenateStrings() and Localization.getDurationString().

show all videos OverallDuration in local Playlist too

refactor to make implementation in LocalPlaylistFragment and PlaylistFragment more obviously similar

unfortunately could not refactor upto BaseLocalListFragment

revert the changes for online Playlists

because they are paginated and may be infinite i.e. correct count may come only from the service->extractor chain which unfortunately does not give overall duration yet

next try to improve user-experience with online Playlist

just show that duration is longer (">") than the calculated value in case there is more page(s)

even more improve user-experience for online Playlist

by adding the duration of next items as soon as they are made visible

make showing of playlists duration configurable, disabled by default

adjusted duration to be handled as long because it comes as long from extractor

no idea why I handled it as int earlier

Revert "make showing of playlists duration configurable, disabled by default", refactor

This reverts commit bc1ba17a20d3dd1763210f81d7ca67c5f1734a3d.

Fix rebase

Apply review

Rename video -> stream

Remove unused settings keys
2024-03-29 14:11:27 +01:00
Stypox
3f94e7b638
Merge pull request #10912 from Stypox/download-fixes
Download fixes
2024-03-28 19:14:20 +01:00
Stypox
81220f90d6
Merge pull request #10909 from Stypox/fix-getAudioTrackType-null
Fix not considering nullability when comparing getAudioTrackType
2024-03-28 13:47:12 +01:00
Stypox
e0268a91ad
Merge pull request #10717 from Stypox/cache-key-type
Calculate cache key based on info type instead of item type
2024-03-28 13:34:51 +01:00
Stypox
d8a5d5545d
Fix choosing audio format to mux with video-only download 2024-03-28 11:09:56 +01:00
Stypox
3a014d8d46
Fix not considering nullability when comparing getAudioTrackType 2024-03-27 16:05:17 +01:00
Tobi
5cf3c58d0e
Merge pull request #10732 from Profpatsch/dont-write-media-format
Don't write defaultFormat setting, use default value
2024-03-25 10:36:35 +01:00
Isira Seneviratne
5bdb6f18d6 Use hexToByteArray() extension 2024-03-20 14:00:13 +01:00
Isira Seneviratne
2e53a99361 Convert isReleaseApk to lazy value 2024-03-20 14:00:13 +01:00
Isira Seneviratne
bec18e13d3 Improve app signature check 2024-03-20 14:00:13 +01:00
Ikko Eltociear Ashimine
9d6ac67c46
Update TextLinkifier.java
minor fix
2024-03-18 14:43:16 +09:00
Profpatsch
575e809004 Don't write defaultFormat setting, use default value
Nowhere else does this (write a setting if it’s not set).

It took me a while to see that this code does not do what it intends,
because `defaultFormat` is already the default value in the first
`context.getString`, so calling `getMediaFormatFromKey` again is the
exact same call (“do you know the definition of insanity…”) and will
return `null` again …

So let’s drop the setting write and just rely on the default values.
2024-01-06 17:24:53 +01:00
Stypox
04bdc1cc0b
Base cache key on info type instead of item type
It didn't really made sense to consider two cache keys as equal based on the type of items contained within that list.
2023-12-30 23:46:16 +01:00
Stypox
9ff1b5230f
Improve TextEllipsizer class 2023-12-23 18:04:05 +01:00
TobiGr
65eb631711
Ellipsize playlist description if it is longer than 5 lines
The description can be expanded / collapsed via a "show more" / "show less" button.
2023-12-23 12:33:52 +01:00
Stypox
ee3455e1e5
Merge pull request #10086 from TacoTheDank/bumpAndroidX
Update some AndroidX libraries and compileSdk to 34
2023-12-23 11:46:28 +01:00
TacoTheDank
76f1e588f7
Utilize BundleCompat and IntentCompat methods 2023-12-23 11:38:40 +01:00
Stypox
aa84d6fc8f
Add @NonNull annotations 2023-12-22 18:52:42 +01:00
TobiGr
b4016c91c1
scroll last comment into view 2023-12-22 11:57:55 +01:00
TobiGr
5f32d001cc
Expand DetailFragment again when exiting the CommentRepliesFragment 2023-12-22 11:57:55 +01:00
Stypox
8c9287d0c8
Revert relying on source ListInfo, use commentsInfoItem.getUrl() instead
This reverts commit bb01da3691ff1d5c3dccd41b7ca1a5deb1b5676f. This commit was not needed
2023-12-22 11:57:55 +01:00
Stypox
3f37e27852
Add some documentation and javadocs
Also further simplify CommentRepliesInfo and RelatedItemsInfo
2023-12-22 11:57:55 +01:00