Skip to content

Commit 65df39b

Browse files
authored
[YouTube] parse timestamps with >3 digits correctly (#775)
* [YouTube] parse timestamps with >3 digits correctly Fixes TeamNewPipe/NewPipe#7530; check the issue for details. * Remove outdated comment
1 parent 10f6cc7 commit 65df39b

File tree

3 files changed

+6
-6
lines changed

3 files changed

+6
-6
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ public long getLength() throws ParsingException {
302302
@Override
303303
public long getTimeStamp() throws ParsingException {
304304
final long timestamp =
305-
getTimestampSeconds("((#|&|\\?)t=\\d{0,3}h?\\d{0,3}m?\\d{1,3}s?)");
305+
getTimestampSeconds("((#|&|\\?)t=\\d*h?\\d*m?\\d+s?)");
306306

307307
if (timestamp == -2) {
308308
// Regex for timestamp was not found

extractor/src/main/java/org/schabi/newpipe/extractor/stream/StreamExtractor.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -441,9 +441,9 @@ protected long getTimestampSeconds(String regexPattern) throws ParsingException
441441
String minutesString = "";
442442
String hoursString = "";
443443
try {
444-
secondsString = Parser.matchGroup1("(\\d{1,3})s", timeStamp);
445-
minutesString = Parser.matchGroup1("(\\d{1,3})m", timeStamp);
446-
hoursString = Parser.matchGroup1("(\\d{1,3})h", timeStamp);
444+
secondsString = Parser.matchGroup1("(\\d+)s", timeStamp);
445+
minutesString = Parser.matchGroup1("(\\d+)m", timeStamp);
446+
hoursString = Parser.matchGroup1("(\\d+)h", timeStamp);
447447
} catch (Exception e) {
448448
//it could be that time is given in another method
449449
if (secondsString.isEmpty() //if nothing was got,

extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/stream/YoutubeStreamExtractorDefaultTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,8 @@ public void youtubeMusicPremiumContent() throws Exception {
112112

113113
public static class DescriptionTestPewdiepie extends DefaultStreamExtractorTest {
114114
private static final String ID = "7PIMiDcwNvc";
115-
private static final int TIMESTAMP = 17;
116-
private static final String URL = BASE_URL + ID + "&t=" + TIMESTAMP;
115+
private static final int TIMESTAMP = 7483;
116+
private static final String URL = BASE_URL + ID + "&t=" + TIMESTAMP + "s";
117117
private static StreamExtractor extractor;
118118

119119
@BeforeClass

0 commit comments

Comments
 (0)