Skip to content

Commit 5a35300

Browse files
wb9688TobiGr
authored andcommitted
Fix parsing upload date for premiered streams
1 parent 729fd2e commit 5a35300

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeStreamExtractor.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@
2020
import org.schabi.newpipe.extractor.exceptions.ReCaptchaException;
2121
import org.schabi.newpipe.extractor.linkhandler.LinkHandler;
2222
import org.schabi.newpipe.extractor.localization.DateWrapper;
23+
import org.schabi.newpipe.extractor.localization.Localization;
2324
import org.schabi.newpipe.extractor.localization.TimeAgoParser;
25+
import org.schabi.newpipe.extractor.localization.TimeAgoPatternsManager;
2426
import org.schabi.newpipe.extractor.services.youtube.ItagItem;
2527
import org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper;
2628
import org.schabi.newpipe.extractor.stream.AudioStream;
@@ -42,6 +44,7 @@
4244
import java.nio.charset.StandardCharsets;
4345
import java.text.SimpleDateFormat;
4446
import java.util.ArrayList;
47+
import java.util.Calendar;
4548
import java.util.Collections;
4649
import java.util.Date;
4750
import java.util.HashMap;
@@ -134,6 +137,15 @@ public String getTextualUploadDate() throws ParsingException {
134137
//return playerResponse.getObject("microformat").getObject("playerMicroformatRenderer").getString("publishDate");
135138
} catch (Exception ignored) {}
136139

140+
try {
141+
if (getVideoPrimaryInfoRenderer().getObject("dateText").getString("simpleText").startsWith("Premiered")) {
142+
String timeAgo = getVideoPrimaryInfoRenderer().getObject("dateText").getString("simpleText").substring(10);
143+
TimeAgoParser timeAgoParser = TimeAgoPatternsManager.getTimeAgoParserFor(Localization.fromLocalizationCode("en"));
144+
Calendar parsedTimeAgo = timeAgoParser.parse(timeAgo).date();
145+
return new SimpleDateFormat("yyyy-MM-dd").format(parsedTimeAgo.getTime());
146+
}
147+
} catch (Exception ignored) {}
148+
137149
try {
138150
// TODO this parses English formatted dates only, we need a better approach to parse the textual date
139151
Date d = new SimpleDateFormat("dd MMM yyyy", Locale.ENGLISH).parse(

0 commit comments

Comments
 (0)