@@ -111,24 +111,32 @@ export class Metrics {
111
111
112
112
interface Error {
113
113
signInToConfirmAge : boolean ;
114
- SignInToConfirmBot : boolean ;
114
+ signInToConfirmBot : boolean ;
115
+ selfHarmTopics : boolean ;
115
116
unknown : string | undefined ;
116
117
}
117
118
118
119
const error : Error = {
119
120
signInToConfirmAge : false ,
120
- SignInToConfirmBot : false ,
121
+ signInToConfirmBot : false ,
122
+ selfHarmTopics : false ,
121
123
unknown : undefined ,
122
124
} ;
123
125
124
126
switch ( true ) {
125
127
case reason ?. includes ( "Sign in to confirm you’re not a bot" ) :
126
- error . SignInToConfirmBot = true ;
128
+ error . signInToConfirmBot = true ;
127
129
return error ;
128
130
// Age restricted videos
129
131
case reason ?. includes ( "Sign in to confirm your age" ) :
130
132
error . signInToConfirmAge = true ;
131
133
return error ;
134
+ // For videos with playabilityStatus.status == `CONTENT_CHECK_REQUIRED`
135
+ case reason ?. includes (
136
+ "The following content may contain suicide or self-harm topics" ,
137
+ ) :
138
+ error . selfHarmTopics = true ;
139
+ return error ;
132
140
default :
133
141
error . unknown = reason ;
134
142
return error ;
@@ -142,18 +150,34 @@ export class Metrics {
142
150
143
151
interface Error {
144
152
thisHelpsProtectCommunity : boolean ;
153
+ thisVideoMayBeInnapropiate : boolean ;
154
+ viewerDiscretionAdvised : boolean ;
145
155
unknown : string | undefined ;
146
156
}
147
157
148
158
const error : Error = {
149
159
thisHelpsProtectCommunity : false ,
160
+ thisVideoMayBeInnapropiate : false ,
161
+ viewerDiscretionAdvised : false ,
150
162
unknown : undefined ,
151
163
} ;
152
164
153
165
switch ( true ) {
154
166
case subReason ?. includes ( "This helps protect our community" ) :
155
167
error . thisHelpsProtectCommunity = true ;
156
168
return error ;
169
+ // Age restricted videos
170
+ case subReason ?. includes (
171
+ "This video may be inappropriate for some users" ,
172
+ ) :
173
+ error . thisVideoMayBeInnapropiate = true ;
174
+ return error ;
175
+ // For videos with playabilityStatus.status == `CONTENT_CHECK_REQUIRED`
176
+ case subReason ?. includes (
177
+ "Viewer discretion is advised" ,
178
+ ) :
179
+ error . viewerDiscretionAdvised = true ;
180
+ return error ;
157
181
default :
158
182
error . unknown = subReason ;
159
183
return error ;
@@ -194,7 +218,7 @@ export class Metrics {
194
218
if ( status . loginRequired ) {
195
219
this . innertubeErrorStatusLoginRequired . inc ( ) ;
196
220
197
- if ( reason . SignInToConfirmBot ) {
221
+ if ( reason . signInToConfirmBot ) {
198
222
this . innertubeErrorReasonSignIn . inc ( ) ;
199
223
200
224
if ( subReason . thisHelpsProtectCommunity ) {
0 commit comments