@@ -11,6 +11,11 @@ import okhttp3.Response
1111import org.json.JSONObject
1212import org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper
1313import dev.typetype.server.sabr.SabrAdapter
14+ import dev.typetype.server.PLAYBACK_TRACE_ID_HEADER
15+ import dev.typetype.server.REQUEST_ID_HEADER
16+ import dev.typetype.server.PlaybackTraceLog
17+ import dev.typetype.server.currentPlaybackTraceId
18+ import dev.typetype.server.currentRequestId
1419import dev.typetype.server.sabr.YoutubeSabrClientProfile
1520import dev.typetype.server.sabr.YoutubeSabrInfo
1621import java.io.IOException
@@ -67,17 +72,27 @@ class TypetypeTokenYoutubeSessionClient(
6772 val url = " ${tokenServiceUrl.trimEnd(' /' )} /youtube/sabr/session?videoId=$encodedVideoId &client=MWEB" +
6873 if (isolated) " &isolated=true" else " "
6974 return suspendCancellableCoroutine { continuation ->
70- val call = client.newCall(Request .Builder ().url(url).get().build())
75+ val requestBuilder = Request .Builder ().url(url).get()
76+ currentRequestId()?.let { requestBuilder.header(REQUEST_ID_HEADER , it) }
77+ currentPlaybackTraceId()?.let { requestBuilder.header(PLAYBACK_TRACE_ID_HEADER , it) }
78+ val traceId = currentPlaybackTraceId()
79+ val requestId = currentRequestId()
80+ val startedAt = System .nanoTime()
81+ PlaybackTraceLog .record(" token_session_start" , " operation=youtube_sabr_session isolated=$isolated " )
82+ val call = client.newCall(requestBuilder.build())
7183 continuation.invokeOnCancellation { call.cancel() }
7284 call.enqueue(object : Callback {
7385 override fun onFailure (call : Call , e : IOException ) {
86+ PlaybackTraceLog .record(traceId, requestId, " token_session_complete" , " status=network_error durationMs=${(System .nanoTime() - startedAt) / 1_000_000 } " )
7487 if (continuation.isActive) continuation.resume(null )
7588 }
7689
7790 override fun onResponse (call : Call , response : Response ) {
91+ val status = response.code
7892 val session = response.use {
7993 if (! it.isSuccessful) null else runCatching { JSONObject (it.body.string()) }.getOrNull()
8094 }
95+ PlaybackTraceLog .record(traceId, requestId, " token_session_complete" , " status=$status result=${if (session == null ) " empty" else " ok" } durationMs=${(System .nanoTime() - startedAt) / 1_000_000 } " )
8196 if (continuation.isActive) continuation.resume(session)
8297 }
8398 })
0 commit comments