Commit graph

695 commits

Author SHA1 Message Date
wb9688
baf5dd3e8f
Merge pull request #311 from B0pol/fixSearchSuggestion
Search: add isCorrectedSearch() and fix YoutubeSearchExtractor#getSea…
2020-05-12 09:29:15 +02:00
wb9688
102f04e297 Add sub-channel stuff to PlaylistInfo 2020-05-12 09:14:29 +02:00
Tobias Groza
b40ccb5075
Merge pull request #307 from B0pol/playlists_peertube
[PeerTube] playlist support
2020-05-11 20:53:03 +02:00
adaf196c99 remove unused import 2020-05-11 12:54:33 +02:00
de26e00079 changed all == null || isEmpty() to isNullOrEmpty() 2020-05-11 11:40:24 +02:00
202a73516c refactor: add Utils.isNullOrEmpty() 2020-05-11 11:26:18 +02:00
wb9688
1de0876fb4 Fix #327 2020-05-09 20:06:50 +02:00
7cae95bf09 add tests for subchannel stuff in playlists 2020-05-09 10:15:35 +02:00
1a6e92ebf6 add getSubChannel Name, Url and AvatarUrl for playlists 2020-05-09 09:52:24 +02:00
cf99107745 address yausername change 2020-05-09 00:52:04 +02:00
5bab9d9fc0 [PeerTube] playlist support & refactoring 2020-05-09 00:52:04 +02:00
Tobias Groza
f3913e241e
Merge pull request #324 from Stypox/music-detector-url
[YouTube] Support stream urls in `vnd.youtube://ID` form
2020-05-08 17:43:04 +02:00
wb9688
7320108c66 Rename SubChannel in channels back to ParentChannel 2020-05-08 16:02:59 +02:00
Roy Yosef
a408661771 Fix PR review
Rename "ParentChannel" to "SubChannel"
Add Tests for sub-channel info fetching
2020-05-07 20:20:12 +02:00
Roy Yosef
1de1f97cf1 Add parent channel info to StreamExtractor: name, url & avatar url 2020-05-07 20:20:12 +02:00
Roy Yosef
4234740baa Add parent channel info to ChannelExtractor: name, url & avatar url 2020-05-07 20:20:12 +02:00
6cff5de400 renaming methods for consistency 2020-05-07 15:40:41 +02:00
5760366d70 use JsonObject#isEmpty instead of JsonObject#equals(JsonUtils.EMPTY_OBJECT) 2020-05-07 15:40:41 +02:00
93e868634e clarified javadoc for isCorrectedSearch and getSearchSuggestions in SearchExtractor 2020-05-07 15:40:41 +02:00
3757541a9c adapt new nanojson version 2020-05-07 15:40:41 +02:00
79483a6dc0 «Use this in SearchInfo, for consistency's sake» @Stypox order xD 2020-05-07 15:40:41 +02:00
e8d58e09c9 getSearchSuggestion now returns the corrected query if isCorrectedSearch() is true 2020-05-07 15:40:41 +02:00
5d1c3b3fa2 Use setters in SearchInfo 2020-05-07 15:39:57 +02:00
29b639b454 Search: add isCorrectedSearch() and fix YoutubeSearchExtractor#getSearchSuggestion()
isCorrectedSearch: see the javadoc
getSearchSuggestion: in YoutubeSearchExtractor, it was giving the corrected search query. It now gives the suggested query, as it should
2020-05-07 15:39:57 +02:00
Stypox
a02bfbeae5
[YouTube] Support stream urls in vnd.youtube://ID form 2020-05-07 15:31:31 +02:00
bc13e0c616 Merge remote-tracking branch 'upstream/dev' into soundcloudComments 2020-05-05 14:49:21 +02:00
wb9688
6aae99f832 Fix NPE in defaultAlertsCheck() 2020-05-03 10:28:45 +02:00
wb9688
a1eabc7589 Return null instead of "" in getTextFromObject() 2020-05-02 08:02:25 +02:00
Tobias Groza
49157fcf0d
Merge pull request #317 from wb9688/tnp-nanojson
Use our fork of nanojson
2020-04-24 21:54:35 +02:00
2564bcf399 refactor comments
rename methods in CommentsInfoItemExtractor interface to match the other method names across NewPipeExtractor
remove getName in (Youtube|SoundCloud|Peertube)CommentsExtractor and move it up in CommentsExtractor, return "Comments" instead
2020-04-21 20:05:54 +02:00
wb9688
b51699a20e Implement @TobiGr's suggestions 2020-04-20 14:27:33 +02:00
wb9688
74f0ab1792
Merge pull request #301 from wb9688/media-ccc-non-api-urls
Use media.ccc.de instead of api.media.ccc.de
2020-04-19 17:06:57 +02:00
0cbbc2a1f9 remove unused import 2020-04-19 14:16:38 +02:00
wb9688
979c5a7502 Use our fork of nanojson 2020-04-17 19:36:42 +02:00
d4352f9b84 support comments for SoundCloud 2020-04-10 20:41:41 +02:00
Roy Yosef
4afe657f6f Add tests for getUrlFromId and test for video-channels in acceptUrlTest 2020-04-10 19:05:38 +03:00
Roy Yosef
2c9f1260eb Fix wb9688 review comments
* Rename PeertubeUserExtractor to PeertubeAccountExtractor
* Add test for video-channels in PeertubeChannelLinkHandlerFactoryTest
* Compatibility support for older versions (use "accounts/" as default)
2020-04-10 16:40:53 +03:00
636c430743 refactor: create extractors and linkHandler packages for SoundCloud, move YoutubeParsingHelper to youtube package (not linkhandler anymore) 2020-04-10 10:51:05 +02:00
Roy Yosef
b6e6f403a8 add support for PeerTube channels extraction 2020-04-09 20:37:49 +03:00
a20d53dd98 remove the mention of Opus on wb9688 advise when
ContentNotSupportedException is thrown
2020-04-08 15:31:11 +02:00
9a7c6b7ab0 use ContentNotSupportedException for channels without tabs 2020-04-07 14:33:43 +02:00
a22104cbda add tests for ContentNotSupportedException 2020-04-07 14:33:43 +02:00
093762e793 throw ContentNotSupportedException when content is know to be unsupported 2020-04-07 14:33:43 +02:00
Tobias Groza
094b87c537
Merge pull request #299 from B0pol/sc_countries
add supported countries for soundcloud
2020-04-03 19:12:33 +02:00
wb9688
bce27a0e22 Rename getValidResponseBody() to getValidJsonResponseBody() 2020-04-03 17:23:18 +02:00
1eb3deb7fd add supported countries for soundcloud 2020-04-02 11:26:19 +02:00
wb9688
8a9e137385 Extract some code to getValidResponseBody() 2020-04-01 16:01:21 +02:00
wb9688
bf24caa5f2 Use media.ccc.de instead of api.media.ccc.de 2020-04-01 13:25:10 +02:00
wb9688
2af610e3e7 Add tests for other YT Music search types 2020-04-01 10:30:51 +02:00
wb9688
c7f7bd2442 Fix error when YT Music videos has no uploader URL 2020-04-01 10:30:51 +02:00
wb9688
ac15df4548 Move YouTube Music search to its own class 2020-04-01 10:30:51 +02:00
wb9688
cf0f2aff3e Extract uploader url from certain YouTube Music videos 2020-04-01 10:30:51 +02:00
wb9688
aa8cea47f3 Refactor YouTube Music search tests 2020-04-01 10:30:51 +02:00
wb9688
dd434cca01 Fix issue when there is no didYouMeanRenderer in itemSectionRenderer 2020-04-01 10:30:51 +02:00
wb9688
5a775a4bbe Use new way of specifying stream count 2020-04-01 10:30:51 +02:00
wb9688
d58c0f230d Improve code for YouTube Music search 2020-04-01 10:30:51 +02:00
wb9688
dc29d87962 Extract YouTube search suggestions 2020-04-01 10:30:51 +02:00
wb9688
c852b13d5a Add Referer header so that it also works with HttpsUrlConnection 2020-04-01 10:30:51 +02:00
wb9688
eb48524411 Add tests for YouTube Music search 2020-04-01 10:30:51 +02:00
wb9688
2b9b2a78e8 Handle 100+ items in playlist 2020-04-01 10:30:51 +02:00
wb9688
fb9b9691b7 Improve getYoutubeMusicKeys() 2020-04-01 10:30:51 +02:00
wb9688
4ddbdf0aee Disable artist search for now 2020-04-01 10:30:51 +02:00
wb9688
1762a527c9 Add support for YouTube Music search 2020-04-01 10:30:51 +02:00
Tobias Groza
69e0624e35
Merge pull request #298 from B0pol/feed_peertube
[peertube] add feed url in channels
2020-03-28 12:53:47 +01:00
0ae53c1e50 [peertube] adapt test for channel feed url 2020-03-28 11:48:24 +01:00
bc43f8977d [peertube] add feed url in channels 2020-03-28 10:22:47 +01:00
TobiGr
647e7cd450 Accept YouTube Music playlists but not YouTube Mixes 2020-03-25 22:24:18 +01:00
wb9688
bcd2a1092b Don't accept YouTube Mix playlists 2020-03-25 11:07:28 +01:00
Tobias Groza
e4874d554e
Merge pull request #296 from mauriciocolli/fix-search-errors-detection
Fix search errors detection and refactor search tests
2020-03-24 21:53:32 +01:00
Tobias Groza
8a9ae32e6b
Merge pull request #292 from wb9688/fix-yt-no-views
Fix YouTube videos with no views
2020-03-24 20:27:08 +01:00
Mauricio Colli
0a20c53f1a
Use easier-to-read asserts statements in tests 2020-03-23 18:08:59 -03:00
Mauricio Colli
c921e5d6a5
Remove unnecessary collector creation function from search extractor 2020-03-23 18:08:51 -03:00
Tobias Groza
6fd9b38ad9
Merge pull request #287 from mauriciocolli/fix-channel-redirect
[YouTube] Fix channel with redirects directly in the response
2020-03-23 18:41:56 +01:00
Mauricio Colli
04bfa0ec6a
[PeerTube] Update video used in age limit test (was 404 not found) 2020-03-21 15:55:40 -03:00
Mauricio Colli
921bf30bb7
[YouTube] Add check for channel items with no video count in search 2020-03-21 15:55:39 -03:00
Mauricio Colli
b7f8001a49
[YouTube] Add check for channel items without description in search 2020-03-21 15:55:38 -03:00
Mauricio Colli
9b7999fe54
[YouTube] Check if channel item has subscription count in search 2020-03-21 15:55:37 -03:00
Mauricio Colli
9704fc9952
Improve search extractor tests for services 2020-03-21 15:55:36 -03:00
Mauricio Colli
d72130edae
Always return a new item collector in the search extractor 2020-03-21 15:55:34 -03:00
Mauricio Colli
0c27198ba1
Include errors from child collectors in the search collector 2020-03-21 15:55:29 -03:00
TobiGr
2cf8cbf0df Merge branch 'master' into dev 2020-03-18 22:29:10 +01:00
wb9688
222d659d9e
[SoundCloud] Don't make separate request for getAudioStreams() in StreamExtractor
Signed-off-by: Stypox <stypox@pm.me>
2020-03-18 11:30:15 +01:00
wb9688
904c9d681f Fix YouTube videos with no views 2020-03-18 10:07:49 +01:00
Stypox
265cfb61f3
[SoundCloud] Add test for small playlist, use defaultTestGetPageInNewExtractor 2020-03-17 21:03:50 +01:00
Stypox
45bb646480
[SoundCloud] Do not overwrite nextPageUrl in PlaylistExtractor
Consistent with YouTube and the documentation
2020-03-17 20:56:47 +01:00
Stypox
c505d4e2b7
[SoundCloud] Remove trailing , in playlist page urls 2020-03-17 20:36:59 +01:00
Stypox
ae47c9587c
[SoundCloud] Optimize imports in edited files 2020-03-17 20:32:04 +01:00
Stypox
4389fd3b7b
[SoundCloud] Migrate StreamExtractor to api-v2 2020-03-17 18:06:13 +01:00
Stypox
5e4ddb368f
[SoundCloud] Fix extractors built from next playlist pages
They didn't have the information to calculate another next page url. So now `nextPageUrl` contains a full link with all video ids, and `getPage` takes the first part of the url (containing 15 streams) and produces another `nextPageUrl` with the remaining streams.
Also add a test for this.
2020-03-17 18:04:40 +01:00
Stypox
0e1b4bbf17
[SoundCloud] Test playlists banner: it should not exist 2020-03-17 15:53:25 +01:00
Stypox
65bdb3bc9d
[SoundCloud] Unignore ignored playlist tests 2020-03-17 15:49:58 +01:00
Stypox
1558da6f6b
[SoundCloud] Fix playlist next page generation 2020-03-17 15:46:35 +01:00
Stypox
ca8bf53b61
[SoundCloud] Fix playlist test: number of streams changed 2020-03-17 15:35:33 +01:00
Stypox
d4aa4a0763
[SoundCloud] Fix typo in ChartsExtractor 2020-03-17 15:25:11 +01:00
Stypox
4b1121aac7
[SoundCloud] Add tests for api-v2 channel urls 2020-03-17 15:23:13 +01:00
Stypox
c3d811fde5
[SoundCloud] Use api-v2 in SubscriptionExtractor
Also added
2020-03-17 15:22:25 +01:00
Stypox
d0e66cc600
[SoundCloud] Improve thumbnail url extraction in playlists
Prevent NullPointerExceptions and remove duplicate code
2020-03-17 15:13:28 +01:00
Stypox
f3095713f9
[SoundCloud] Use api-v2 in PlaylistExtractor
Rewrote methods to calculate next page url and to get items from it. `api-v2` is different from `api` since the initial playlist page contains (usually) the full info of the first 3 streams and only the id of the other. Then the single tracks can be requested in batch using `/tracks?ids=id1,id2,...`.
2020-03-17 15:12:13 +01:00
TobiGr
9eca7df947 Forget to fetch the page 2020-03-16 20:50:08 +01:00
TobiGr
edb57840d7 [SoundCloud] Update hard-coded client_id 2020-03-16 19:43:36 +01:00
TobiGr
efad0be99f Test if the extractor can get AudiStreams with the hard-coded cliend_id
SoundCloud client_id are changed on a regular basis now. We might want to remove the hardcoded id completely on a later point of time when client_id is changed to often
2020-03-16 19:42:35 +01:00
TobiGr
5f39bc4e99 [SoundCloud] Update hardcoded client id 2020-03-16 17:26:30 +01:00
Tobias Groza
65a7eda446
Merge pull request #256 from B0pol/mediaccc
Support for non-api mediaccc links, invidious shortened links, refactor mediaccc tests
2020-03-15 17:04:09 +01:00
TobiGr
40b3bc138f Remove hack to fix YoutubeStreamLinkHandlerFactoryTest of vnd.youtube videos 2020-03-14 21:54:54 +01:00
Tobias Groza
1c954fbded
Merge pull request #277 from XiangRongLin/vnd
Handle youtube stream urls in "vnd.youtube:videoId" format.
2020-03-14 21:52:49 +01:00
Tobias Groza
9edd0f2675
Merge pull request #288 from Stypox/fix-unlisted-video
[YouTube] Fix videos without next stream throwing error and add test for unlisted videos
2020-03-14 21:36:13 +01:00
Stypox
957b78ed9b
[YouTube] Add test for an unlisted video, which has no next stream 2020-03-14 14:04:01 +01:00
Stypox
325a51f73a
[YouTube] Do not crash if there is no next stream, but return null
Like every other extractor does if there is no next stream
2020-03-14 14:02:48 +01:00
TobiGr
aea0962cfe [SoundCloud] Update hardcoded client id 2020-03-14 12:41:44 +01:00
Mauricio Colli
b086e9db3f
[YouTube] Fix id extraction for some channels
Some channels had no reliable way to get the redirected id in the response,
so saving it for later was a valid alternative.
2020-03-14 02:39:49 -03:00
Mauricio Colli
00d1ed439b
[YouTube] Fix channel extraction when redirects are in the response
Some redirects were embed directly into the response as instructions
for the page, instead of the usual http redirects.
2020-03-14 02:39:48 -03:00
66518ec444 check wether mediaccc streams url are secure 2020-03-13 20:07:36 +01:00
0cd5e05b7b MediaCCCLH: use substring instead of replace; improve a bit tests, return Collections.emptyList(); instead of null where it's annotated @NonNull 2020-03-13 20:00:49 +01:00
f742a6bd3e code optimization 2020-03-13 20:00:49 +01:00
9701c7d800 invidious shortened links 2020-03-13 20:00:49 +01:00
e8e535b815 mediaccc: update linkhandlers & refactor tests 2020-03-13 20:00:49 +01:00
Mauricio Colli
70abd57852
[YouTube] Cache commonly used stream type result 2020-03-07 16:48:32 -03:00
Mauricio Colli
1ef706f567
[YouTube] Detect LIVE videos in the trending page 2020-03-07 16:48:31 -03:00
Xiang Rong Lin
cc8fb486ee Handle youtube stream urls in "vnd.youtube:videoId" format.
The official YouTube app accept intents in this format, which causes other developers to use it.
2020-03-02 20:40:33 +01:00
Mauricio Colli
6aa4d59b91
[PeerTube] Update video used in age limit test (the previous was 404) 2020-03-01 10:29:30 -03:00
Mauricio Colli
cfc278317d
[YouTube] Fail-fast if status exist and is anything other than "OK" 2020-03-01 10:29:29 -03:00
Mauricio Colli
90ae5fbea2 Improve kiosk tests across services 2020-03-01 12:57:18 +01:00
Mauricio Colli
e590417cc4 Test if services recognizes their own items urls 2020-03-01 12:57:18 +01:00
TobiGr
35252235b0 Go through all badges when checking if a StreamInfoItem is a live stream 2020-03-01 12:52:37 +01:00
Mauricio Colli
5686a6f562 [YouTube] Detect when a stream is deleted or doesn't exist
Added a test case as well.
2020-03-01 12:49:13 +01:00
Mauricio Colli
e65333c3ce [YouTube] Detect deleted/nonexistent/invalid channels and playlists
- Added tests for these cases.
2020-03-01 12:49:13 +01:00
Mauricio Colli
98e359438a [YouTube] Detect simple 404s in the standard fetch method 2020-03-01 12:49:13 +01:00
Mauricio Colli
408f042127 [YouTube] Fix bug when url isn't present in the browseEndpoint object 2020-03-01 12:49:13 +01:00
Mauricio Colli
342bdbb852 [YouTube] Avoid crashing by letting exceptions bubble up 2020-03-01 12:49:13 +01:00
Mauricio Colli
e9644e6216 [YouTube] Handle video premiere's date and duration 2020-03-01 12:49:13 +01:00
Mauricio Colli
2a470ac4f7 [YouTube] Handle videos with no views or with "Recommended to you" text 2020-03-01 12:49:13 +01:00
Mauricio Colli
da2c562eb0 [YouTube] Take into account videos that have their views hidden
Also remove catch because it may hide bugs when the page changes.
2020-03-01 12:49:13 +01:00
Mauricio Colli
f66c20de54 Ignore null-keyed entries when iterating through the response headers 2020-03-01 12:49:13 +01:00
Mauricio Colli
5edd774fc4 Add latest url to the response to make detection of a redirect possible
Will be latest one in this commit because there's need to check the
history of redirects as of now.
2020-03-01 12:49:13 +01:00
Mauricio Colli
3441946bea Make test downloader return a response instead of throwing an exception
The test implementation was throwing an exception instead of just
returning the response and letting the caller handle it.
2020-03-01 12:49:13 +01:00
wb9688
df219a9453 Don't use StandardCharsets class 2020-03-01 09:41:06 +01:00
wb9688
2807079531 Catch NumberFormatException instead of checking whether viewCount equals "Recommended for you" 2020-02-29 21:28:38 +01:00
wb9688
3e4d2fd64e Improve testChannelUrl() 2020-02-29 18:20:35 +01:00
wb9688
bfe3eb1409 Use suggested try-if code style 2020-02-29 17:18:50 +01:00
wb9688
a6a63e9570 Let isHardcodedClientVersionValid() throw IOException 2020-02-29 17:01:36 +01:00
wb9688
45df8248bf Use Localization in getJsonResponse() 2020-02-29 16:55:07 +01:00
wb9688
157055fbfd Create getJsonResponse() function 2020-02-29 16:42:04 +01:00
wb9688
4f406512c2 Use YoutubeChannelLinkHandlerFactory 2020-02-29 16:26:28 +01:00
wb9688
4ff655352d Reimplement getAgeLimit() 2020-02-28 17:14:26 +01:00
wb9688
6ba03e542b Cache getVideoTab() 2020-02-28 17:05:31 +01:00
wb9688
8bfbae904d Cache getVideo(Primary|Secondary)InfoRenderer() 2020-02-28 17:03:21 +01:00
wb9688
0b940f5cf4 Use "getAgeLimit() != NO_AGE_LIMIT" instead of "getAgeLimit() == 18" 2020-02-28 16:40:50 +01:00
wb9688
beb07a4852 Add test to check whether hardcoded client version is still valid 2020-02-28 16:36:14 +01:00
wb9688
b89b6b1db2 Check if hard-coded client version is valid in separate function 2020-02-28 16:35:24 +01:00
wb9688
7898ba230d Use pbj in YoutubeStreamExtractor 2020-02-28 15:17:47 +01:00