Skip to content

Commit d899660

Browse files
committed
exoplayer, dash parser: fix auto subs by adding visitor cookie
1 parent 61cd207 commit d899660

File tree

5 files changed

+46
-5
lines changed

5 files changed

+46
-5
lines changed

exoplayer-amzn-2.10.6/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DefaultDashChunkSource.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
import com.google.android.exoplayer2.util.Util;
5555
import java.io.IOException;
5656
import java.util.ArrayList;
57+
import java.util.Collections;
5758
import java.util.List;
5859

5960
/**
@@ -529,8 +530,13 @@ protected Chunk newMediaChunk(
529530
String baseUrl = representation.baseUrl;
530531
if (representationHolder.extractorWrapper == null) {
531532
long endTimeUs = representationHolder.getSegmentEndTimeUs(firstSegmentNum);
532-
DataSpec dataSpec = new DataSpec(segmentUri.resolveUri(baseUrl),
533-
segmentUri.start, segmentUri.length, representation.getCacheKey());
533+
// MOD: fix subtitles bot check error by add cookie header
534+
// NOTE: extractorWrapper == null on subtitles
535+
//DataSpec dataSpec = new DataSpec(segmentUri.resolveUri(baseUrl),
536+
// segmentUri.start, segmentUri.length, representation.getCacheKey());
537+
DataSpec dataSpec = new DataSpec(segmentUri.resolveUri(baseUrl), DataSpec.HTTP_METHOD_GET, null,
538+
segmentUri.start, segmentUri.start, segmentUri.length, representation.getCacheKey(), 0,
539+
manifest.visitorCookie != null ? Collections.singletonMap("Cookie", manifest.visitorCookie) : Collections.emptyMap());
534540
return new SingleSampleMediaChunk(dataSource, dataSpec, trackFormat, trackSelectionReason,
535541
trackSelectionData, startTimeUs, endTimeUs, firstSegmentNum, trackType, trackFormat);
536542
} else {

exoplayer-amzn-2.10.6/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/manifest/DashManifest.java

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,9 @@ public class DashManifest implements FilterableManifest<DashManifest> {
9090
/** The {@link ProgramInformation}, or null if not present. */
9191
@Nullable public final ProgramInformation programInformation;
9292

93+
// MOD: add subtitles cookie
94+
@Nullable public final String visitorCookie;
95+
9396
private final List<Period> periods;
9497

9598
/**
@@ -137,6 +140,36 @@ public DashManifest(
137140
UtcTimingElement utcTiming,
138141
Uri location,
139142
List<Period> periods) {
143+
this(
144+
availabilityStartTimeMs,
145+
durationMs,
146+
minBufferTimeMs,
147+
dynamic,
148+
minUpdatePeriodMs,
149+
timeShiftBufferDepthMs,
150+
suggestedPresentationDelayMs,
151+
publishTimeMs,
152+
programInformation,
153+
utcTiming,
154+
location,
155+
/* visitorCookie= */ null,
156+
periods);
157+
}
158+
159+
public DashManifest(
160+
long availabilityStartTimeMs,
161+
long durationMs,
162+
long minBufferTimeMs,
163+
boolean dynamic,
164+
long minUpdatePeriodMs,
165+
long timeShiftBufferDepthMs,
166+
long suggestedPresentationDelayMs,
167+
long publishTimeMs,
168+
@Nullable ProgramInformation programInformation,
169+
UtcTimingElement utcTiming,
170+
Uri location,
171+
@Nullable String visitorCookie,
172+
List<Period> periods) {
140173
this.availabilityStartTimeMs = availabilityStartTimeMs;
141174
this.durationMs = durationMs;
142175
this.minBufferTimeMs = minBufferTimeMs;
@@ -148,6 +181,7 @@ public DashManifest(
148181
this.programInformation = programInformation;
149182
this.utcTiming = utcTiming;
150183
this.location = location;
184+
this.visitorCookie = visitorCookie;
151185
this.periods = periods == null ? Collections.emptyList() : periods;
152186
}
153187

exoplayer-amzn-2.10.6/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/manifest/DashManifestParser2.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ private DashManifest parseDashManifest(MediaItemFormatInfo formatInfo) {
8585
null,
8686
null,
8787
null,
88+
formatInfo.getVisitorCookie(),
8889
periods);
8990
}
9091

smarttubetv/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ android {
5757
applicationId "app.smarttube"
5858
minSdkVersion project.properties.minSdkVersion
5959
targetSdkVersion project.properties.targetSdkVersion
60-
versionCode 2324
61-
versionName "31.34"
60+
versionCode 2325
61+
versionName "31.35"
6262
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
6363
buildConfigField "long", "TIMESTAMP", System.currentTimeMillis() + "L"
6464

0 commit comments

Comments
 (0)