TobiGr
ec778200d9
Add comments to the code
2020-07-26 14:15:13 +02:00
wb9688
81459e289f
Fix age restricted YouTube videos
2020-07-18 19:52:54 +02:00
wb9688
ff560e907a
Remove getNextStream() from StreamExtractor
2020-07-15 18:48:37 +02:00
wb9688
156a26b64b
Support start= timestamps for YouTube
2020-07-06 14:08:40 +02:00
wb9688
98055a3c3c
Revert "Add more decryption function regexes"
...
This reverts commit 384d6acd5d
.
2020-05-29 18:41:40 +02:00
Tobias Groza
cf18cdb2f5
Merge pull request #329 from wb9688/decryption-regexes
...
Add more decryption function regexes
2020-05-29 10:10:50 +02:00
wb9688
384d6acd5d
Add more decryption function regexes
2020-05-28 11:40:38 +02:00
wb9688
7ef3e80493
Extract dashManifestUrl in playerResponse
2020-05-15 12:07:26 +02:00
bopol
de26e00079
changed all == null || isEmpty() to isNullOrEmpty()
2020-05-11 11:40:24 +02:00
wb9688
1de0876fb4
Fix #327
2020-05-09 20:06:50 +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
bopol
bc13e0c616
Merge remote-tracking branch 'upstream/dev' into soundcloudComments
2020-05-05 14:49:21 +02:00
wb9688
a1eabc7589
Return null instead of "" in getTextFromObject()
2020-05-02 08:02:25 +02:00
wb9688
b51699a20e
Implement @TobiGr's suggestions
2020-04-20 14:27:33 +02:00
wb9688
979c5a7502
Use our fork of nanojson
2020-04-17 19:36:42 +02:00
bopol
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
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
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
wb9688
904c9d681f
Fix YouTube videos with no views
2020-03-18 10:07:49 +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
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
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
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
408f042127
[YouTube] Fix bug when url isn't present in the browseEndpoint object
2020-03-01 12:49:13 +01:00
wb9688
bfe3eb1409
Use suggested try-if code style
2020-02-29 17:18:50 +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
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
7898ba230d
Use pbj in YoutubeStreamExtractor
2020-02-28 15:17:47 +01:00
wb9688
612ec06839
Actually fix thumbnail URLs starting with //
2020-02-28 09:36:33 +01:00
wb9688
94a2d5be46
Fix thumbnail URLs starting with //
2020-02-27 19:08:46 +01:00
wb9688
365b0329f3
Implement getTextFromObject() function
2020-02-27 17:39:23 +01:00
wb9688
8ebd971648
Fix channel descriptions consisting of multiple parts
2020-02-27 10:06:35 +01:00
wb9688
880b951088
Fix getUploaderAvatarUrl() in YoutubeStreamExtractor
2020-02-27 09:53:59 +01:00
wb9688
8aa560bef4
Fix video titles consisting of multiple parts due to @
2020-02-27 09:42:22 +01:00
wb9688
a2d8489e16
Parse timestamps in description
2020-02-26 20:27:30 +01:00
wb9688
8d503407ef
Parse browseEndpoint and watchEndpoint in descriptions
2020-02-26 19:37:58 +01:00
wb9688
88282761f4
Fix YoutubeStreamExtractor not being able to getAgeLimit() in onFetchPage()
2020-02-26 16:19:42 +01:00
wb9688
1c3a4e710b
Check if there are no related streams in getAgeLimit()
2020-02-26 16:03:06 +01:00
TobiGr
fc465c8bf7
Fix getUploadDate() for premiered videos with a given date
...
Detect publishDate and uploadDate
2020-02-25 22:54:37 +01:00
TobiGr
96285e0815
Fix getUploadDate() for premiered videos with a given date
2020-02-25 21:51:30 +01:00
wb9688
5a35300a5e
Fix parsing upload date for premiered streams
2020-02-25 21:51:30 +01:00
wb9688
729fd2eaee
Fix parsing description for navigationEndpoint without urlEndpoint
2020-02-25 21:51:30 +01:00
wb9688
26fb44595f
Fix parsing description
2020-02-25 21:51:30 +01:00
TobiGr
0fff03038e
Get description with correct links
2020-02-25 21:51:30 +01:00
wb9688
5d08c34322
Fix parsing upload date in YoutubeStreamExtractor
2020-02-25 21:51:30 +01:00
wb9688
bbe1a3cd62
Use getVideo(Primary|Secondary)InfoRenderer()
2020-02-25 21:51:30 +01:00
TobiGr
ecfc27a92c
Implement fallback methods for getDescription() and getTextualUploadDate() in YouTubeStreamExtractor
2020-02-25 21:51:30 +01:00
wb9688
eed29ea734
Return null for related streams at age restricted videos
2020-02-25 21:51:30 +01:00
TobiGr
f39603f6ef
Implement getUploadDate() in YouTubeStreamInfoItemExtractor
2020-02-25 21:51:30 +01:00
wb9688
26ea3dceb6
Fix getViewCount() in YoutubeStreamExtractor
2020-02-25 21:51:30 +01:00
wb9688
76d54abdbf
Reimplement more methods in YoutubeStreamExtractor
2020-02-25 21:51:30 +01:00
wb9688
f13c0288cc
Reimplement some methods in YoutubeStreamExtractor
2020-02-25 21:51:30 +01:00
wb9688
02b59903fa
Remove useless code
2020-02-25 21:51:30 +01:00
wb9688
4039409820
Fix getLikeCount() for certain streams
2020-02-25 21:51:30 +01:00
TobiGr
5816202cc7
Move getInitialData() method to YouTubeParsingHelper
...
Rename ytInitialData to initialData
2020-02-25 21:51:30 +01:00
wb9688
b88188d419
Move stuff from extractVideoPreviewInfo() into YoutubeStreamInfoItemExtractor and partially fix search
2020-02-25 21:51:30 +01:00
wb9688
af49b3c487
Fix live streams in extractVideoPreviewInfo()
2020-02-25 21:51:30 +01:00
TobiGr
10e9c16d8c
Fix LiveStream view count
2020-02-25 21:51:30 +01:00
wb9688
127c4d5893
Fix getNextStream() in YoutubeStreamExtractor
2020-02-25 21:51:30 +01:00
wb9688
7bfc0e62c6
Fix getRelatedStreams() in YoutubeStreamExtractor
2020-02-25 21:51:30 +01:00
TobiGr
12166ca60c
[StreamExtractor] Add fallback method for uploader avatar url
2020-02-25 21:51:30 +01:00
wb9688
3ec422a542
Fix like/dislike parsing
2020-02-25 21:51:30 +01:00
TobiGr
7dcc9f159b
Stream: fix uploader avatar url
2020-02-25 21:51:30 +01:00
TobiGr
39bf1ff1eb
Add ytInitialData regex
2020-02-25 21:51:30 +01:00
TobiGr
030465b5d4
Improve code formatting and optimise imports
2020-02-15 13:36:54 +01:00
bopol
70a40e7388
Description: rm constructor by serviceId
2020-02-07 13:28:27 +01:00
bopol
26c65b2948
Create class Description
2020-02-06 23:35:46 +01:00
B0pol
b671a4ba18
Merge branch 'dev' into peertube
2020-02-01 18:18:23 +00:00
Mauricio Colli
be81f2945c
[YouTube] Use correct upload date flag in StreamExtractor
2020-01-28 02:44:17 -03:00
TobiGr
033a9fb8e3
Revert change which I accidentally committed while fixing the decryption
...
function in 7b72fd2a7d
2020-01-25 21:08:17 +01:00
B0pol
e392b6c68f
getLanguageInfo returns Locale instead of String
...
so that java can automatically translate with Locale.getDisplayLanguage(), instead of always having English name of the language
2020-01-25 14:12:38 +01:00
B0pol
b816e48216
Merge branch 'dev' into peertube
2020-01-24 20:10:47 +01:00
TobiGr
f8d117f6cd
Merge remote-tracking branch 'origin/master' into dev
2020-01-24 19:22:40 +01:00
TobiGr
7b72fd2a7d
[YouTube] Add new decryption function
2020-01-24 02:10:56 +01:00
TobiGr
bce87f3d01
Improve getDescriptionFuncName by removing catches and adding a loop
2020-01-24 02:10:38 +01:00
TobiGr
9b45c61103
Typos, comments and formatting
2020-01-24 02:10:18 +01:00
TobiGr
29a4cc78bf
Fix typo in decryption constant
2020-01-24 02:10:08 +01:00
bopol
74439f692a
add extraction for support info and rename getLanguageInfo function
2020-01-23 14:19:22 +01:00
B0pol
bcfe7be4e6
Merge branch 'dev' into peertube
2020-01-22 19:19:41 +01:00
Stypox
1cfdc4547a
Update extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeStreamExtractor.java
...
Co-Authored-By: Tobias Groza <TobiGr@users.noreply.github.com>
2020-01-20 22:52:48 +01:00
Stypox
1e1100ef76
Update extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeStreamExtractor.java
...
Co-Authored-By: Tobias Groza <TobiGr@users.noreply.github.com>
2020-01-20 22:52:36 +01:00
bopol
a281519e77
added metadata, fix descriptions, fix thumbnail, update tests
...
thumbnail: quality before: https://peertube.cpy.re/static/thumbnails/d2a5ec78-5f85-4090-8ec5-dc1102e022ea.jpg
quality after: https://peertube.cpy.re/static/previews/d2a5ec78-5f85-4090-8ec5-dc1102e022ea.jpg
description: we were getting about the first 260 characters, we now get full description (with fallback to first 260 chars if the get request for full description fails)
test: updated tests to match description, also changed some test: it was assertEquals(extracted, expected), but the proper way to do it is assertEquals(expected, extracted)
metadata: got host, privacy (public, private, unlisted), licence, language, tags
2020-01-20 12:22:33 +01:00
Stypox
1ed89aad3e
Use more often playerResponse in yt stream extractor
...
This enhances performance and should make the extractor more reliable since it get info from a stable json structure that shouldn't be subject to many changes. Fallback html methods have been kept. In case of error the thrown exception contains the data about the playerResponse failure, that should be clearer than a NPE caused by not-found html tags.
2020-01-06 20:45:57 +01:00
Tobias Groza
d83787a5ca
Merge pull request #226 from 7FM/dev
...
fix switching on null causing NPE
2019-12-31 00:26:27 +01:00
Zsombor Gegesy
0a3422a591
Fix invalid jsoup query
2019-12-26 14:03:40 +01:00
7FM
f57d9d43ce
fix switching on null causing NPE
2019-12-21 14:15:42 +01:00
Mauricio Colli
3d21ef5dba
Introduce class that indicates when the time ago is an approximation
2019-11-03 15:46:28 -03:00
Mauricio Colli
cb1e327a6e
[YouTube] Fix parsing of video reminders
2019-11-03 15:46:23 -03:00
Mauricio Colli
d8280ce0da
[YouTube] Parse watching count in live streams items
2019-11-03 15:46:22 -03:00
Mauricio Colli
3638f0e0ea
Implement time ago parser and improve localization handling
...
- Handle special cases for languages where the number is not shown
- Rework the Downloader base implementation, allowing for more
advanced things to be done
- Separate the localization from the content country (just like
YouTube let's the user choose both).
2019-11-03 15:46:21 -03:00
wojcik-online
180836c180
Base Implementation: Parse the upload date of StreamInfoItems
...
In the format '2 days ago' (in English) on a YouTube channel page.
(Parser extensible to other pages.)
2019-11-03 15:46:20 -03:00
Mauricio Colli
c4fe2183ce
[YouTube] Improve detection of reCAPTCHA pages
2019-10-29 02:00:41 -03:00
Mauricio Colli
9a325b280d
[YouTube] Make detection of age restricted pages more reliable
2019-10-29 02:00:40 -03:00
Mauricio Colli
91c360df5e
Remove section of dead code
2019-10-29 02:00:39 -03:00
Tobias Groza
06f2144e4d
[YouTube] Remove GEMA exception handling ( #202 )
2019-10-05 14:59:05 +02:00
Vasiliy
d8279f91f6
Merge branch 'dev' of https://github.com/TeamNewPipe/NewPipeExtractor into feature/frames
2019-09-28 14:46:14 +03:00
TobiGr
0710f31a39
Fix TeamNewPipe/NewPipeExtractor#197
2019-09-25 08:37:26 +02:00
Stypox
3f1ba93be5
Fix NPE when extracting itags with non-existing streamingData key
2019-09-12 15:08:17 +02:00
Stypox
0d8fb65003
Fix NPE on determining whether stream is live on Youtube
2019-09-12 15:07:07 +02:00
Stypox
24a37b88a9
Use pre-generated playerResponse field in yt's getHlsUrl()
...
Also refactored code to always throw exception when the url can't be found
2019-09-11 20:12:30 +02:00
Stypox
9c423a0a40
Use FORMATS to get video+audio streams on yt
...
Not ADAPTIVE_FORMATS
2019-09-11 20:04:28 +02:00
Stypox
e5e8c66686
Readd signature decryption in YtStreamExtractor
2019-09-11 19:56:16 +02:00
Stypox
d9570d8634
Use pre-generated playerResponse field everywhere in YtStreamExtractor
2019-09-11 19:35:08 +02:00
Stypox
63a37c48e3
Remove println left behind
2019-09-11 19:31:39 +02:00
Stypox
bf017bf5b9
Fix TeamNewPipe/NewPipe#2615
2019-09-11 19:05:41 +02:00
Vasiliy
f084cfec24
Refactor frames extraction
2019-09-10 19:38:51 +03:00
Vasiliy
a6c94c7a9d
Grub frames preview from youtube
2019-08-26 19:14:09 +03:00
jimbo1qaz
e38d906ff9
Fix timestamp links in Youtube video descriptions
...
For some reason, in NewPipeExtractor,
comments were loaded from JSON by YoutubeCommentsInfoItemExtractor as text,
sent via CommentsInfoItem#getCommentText to NewPipe,
where timestamps are converted to hyperlinks using Linkify:
https://github.com/TeamNewPipe/NewPipe/pull/2168
On the other hand, video descriptions are handled in NewPipeExtractor
by scraping the watch-page HTML.
There, timestamp links were previously mangled (and now properly parsed),
before being sent as HTML via YoutubeStreamExtractor#getDescription
to NewPipe (where HTML gets converted to Spanned).
The logic introduced in this commit is different from the above PR,
since it operates in the extractor, and mutates the HTML DOM
rather than identifying via regex.
2019-08-18 01:05:41 -07:00
Stypox
06689a2f27
Add url to ReCaptchaException
...
Sometimes YouTube introduces recaptchas only on some pages. By adding an url to the ReCaptchaException the NewPipe app is able to use that url to load the page that originally caused the problem.
Also removed every instance of exception caught and rethrown with a different description: it makes no sense and it removes part of the useful stacktrace.
2019-08-17 09:09:07 +02:00
Christian Schabesberger
5798c8fdf5
fix duration can not be paresd
...
update gradle to version 5.1
fix sts issue for agegated videos
GOD DAMN FUCKING BULLSHIT
add duratin for controversal/age gated videos
bring back sts
remove ignores
fix ogg test
2019-07-31 16:11:42 +02:00
Stypox
c70d28597b
Add fallback for urls not conaining the "sp" tag
...
If ever YouTube changes thing again (or uses old urls for some unknown reason), this prevents the extractor from crashing.
As suggested here: 133cc032d9 (r283529811)
2019-05-14 13:57:45 +02:00
Stypox
133cc032d9
Fix invalid yt url: signature tag name is not always "signature"
...
Thanks to @omarroth for the suggestion: see TeamNewPipe/NewPipeExtractor#155
2019-05-13 21:25:35 +02:00
Christian Schabesberger
560c648e92
fix decrypt regex for akamai 2 times in file
2019-03-14 16:49:30 +01:00
Christian Schabesberger
dd61d66cf5
speed up finding decrypt function
2019-03-14 09:07:19 +01:00
Christian Schabesberger
e072bf6461
fix dercrypt error due to wrong dollar sign detection
2019-03-14 08:49:11 +01:00
Ritvik Saraf
c60d6ec0ab
removed unused import
2019-01-19 18:20:02 +05:30
Ritvik Saraf
50c4783f71
fixed extracting hls url
2019-01-19 18:07:35 +05:30
Kunal Sareen
b6790bbe6b
Updating regex
2019-01-18 21:47:34 +11:00
kapodamy
e4afb21862
make Subtitle object Stream compliant
...
* merge SubtitlesFormat into MediaFormat
* implement Stream interface on Subtitle class
* misc fixes: dont show a snackbar error on age-restricted videos, lint fix.
2018-11-08 16:29:05 -03:00
Christian Schabesberger
7129d6db55
add inline documentation for StreamExtractor
2018-11-07 18:28:44 +01:00
Christian Schabesberger
ad4b15ac66
Merge pull request #114 from TeamNewPipe/localization
...
Localization
2018-09-24 14:00:20 +02:00
Christian Schabesberger
49c2eb5185
fix failing watch links
2018-09-20 13:51:06 +02:00
Christian Schabesberger
ce2bbee1e9
add propper localization
2018-09-15 22:29:28 +02:00
Christian Schabesberger
96b4c97cee
Merge pull request #109 from karyogamy/sig-fix-update
...
Decryption Signature Regex Update
2018-09-15 22:10:31 +02:00
John Zhen Mo
ed73ae55f1
-Added more decrypt function name matching regex.
...
-Cleaned up decryption code generation method.
2018-09-07 22:25:07 -07:00
Christian Schabesberger
66c3c3f452
fix channel links in description part 2
2018-09-07 22:18:22 +02:00
Christian Schabesberger
4469d11307
fix channel links in description
2018-09-07 21:40:36 +02:00
John Zhen Mo
119843bfac
-Fix signature extraction parse exception.
2018-09-07 11:34:14 -07:00
Christian Schabesberger
fef71aeccc
roleback using href for description links
2018-08-28 11:55:12 +02:00
Christian Schabesberger
3aa7ff6d0e
make ytdescription alter href instead of the text of links
2018-08-27 20:45:43 +02:00
Christian Schabesberger
e662c97433
make dash parser ignore segmented streams
2018-08-21 17:23:56 +02:00
Christian Schabesberger
c4e16c7337
fix hashtag parsing
2018-08-17 16:22:50 +02:00
Christian Schabesberger
981cb333b5
fix link parsing for yt internal links
...
blub
2018-08-16 17:44:09 +02:00
Christian Schabesberger
389a87fc89
add link parsing for youtube description
2018-08-16 17:11:18 +02:00
Christian Schabesberger
28788a05db
rename uih and remove afiliate link foo
2018-07-13 18:02:40 +02:00
Christian Schabesberger
bd5423fe2a
make less tests fail
2018-07-01 16:55:48 +02:00
Christian Schabesberger
17f46b8b12
rename UrlIdHandler to UIHFactory
2018-07-01 16:55:48 +02:00
Christian Schabesberger
94d1eb6f32
restructure youtube service
2018-05-08 21:19:03 +02:00