diff --git a/DailymotionConfig.json b/DailymotionConfig.json
index 2d8233ea74ac3a71abe82e233332ecf458a86017..7cbfaef3fd687554b5ffa05b2fde252b524f6b2f 100644
--- a/DailymotionConfig.json
+++ b/DailymotionConfig.json
@@ -7,7 +7,7 @@
   "sourceUrl": "https://plugins.grayjay.app/Dailymotion/DailymotionConfig.json",
   "scriptUrl": "./DailymotionScript.js",
   "repositoryUrl": "https://futo.org",
-  "version": 22,
+  "version": 23,
   "iconUrl": "./DailymotionIcon.png",
   "id": "9c87e8db-e75d-48f4-afe5-2d203d4b95c5",
   "scriptSignature": "",
diff --git a/build/DailymotionConfig.json b/build/DailymotionConfig.json
index 2d8233ea74ac3a71abe82e233332ecf458a86017..7cbfaef3fd687554b5ffa05b2fde252b524f6b2f 100644
--- a/build/DailymotionConfig.json
+++ b/build/DailymotionConfig.json
@@ -7,7 +7,7 @@
   "sourceUrl": "https://plugins.grayjay.app/Dailymotion/DailymotionConfig.json",
   "scriptUrl": "./DailymotionScript.js",
   "repositoryUrl": "https://futo.org",
-  "version": 22,
+  "version": 23,
   "iconUrl": "./DailymotionIcon.png",
   "id": "9c87e8db-e75d-48f4-afe5-2d203d4b95c5",
   "scriptSignature": "",
diff --git a/build/DailymotionScript.js b/build/DailymotionScript.js
index 5793e61fab958a3765c6e93adcbf3a8be00c82e4..7224a03434bfdc42da2cd018316ed9612428d861 100644
--- a/build/DailymotionScript.js
+++ b/build/DailymotionScript.js
@@ -977,6 +977,89 @@ const USER_WATCHED_VIDEOS_QUERY = `
 		}
 	}
 }`;
+const DISCOVERY_QUEUE_QUERY = `
+query DISCOVERY_QUEUE_QUERY($videoXid: String!, $videoCountPerSection: Int) {
+  views {
+    neon {
+      sections(
+        space: "watching"
+        context: {mediaXid: $videoXid}
+        first: 20
+      ) {
+        edges {
+          node {
+            name
+            components(first: $videoCountPerSection) {
+              edges {
+                node {
+                  ... on Video {
+                    xid
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+}
+
+`;
+const playerVideosDataQuery = `
+query playerVideosDataQuery(
+	$videoXids: [String!], 
+	$first: Int, 
+	$avatar_size: AvatarHeight!, 
+	$thumbnail_resolution: ThumbnailHeight!
+) {
+  videos(videoXids: $videoXids, first: $first) {
+    edges {
+      node {
+        ...VideoFields
+      }
+    }
+  }
+}
+fragment VideoFields on Video {
+  	id
+	xid
+	title
+	createdAt
+	metrics {
+		engagement {
+			likes {
+				edges {
+					node {
+						rating
+						total
+					}
+				}
+			}
+		}
+	}
+	stats {
+		views {
+			total
+		}
+	}
+	creator {
+		id
+		xid
+		name
+		displayName
+		description
+		avatar(height:$avatar_size) {
+			url
+		}
+	}
+	duration
+	thumbnail(height:$thumbnail_resolution) {
+		url
+	}
+}
+
+`;
 
 const objectToUrlEncodedString = (obj) => {
     const encodedParams = [];
@@ -1830,6 +1913,41 @@ source.getChannelTemplateByClaimMap = () => {
         },
     };
 };
+source.getContentRecommendations = (url, initialData) => {
+    try {
+        const videoXid = url.split('/').pop();
+        const gqlResponse = executeGqlQuery(http, {
+            operationName: 'DISCOVERY_QUEUE_QUERY',
+            variables: {
+                videoXid,
+                videoCountPerSection: 25
+            },
+            query: DISCOVERY_QUEUE_QUERY,
+            usePlatformAuth: false,
+        });
+        const videoXids = gqlResponse?.data?.views?.neon?.sections?.edges?.[0]?.node?.components?.edges?.map(e => e.node.xid) ?? [];
+        const gqlResponse1 = executeGqlQuery(http, {
+            operationName: 'playerVideosDataQuery',
+            variables: {
+                first: 30,
+                avatar_size: CREATOR_AVATAR_HEIGHT[_settings.avatarSizeOptionIndex],
+                thumbnail_resolution: THUMBNAIL_HEIGHT[_settings.thumbnailResolutionOptionIndex],
+                videoXids
+            },
+            query: playerVideosDataQuery,
+            usePlatformAuth: false,
+        });
+        const results = gqlResponse1.data.videos.edges
+            ?.map((edge) => {
+            return SourceVideoToGrayjayVideo(config.id, edge.node);
+        });
+        return new VideoPager(results, false);
+    }
+    catch (error) {
+        log('Failed to get recommendations:' + error);
+        return new VideoPager([], false);
+    }
+};
 function getPlaylistsByUsername(userName, headers, usePlatformAuth = false) {
     const collections = executeGqlQuery(http, {
         operationName: 'CHANNEL_PLAYLISTS_QUERY',
@@ -2044,13 +2162,11 @@ function getSavedVideo(url, usePlatformAuth = false) {
     if (!usePlatformAuth) {
         videoDetailsRequestHeaders.Authorization = state.anonymousUserAuthorizationToken;
     }
-    const responses = http
+    const [player_metadataResponse, video_details_response] = http
         .batch()
         .GET(player_metadata_url, headers1, usePlatformAuth)
         .POST(BASE_URL_API, videoDetailsRequestBody, videoDetailsRequestHeaders, usePlatformAuth)
         .execute();
-    const player_metadataResponse = responses[0];
-    const video_details_response = responses[1];
     if (!player_metadataResponse.isOk) {
         throw new UnavailableException('Unable to get player metadata');
     }
@@ -2068,7 +2184,11 @@ function getSavedVideo(url, usePlatformAuth = false) {
     const video_details = JSON.parse(video_details_response.body);
     const video = video_details?.data?.video;
     const platformVideoDetails = SourceVideoToPlatformVideoDetailsDef(config.id, video, player_metadata);
-    return new PlatformVideoDetails(platformVideoDetails);
+    const videoDetails = new PlatformVideoDetails(platformVideoDetails);
+    videoDetails.getContentRecommendations = function () {
+        return source.getContentRecommendations(url, videoDetails);
+    };
+    return videoDetails;
 }
 function getSearchChannelPager(context) {
     const searchResponse = executeGqlQuery(http, {
diff --git a/src/DailymotionScript.ts b/src/DailymotionScript.ts
index 57cd491a3d0c177302edfdd73fa5af4dbc2dd88e..6166ef2e5a3a3df0e740ead3c03e5bca95b0b2f7 100644
--- a/src/DailymotionScript.ts
+++ b/src/DailymotionScript.ts
@@ -48,6 +48,8 @@ import {
   USER_LIKED_VIDEOS_QUERY,
   USER_WATCHED_VIDEOS_QUERY,
   USER_WATCH_LATER_VIDEOS_QUERY,
+  DISCOVERY_QUEUE_QUERY,
+  playerVideosDataQuery,
 } from './gqlQueries';
 
 import { getChannelNameFromUrl, getQuery, generateUUIDv4, applyCommonHeaders } from './util';
@@ -598,6 +600,50 @@ source.getChannelTemplateByClaimMap = () => {
   };
 };
 
+source.getContentRecommendations = (url, initialData) => { 
+
+  try {
+    const videoXid = url.split('/').pop();
+
+    const gqlResponse = executeGqlQuery(http, {
+      operationName: 'DISCOVERY_QUEUE_QUERY',
+      variables: {
+        videoXid,
+        videoCountPerSection: 25
+      },
+      query: DISCOVERY_QUEUE_QUERY,
+      usePlatformAuth: false,
+    });
+  
+    const videoXids: string[] = gqlResponse?.data?.views?.neon?.sections?.edges?.[0]?.node?.components?.edges?.map(e => e.node.xid) ?? [];
+  
+    const gqlResponse1 = executeGqlQuery(http, {
+      operationName: 'playerVideosDataQuery',
+      variables: {
+        first: 30,
+        avatar_size: CREATOR_AVATAR_HEIGHT[_settings.avatarSizeOptionIndex],
+        thumbnail_resolution: THUMBNAIL_HEIGHT[_settings.thumbnailResolutionOptionIndex],
+        videoXids
+      },
+      query: playerVideosDataQuery,
+      usePlatformAuth: false,
+    });
+  
+  
+    const results =
+    gqlResponse1.data.videos.edges
+        ?.map((edge) => {
+          return SourceVideoToGrayjayVideo(config.id, edge.node as Video);
+        });
+  
+    return new VideoPager(results, false);
+  } catch(error){
+    log('Failed to get recommendations:' + error);
+    return new VideoPager([], false);
+  }
+
+}
+
 function getPlaylistsByUsername(
   userName,
   headers,
@@ -899,7 +945,7 @@ function getSavedVideo(url, usePlatformAuth = false) {
     videoDetailsRequestHeaders.Authorization = state.anonymousUserAuthorizationToken;
   }
 
-  const responses = http
+  const [player_metadataResponse, video_details_response] = http
     .batch()
     .GET(player_metadata_url, headers1, usePlatformAuth)
     .POST(
@@ -910,8 +956,6 @@ function getSavedVideo(url, usePlatformAuth = false) {
     )
     .execute();
 
-  const player_metadataResponse = responses[0];
-  const video_details_response = responses[1];
 
   if (!player_metadataResponse.isOk) {
     throw new UnavailableException('Unable to get player metadata');
@@ -941,7 +985,13 @@ function getSavedVideo(url, usePlatformAuth = false) {
   const platformVideoDetails: PlatformVideoDetailsDef =
     SourceVideoToPlatformVideoDetailsDef(config.id, video, player_metadata);
 
-  return new PlatformVideoDetails(platformVideoDetails);
+  const videoDetails = new PlatformVideoDetails(platformVideoDetails);
+
+  videoDetails.getContentRecommendations = function () {
+    return source.getContentRecommendations(url, videoDetails);
+  };
+
+  return videoDetails;
 }
 
 function getSearchChannelPager(context) {
diff --git a/src/gqlQueries.ts b/src/gqlQueries.ts
index aeb760680c813c78bb9b9618e2e469d595e9fcc4..c6f2f5395b5d68f7eecf4fb91e7330305300fa69 100644
--- a/src/gqlQueries.ts
+++ b/src/gqlQueries.ts
@@ -881,3 +881,88 @@ export const USER_WATCHED_VIDEOS_QUERY = `
 		}
 	}
 }`;
+
+export const DISCOVERY_QUEUE_QUERY = `
+query DISCOVERY_QUEUE_QUERY($videoXid: String!, $videoCountPerSection: Int) {
+  views {
+    neon {
+      sections(
+        space: "watching"
+        context: {mediaXid: $videoXid}
+        first: 20
+      ) {
+        edges {
+          node {
+            name
+            components(first: $videoCountPerSection) {
+              edges {
+                node {
+                  ... on Video {
+                    xid
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+}
+
+`
+
+export const playerVideosDataQuery = `
+query playerVideosDataQuery(
+	$videoXids: [String!], 
+	$first: Int, 
+	$avatar_size: AvatarHeight!, 
+	$thumbnail_resolution: ThumbnailHeight!
+) {
+  videos(videoXids: $videoXids, first: $first) {
+    edges {
+      node {
+        ...VideoFields
+      }
+    }
+  }
+}
+fragment VideoFields on Video {
+  	id
+	xid
+	title
+	createdAt
+	metrics {
+		engagement {
+			likes {
+				edges {
+					node {
+						rating
+						total
+					}
+				}
+			}
+		}
+	}
+	stats {
+		views {
+			total
+		}
+	}
+	creator {
+		id
+		xid
+		name
+		displayName
+		description
+		avatar(height:$avatar_size) {
+			url
+		}
+	}
+	duration
+	thumbnail(height:$thumbnail_resolution) {
+		url
+	}
+}
+
+`
\ No newline at end of file
diff --git a/types/CodeGenDailymotion.d.ts b/types/CodeGenDailymotion.d.ts
index c6f10c919c14edd9c2e518fe3df7f550ef5a00f6..d178093a6358f9db9e1d7c2031e0a0fbc6beb7cf 100644
--- a/types/CodeGenDailymotion.d.ts
+++ b/types/CodeGenDailymotion.d.ts
@@ -50,7 +50,7 @@ export enum AccountType {
 export type ActivateUserInput = {
   /** The activation key received in the email. */
   activationKey: Scalars['String']['input'];
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The email of the user to activate. */
   email: Scalars['String']['input'];
@@ -59,7 +59,7 @@ export type ActivateUserInput = {
 /** The return fields from activating a user. */
 export type ActivateUserPayload = {
   __typename?: 'ActivateUserPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -85,7 +85,7 @@ export type ActivityOperator = {
 
 /** The input fields to add a video to a collection. */
 export type AddCollectionVideoInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The Dailymotion ID of the collection. */
   collectionXid: Scalars['String']['input'];
@@ -96,7 +96,7 @@ export type AddCollectionVideoInput = {
 /** The return fields from adding a video to a collection. */
 export type AddCollectionVideoPayload = {
   __typename?: 'AddCollectionVideoPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -104,7 +104,7 @@ export type AddCollectionVideoPayload = {
 
 /** The input fields to add a video to the `WatchLater` list of the connected user. */
 export type AddWatchLaterVideoInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The Dailymotion ID of the video. */
   videoXid: Scalars['String']['input'];
@@ -113,7 +113,7 @@ export type AddWatchLaterVideoInput = {
 /** The return fields from adding a video to the `WatchLater` list of the connected user. */
 export type AddWatchLaterVideoPayload = {
   __typename?: 'AddWatchLaterVideoPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -350,7 +350,7 @@ export type AnalyticsReportConnection = {
 export type AnalyticsReportCreateInput = {
   /** The Dailymotion ID of the channel for the report. */
   channelXid: Scalars['String']['input'];
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /**
    * The dimensions used to aggregate data.
@@ -380,7 +380,7 @@ export type AnalyticsReportCreateInput = {
 /** The return fields from creating a custom report. */
 export type AnalyticsReportCreatePayload = {
   __typename?: 'AnalyticsReportCreatePayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The analytics report that is being created. */
   report?: Maybe<AnalyticsReport>;
@@ -476,7 +476,7 @@ export enum AppealReason {
 
 /** The input fields to ask a partner report file. */
 export type AskPartnerReportFileInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /**
    * The dimensions used to aggregate data.
@@ -498,7 +498,7 @@ export type AskPartnerReportFileInput = {
 /** The return fields from asking a partner report file. */
 export type AskPartnerReportFilePayload = {
   __typename?: 'AskPartnerReportFilePayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** Custom report in progress of generation. */
   reportFile?: Maybe<PartnerReportFile>;
@@ -791,6 +791,8 @@ export type Category = {
   id: Scalars['ID']['output'];
   /** The name of the category. */
   name: Scalars['String']['output'];
+  /** The human-readable unique ID of the category. */
+  slug: Scalars['String']['output'];
 };
 
 /** The connection type for Category. */
@@ -837,7 +839,12 @@ export enum CategoryTypename {
 /** A channel manages medias and collections. */
 export type Channel = Node & {
   __typename?: 'Channel';
-  /** The account type of the channel. Its value is one of the following: verified-partner, partner or viewer. */
+  /** The account of the channel. */
+  account?: Maybe<Account>;
+  /**
+   * The account type of the channel. Its value is one of the following: verified-partner, partner or viewer.
+   * @deprecated Use `account`.
+   */
   accountType?: Maybe<Scalars['String']['output']>;
   /** The URL of the avatar image. */
   avatar?: Maybe<Image>;
@@ -849,6 +856,8 @@ export type Channel = Node & {
   canChangeName?: Maybe<Scalars['Boolean']['output']>;
   /** The collections of the channel. */
   collections?: Maybe<CollectionConnection>;
+  /** The comments created by the channel. */
+  comments?: Maybe<CommentConnection>;
   /** The country of the channel. */
   country?: Maybe<Country>;
   /**
@@ -856,6 +865,8 @@ export type Channel = Node & {
    * @deprecated Use `banner` field.
    */
   coverURL?: Maybe<Scalars['String']['output']>;
+  /** The date and time (ISO 8601 format) when the channel was created. */
+  createDate?: Maybe<Scalars['DateTime']['output']>;
   /** The description of the channel. */
   description?: Maybe<Scalars['String']['output']>;
   /** The display name of the channel. */
@@ -890,6 +901,8 @@ export type Channel = Node & {
   language?: Maybe<Language>;
   /** The lives of the channel. */
   lives?: Maybe<LiveConnection>;
+  /** The date and time (ISO 8601 format) when the channel last logged in. */
+  loginDate?: Maybe<Scalars['DateTime']['output']>;
   /**
    * The URL of the logo image.
    * @deprecated Use `avatar` field.
@@ -978,6 +991,14 @@ export type ChannelCollectionsArgs = {
 };
 
 
+/** A channel manages medias and collections. */
+export type ChannelCommentsArgs = {
+  first?: InputMaybe<Scalars['Int']['input']>;
+  orderBy?: InputMaybe<CommentSort>;
+  page?: InputMaybe<Scalars['Int']['input']>;
+};
+
+
 /** A channel manages medias and collections. */
 export type ChannelCoverUrlArgs = {
   size: Scalars['String']['input'];
@@ -1094,7 +1115,7 @@ export type ChannelCreateInput = {
   avatarUrl?: InputMaybe<Scalars['String']['input']>;
   /** The URL of the banner image of the channel. */
   bannerURL?: InputMaybe<Scalars['String']['input']>;
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The country of the channel. */
   country: Scalars['String']['input'];
@@ -1117,7 +1138,7 @@ export type ChannelCreatePayload = {
   __typename?: 'ChannelCreatePayload';
   /** The new channel. */
   channel?: Maybe<Channel>;
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -1140,9 +1161,9 @@ export type ChannelEngagementMetrics = Node & {
   /** The collection metrics of the channel. */
   collections?: Maybe<CollectionMetricConnection>;
   /** The follower metrics of the channel. */
-  followers?: Maybe<ChannelMetricConnection>;
+  followers?: Maybe<FollowerMetricConnection>;
   /** The following metrics of the channel. */
-  followings?: Maybe<ChannelMetricConnection>;
+  followings?: Maybe<FollowingMetricConnection>;
   /** The history metrics of the channel. */
   history?: Maybe<PostMetricConnection>;
   /** The ID of the object. */
@@ -1168,6 +1189,12 @@ export type ChannelEngagementMetricsCollectionsArgs = {
 };
 
 
+/** The engagement metrics of a Channel. */
+export type ChannelEngagementMetricsFollowingsArgs = {
+  filter?: InputMaybe<FollowingFilter>;
+};
+
+
 /** The engagement metrics of a Channel. */
 export type ChannelEngagementMetricsHistoryArgs = {
   filter: HistoryFilter;
@@ -1361,7 +1388,7 @@ export type ChannelUpdateRequired = Node & {
 };
 
 /** The views metrics of a Channel. */
-export type ChannelViewMetrics = {
+export type ChannelViewMetrics = Node & {
   __typename?: 'ChannelViewMetrics';
   /** The ID of the object. */
   id: Scalars['ID']['output'];
@@ -1379,7 +1406,7 @@ export enum ChannelsSort {
 
 /** The input fields to clear the medias of a collection. */
 export type ClearCollectionMediasInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The Dailymotion ID of the collection. */
   collectionXid: Scalars['String']['input'];
@@ -1388,7 +1415,7 @@ export type ClearCollectionMediasInput = {
 /** The return fields from clearing all medias from a collection. */
 export type ClearCollectionMediasPayload = {
   __typename?: 'ClearCollectionMediasPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -1396,14 +1423,14 @@ export type ClearCollectionMediasPayload = {
 
 /** The input fields to clear the liked videos of the connected user. */
 export type ClearLikedVideosInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
 };
 
 /** The return fields from clearing the liked videos of the connected user. */
 export type ClearLikedVideosPayload = {
   __typename?: 'ClearLikedVideosPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -1411,14 +1438,14 @@ export type ClearLikedVideosPayload = {
 
 /** The input fields to clear the `WatchLater` list of the connected user. */
 export type ClearWatchLaterVideosInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
 };
 
 /** The return fields from clearing the `WatchLater` list of the connected user. */
 export type ClearWatchLaterVideosPayload = {
   __typename?: 'ClearWatchLaterVideosPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -1426,14 +1453,14 @@ export type ClearWatchLaterVideosPayload = {
 
 /** The input fields to clear the `Watched` list of the connected user. */
 export type ClearWatchedVideosInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
 };
 
 /** The return fields from clearing the `Watched` list of the connected user. */
 export type ClearWatchedVideosPayload = {
   __typename?: 'ClearWatchedVideosPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -1642,7 +1669,7 @@ export type Comment = Content & Node & Thread & {
   /** The creation date (DateTime ISO8601) of the comment. */
   createDate: Scalars['DateTime']['output'];
   /** The creator of the comment. */
-  creator: Channel;
+  creator?: Maybe<Channel>;
   /** The ID of the object. */
   id: Scalars['ID']['output'];
   /** The metrics of the comment. */
@@ -1687,7 +1714,7 @@ export type CommentEngagementMetrics = Node & {
 };
 
 /** The node at the end of a CommentMetricEdge. */
-export type CommentMetric = Metric & {
+export type CommentMetric = Metric & Node & {
   __typename?: 'CommentMetric';
   /** The ID of the object. */
   id: Scalars['ID']['output'];
@@ -1809,6 +1836,8 @@ export type ContentCategory = Category & Node & {
   id: Scalars['ID']['output'];
   /** The name of the content category. */
   name: Scalars['String']['output'];
+  /** The human-readable unique ID of the content category. */
+  slug: Scalars['String']['output'];
 };
 
 /** Information about a conversation. */
@@ -1904,7 +1933,7 @@ export type CountryEdge = {
 
 /** The input fields to create a behavior rule. */
 export type CreateBehaviorRuleInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** Condition to apply the feature or experiment segmentation (contains JSON). */
   condition: Scalars['String']['input'];
@@ -1931,7 +1960,7 @@ export type CreateBehaviorRuleInput = {
 /** The return fields from creating a rule for feature flipping or AB experiments. */
 export type CreateBehaviorRulePayload = {
   __typename?: 'CreateBehaviorRulePayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The new rule. */
   rule?: Maybe<Rule>;
@@ -1939,7 +1968,7 @@ export type CreateBehaviorRulePayload = {
 
 /** The input fields to create a collection. */
 export type CreateCollectionInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The description of the collection. */
   description?: InputMaybe<Scalars['String']['input']>;
@@ -1952,7 +1981,7 @@ export type CreateCollectionInput = {
 /** The return fields from creating a collection. */
 export type CreateCollectionPayload = {
   __typename?: 'CreateCollectionPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The new collection. */
   collection?: Maybe<Collection>;
@@ -1962,7 +1991,7 @@ export type CreateCollectionPayload = {
 
 /** The input fields to create a comment. */
 export type CreateCommentInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The ID of the post that the comment is created for. */
   postId?: InputMaybe<Scalars['ID']['input']>;
@@ -1975,7 +2004,7 @@ export type CreateCommentInput = {
 /** The return fields from creating a comment. */
 export type CreateCommentPayload = {
   __typename?: 'CreateCommentPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The new comment. */
   comment?: Maybe<Comment>;
@@ -1985,7 +2014,7 @@ export type CreateCommentPayload = {
 
 /** The input fields to create a reaction. */
 export type CreateReactionInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The ID of the opener that the reaction is created for. */
   openerId: Scalars['ID']['input'];
@@ -2003,7 +2032,7 @@ export type CreateUserInput = {
   avatarURL?: InputMaybe<Scalars['String']['input']>;
   /** The birthday (DateTime ISO8601) of the user. */
   birthday?: InputMaybe<Scalars['DateTime']['input']>;
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** Indicate whether or not to test the creation workflow without actually creating the user. */
   dryRun?: InputMaybe<Scalars['Boolean']['input']>;
@@ -2031,7 +2060,7 @@ export type CreateUserInput = {
 /** The return fields from creating a user. */
 export type CreateUserPayload = {
   __typename?: 'CreateUserPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -2043,7 +2072,7 @@ export type CreateUserPayload = {
 export type CreateVideoInput = {
   /** The category of the video. */
   category?: InputMaybe<MediaCategory>;
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The description of the video. */
   description?: InputMaybe<Scalars['String']['input']>;
@@ -2072,7 +2101,7 @@ export type CreateVideoInput = {
 /** The return fields from creating a new Video. */
 export type CreateVideoPayload = {
   __typename?: 'CreateVideoPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -2093,8 +2122,10 @@ export type CuratedCategory = Category & Node & {
   categoryId: Scalars['Int']['output'];
   /** The ID of the object. */
   id: Scalars['ID']['output'];
-  /** The name of the category. */
+  /** The name of the curated category. */
   name: Scalars['String']['output'];
+  /** The human-readable unique ID of the curated category. */
+  slug: Scalars['String']['output'];
 };
 
 /** The connection type for CuratedCategory. */
@@ -2138,7 +2169,7 @@ export type DateTimeOperator = {
 
 /** The input fields to delete a behavior rule. */
 export type DeleteBehaviorRuleInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The name of the rule to delete. */
   name: Scalars['String']['input'];
@@ -2147,7 +2178,7 @@ export type DeleteBehaviorRuleInput = {
 /** The return fields from deleting a rule used for feature flipping or AB experiments. */
 export type DeleteBehaviorRulePayload = {
   __typename?: 'DeleteBehaviorRulePayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** Indicates whether the mutation was successful. */
   success?: Maybe<Scalars['Boolean']['output']>;
@@ -2155,7 +2186,7 @@ export type DeleteBehaviorRulePayload = {
 
 /** The input fields to delete a comment. */
 export type DeleteCommentInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The ID of the comment to delete. */
   id: Scalars['ID']['input'];
@@ -2164,7 +2195,7 @@ export type DeleteCommentInput = {
 /** The return fields from deleting a comment. */
 export type DeleteCommentPayload = {
   __typename?: 'DeleteCommentPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -2172,7 +2203,7 @@ export type DeleteCommentPayload = {
 
 /** The input fields to delete a reaction. */
 export type DeleteReactionInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The ID of the reaction to delete. */
   id: Scalars['ID']['input'];
@@ -2181,7 +2212,7 @@ export type DeleteReactionInput = {
 /** The return fields from deleting a reaction. */
 export type DeleteReactionPayload = {
   __typename?: 'DeleteReactionPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -2189,7 +2220,7 @@ export type DeleteReactionPayload = {
 
 /** The input fields to delete a user. */
 export type DeleteUserInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The password of the user. */
   password?: InputMaybe<Scalars['String']['input']>;
@@ -2198,7 +2229,7 @@ export type DeleteUserInput = {
 /** The return fields from deleting a user. */
 export type DeleteUserPayload = {
   __typename?: 'DeleteUserPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -2206,7 +2237,7 @@ export type DeleteUserPayload = {
 
 /** The input fields to delete a video. */
 export type DeleteVideoInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The Dailymotion of the video. */
   xid: Scalars['String']['input'];
@@ -2215,7 +2246,7 @@ export type DeleteVideoInput = {
 /** The return fields from deleting a video. */
 export type DeleteVideoPayload = {
   __typename?: 'DeleteVideoPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -2230,6 +2261,17 @@ export type EmailChangeRequest = Node & {
   newEmail: Scalars['String']['output'];
 };
 
+/** Represents the details of an embed. */
+export type Embed = Node & {
+  __typename?: 'Embed';
+  /** The html of the embed for the video. */
+  html?: Maybe<Scalars['String']['output']>;
+  /** The ID of the object. */
+  id: Scalars['ID']['output'];
+  /** The url of the embed for the video. */
+  url?: Maybe<Scalars['String']['output']>;
+};
+
 /** The different types of embeds. */
 export enum EmbedType {
   /** A contextual embed. */
@@ -2500,14 +2542,14 @@ export type FileUpload = Node & {
 export type FollowChannelInput = {
   /** The Dailymotion ID of the channel. */
   channelXid: Scalars['String']['input'];
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
 };
 
 /** The return fields from following a channel for the connected user. */
 export type FollowChannelPayload = {
   __typename?: 'FollowChannelPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -2517,14 +2559,14 @@ export type FollowChannelPayload = {
 export type FollowChannelsInput = {
   /** The Dailymotion IDs of the channels to follow. */
   channelXids: Array<Scalars['String']['input']>;
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
 };
 
 /** The return fields from following channels for the connected user. */
 export type FollowChannelsPayload = {
   __typename?: 'FollowChannelsPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -2532,7 +2574,7 @@ export type FollowChannelsPayload = {
 
 /** The input fields to follow a channel for the connected user. */
 export type FollowTopicInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The Dailymotion ID of the topic to follow. */
   topicXid: Scalars['String']['input'];
@@ -2541,7 +2583,7 @@ export type FollowTopicInput = {
 /** The return fields from following a topic for the connected user. */
 export type FollowTopicPayload = {
   __typename?: 'FollowTopicPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -2549,7 +2591,7 @@ export type FollowTopicPayload = {
 
 /** The input fields to follow topics for the connected user. */
 export type FollowTopicsInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The Dailymotion IDs of the topics to follow. */
   topicXids: Array<Scalars['String']['input']>;
@@ -2558,7 +2600,7 @@ export type FollowTopicsInput = {
 /** The return fields from follow topics for the connected user. */
 export type FollowTopicsPayload = {
   __typename?: 'FollowTopicsPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -2566,7 +2608,7 @@ export type FollowTopicsPayload = {
 
 /** The input fields to follow a user for the connected user. */
 export type FollowUserInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The Dailymotion ID of the user. */
   xid: Scalars['String']['input'];
@@ -2575,7 +2617,7 @@ export type FollowUserInput = {
 /** The return fields from following a user for the connected user. */
 export type FollowUserPayload = {
   __typename?: 'FollowUserPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -2724,6 +2766,35 @@ export type FollowerEngagementNotifications = Node & {
   uploads: Scalars['Boolean']['output'];
 };
 
+/** The node at the end of a FollowerMetricEdge. */
+export type FollowerMetric = Metric & Node & {
+  __typename?: 'FollowerMetric';
+  /** The ID of the object. */
+  id: Scalars['ID']['output'];
+  /** The total count of the channel metric. A null value indicates that it is hidden or not available. */
+  total?: Maybe<Scalars['Int']['output']>;
+};
+
+/** The connection type for a FollowerMetric. */
+export type FollowerMetricConnection = {
+  __typename?: 'FollowerMetricConnection';
+  /** A list of edges. */
+  edges: Array<Maybe<FollowerMetricEdge>>;
+  /** The metadata of the connection. */
+  metadata: Metadata;
+  /** Information to aid in pagination. */
+  pageInfo: PageInfo;
+  /** The total number of items. A null value indicates that the information is unavailable for the connection. */
+  totalCount?: Maybe<Scalars['Int']['output']>;
+};
+
+/** An edge in a connection. */
+export type FollowerMetricEdge = {
+  __typename?: 'FollowerMetricEdge';
+  /** The item at the end of the edge. */
+  node?: Maybe<FollowerMetric>;
+};
+
 /** Information about a user, who the requested user is following. */
 export type Following = Node & {
   __typename?: 'Following';
@@ -2793,6 +2864,35 @@ export type FollowingInput = {
   storyId: Scalars['ID']['input'];
 };
 
+/** The node at the end of a FollowingMetricEdge. */
+export type FollowingMetric = Metric & Node & {
+  __typename?: 'FollowingMetric';
+  /** The ID of the object. */
+  id: Scalars['ID']['output'];
+  /** The total count of the following metric. A null value indicates that it is hidden or not available. */
+  total?: Maybe<Scalars['Int']['output']>;
+};
+
+/** The connection type for a FollowingMetric. */
+export type FollowingMetricConnection = {
+  __typename?: 'FollowingMetricConnection';
+  /** A list of edges. */
+  edges: Array<Maybe<FollowingMetricEdge>>;
+  /** The metadata of the connection. */
+  metadata: Metadata;
+  /** Information to aid in pagination. */
+  pageInfo: PageInfo;
+  /** The total number of items. A null value indicates that the information is unavailable for the connection. */
+  totalCount?: Maybe<Scalars['Int']['output']>;
+};
+
+/** An edge in a connection. */
+export type FollowingMetricEdge = {
+  __typename?: 'FollowingMetricEdge';
+  /** The item at the end of the edge. */
+  node?: Maybe<FollowingMetric>;
+};
+
 /** The return fields from following/unfollowing a story for the connected creator. */
 export type FollowingPayload = {
   __typename?: 'FollowingPayload';
@@ -2823,14 +2923,14 @@ export enum Gender {
 
 /** The input fields to generate a file upload url. */
 export type GenerateFileUploadUrlInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
 };
 
 /** The return fields from generating a file url upload. */
 export type GenerateFileUploadUrlPayload = {
   __typename?: 'GenerateFileUploadUrlPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** Information about the file upload. */
   fileUpload?: Maybe<FileUpload>;
@@ -2838,6 +2938,21 @@ export type GenerateFileUploadUrlPayload = {
   status?: Maybe<Status>;
 };
 
+/** The input fields to generate a token to verify the email. */
+export type GenerateVerifyEmailTokenInput = {
+  /** The email address of the user. */
+  email: Scalars['String']['input'];
+};
+
+/** The return fields to generate a token to verify the email. */
+export type GenerateVerifyEmailTokenPayload = {
+  __typename?: 'GenerateVerifyEmailTokenPayload';
+  /** The status of the mutation. */
+  status?: Maybe<Status>;
+  /** The token generated to send a code to verify the email. */
+  token: Scalars['String']['output'];
+};
+
 /** The geoblocked countries of a media. */
 export type GeoblockedCountries = Node & {
   __typename?: 'GeoblockedCountries';
@@ -2918,6 +3033,8 @@ export type HashtagEdge = {
 /** The engagement metrics of a Hashtag. */
 export type HashtagEngagementMetrics = Node & {
   __typename?: 'HashtagEngagementMetrics';
+  /** The follower metrics of the hashtag. */
+  followers?: Maybe<ChannelMetricConnection>;
   /** The ID of the object. */
   id: Scalars['ID']['output'];
   /** The video metrics of the hashtag. */
@@ -3042,7 +3159,7 @@ export type InteractionEdge = {
 };
 
 /** Information of an interest. */
-export type Interest = Node & {
+export type Interest = Category & Node & {
   __typename?: 'Interest';
   /** The ID of the object. */
   id: Scalars['ID']['output'];
@@ -3052,6 +3169,8 @@ export type Interest = Node & {
   isEnabled?: Maybe<Scalars['Boolean']['output']>;
   /** The name of the interest. */
   name: Scalars['String']['output'];
+  /** The human-readable unique ID of the interest category. */
+  slug: Scalars['String']['output'];
 };
 
 /** The connection type for Interest. */
@@ -3107,7 +3226,7 @@ export type Like = Bookmark & History & Node & {
 };
 
 /** The node at the end of a LikesMetricEdge. */
-export type LikeMetric = Metric & {
+export type LikeMetric = Metric & Node & {
   __typename?: 'LikeMetric';
   /** The ID of the object. */
   id: Scalars['ID']['output'];
@@ -3146,7 +3265,7 @@ export type LikeMetricFilter = {
 /** The return fields from adding/removing a like to/from the likes list of the connected user. */
 export type LikePayload = {
   __typename?: 'LikePayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -3174,7 +3293,7 @@ export type LikeRatingOperator = {
 
 /** The input fields to like a video for the connected user. */
 export type LikeVideoInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The Dailymotion ID of the video to like. */
   videoXid: Scalars['String']['input'];
@@ -3183,7 +3302,7 @@ export type LikeVideoInput = {
 /** The return fields from liking a video for the connected user. */
 export type LikeVideoPayload = {
   __typename?: 'LikeVideoPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -3200,7 +3319,10 @@ export enum LikedMediaSort {
 /** A live represents a media that is streamed. */
 export type Live = Content & Node & Recording & {
   __typename?: 'Live';
-  /** Indicates whether the live can be embedded outside of Dailymotion. */
+  /**
+   * Indicates whether the live can be embedded outside of Dailymotion.
+   * @deprecated Use `settings.embeddable` field.
+   */
   allowEmbed?: Maybe<Scalars['Boolean']['output']>;
   /** The aspect ratio of the media (e.g. 1.33333 for 4/3, 1.77777 for 16/9). */
   aspectRatio?: Maybe<Scalars['Float']['output']>;
@@ -3255,9 +3377,17 @@ export type Live = Content & Node & Recording & {
    *   No other HTML tag should be present.
    */
   description?: Maybe<Scalars['String']['output']>;
-  /** The HTML embedding code to embed the live outside of Dailymotion. */
+  /** The embed details of the live. */
+  embed?: Maybe<Embed>;
+  /**
+   * The HTML embedding code to embed the live outside of Dailymotion.
+   * @deprecated Use `embed.html` field.
+   */
   embedHtml?: Maybe<Scalars['String']['output']>;
-  /** The URL to embed the live outside of Dailymotion. */
+  /**
+   * The URL to embed the live outside of Dailymotion.
+   * @deprecated Use `embed.url` field.
+   */
   embedURL?: Maybe<Scalars['String']['output']>;
   /**
    * The date (DateTime ISO8601) the live ends.
@@ -3343,6 +3473,8 @@ export type Live = Content & Node & Recording & {
   reactions?: Maybe<ReactionConnection>;
   /** The restriction information of the live. */
   restriction?: Maybe<Restriction>;
+  /** The settings of the live. */
+  settings?: Maybe<LiveSettings>;
   /** The share urls of the live. */
   shareUrls?: Maybe<LiveShareUrls>;
   /**
@@ -3590,6 +3722,14 @@ export type LiveMetrics = Node & PostMetrics & {
   id: Scalars['ID']['output'];
 };
 
+export type LiveSettings = {
+  __typename?: 'LiveSettings';
+  /** Indicates whether the video can be embedded. */
+  embeddable?: Maybe<Scalars['Boolean']['output']>;
+  /** Id of the LiveSettings. */
+  id?: Maybe<Scalars['ID']['output']>;
+};
+
 /** Information about the share urls of a Live. */
 export type LiveShareUrls = Node & ShareUrls & {
   __typename?: 'LiveShareUrls';
@@ -3829,8 +3969,10 @@ export type MediaModeration = Node & {
 };
 
 /** Information about the media publishing. */
-export type MediaPublishingInfo = {
+export type MediaPublishingInfo = Node & {
   __typename?: 'MediaPublishingInfo';
+  /** The ID of the object. */
+  id: Scalars['ID']['output'];
   /** The percentage of media publishing progress. */
   percentage?: Maybe<Scalars['Int']['output']>;
 };
@@ -3962,7 +4104,7 @@ export type ModerationAction = {
 
 /** Input for < Mutation.moderationActionAppeal > */
 export type ModerationActionAppealInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** Extra user comments (limited to 1024 chars). */
   comment?: InputMaybe<Scalars['String']['input']>;
@@ -3975,7 +4117,7 @@ export type ModerationActionAppealInput = {
 /** Response of < Mutation.moderationActionAppeal > */
 export type ModerationActionAppealPayload = {
   __typename?: 'ModerationActionAppealPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status: Status;
@@ -4047,7 +4189,10 @@ export type Mutation = {
    * @deprecated Use mutation `addFollowing`.
    */
   followChannel?: Maybe<FollowChannelPayload>;
-  /** Follow multiple channels for the connected user. */
+  /**
+   * Follow multiple channels for the connected user.
+   * @deprecated No longer supported.
+   */
   followChannels?: Maybe<FollowChannelsPayload>;
   /** The topic the user wants to follow. */
   followTopic?: Maybe<FollowTopicPayload>;
@@ -4065,6 +4210,8 @@ export type Mutation = {
   followedUserRemove?: Maybe<UnfollowUserPayload>;
   /** Generate a URL to upload a file. */
   generateFileUploadUrl?: Maybe<GenerateFileUploadUrlPayload>;
+  /** Generate a token to request a code to verify the email. */
+  generateVerifyEmailToken?: Maybe<GenerateVerifyEmailTokenPayload>;
   /**
    * Like a video for the connected user.
    * @deprecated Use mutation `addLike`.
@@ -4121,21 +4268,26 @@ export type Mutation = {
   reportComment: ReportCommentPayload;
   /** Report a creator for violating the community guidelines. */
   reportCreator: ReportCreatorPayload;
-  /** Report an inappropriate video. */
+  /** Report a Recording (a Video, a Live, or a Reaction) that is violating the community guidelines. */
+  reportRecording?: Maybe<ReportRecordingPayload>;
+  /**
+   * Report an inappropriate video.
+   * @deprecated Use mutation `reportRecording`.
+   */
   reportVideo?: Maybe<ReportVideoPayload>;
   /** Verify the email of the reporter, if the reporter is not connected. */
   reporterEmailVerify: ReporterEmailVerifyPayload;
-  /** Generate an activation code by a validation token. */
+  /**
+   * Generate an activation code by a validation token.
+   * @deprecated Use `sendVerifyEmailCode`.
+   */
   requestActivationCode?: Maybe<RequestActivationCodePayload>;
   /** Change the password of the user after requesting recover password. */
   resetPassword?: Maybe<ResetPasswordPayload>;
   /** Send a transactional email using an email provider. */
   sendTransactionalEmail?: Maybe<SendTransactionalEmailPayload>;
-  /**
-   * Request a validation email to confirm the account.
-   * @deprecated Use mutation `requestActivationCode`.
-   */
-  sendValidationEmail?: Maybe<SendValidationEmailPayload>;
+  /** Request a code to be sent to verify the email. */
+  sendVerifyEmailCode?: Maybe<SendVerifyEmailCodePayload>;
   /**
    * Unfollow a channel for the connected user.
    * @deprecated Use mutation `removeFollowing`.
@@ -4170,7 +4322,10 @@ export type Mutation = {
   userEmailChangeRequest?: Maybe<UserEmailChangeRequestPayload>;
   /** Request a new email confirmation code. */
   userEmailConfirmationCodeReset?: Maybe<UserEmailConfirmationCodeResetPayload>;
-  /** Generate an email validation token to request an activation code. */
+  /**
+   * Generate an email validation token to request an activation code.
+   * @deprecated Use `generateVerifyEmailToken`.
+   */
   userEmailValidationTokenRequest?: Maybe<UserEmailValidationTokenPayload>;
   /** Add an interest to user. */
   userInterestAdd?: Maybe<UserInterestAddPayload>;
@@ -4365,6 +4520,12 @@ export type MutationGenerateFileUploadUrlArgs = {
 };
 
 
+/** The mutation root of Dailymotion's GraphQL API. */
+export type MutationGenerateVerifyEmailTokenArgs = {
+  input: GenerateVerifyEmailTokenInput;
+};
+
+
 /** The mutation root of Dailymotion's GraphQL API. */
 export type MutationLikeVideoArgs = {
   input: LikeVideoInput;
@@ -4467,6 +4628,12 @@ export type MutationReportCreatorArgs = {
 };
 
 
+/** The mutation root of Dailymotion's GraphQL API. */
+export type MutationReportRecordingArgs = {
+  input: ReportRecordingInput;
+};
+
+
 /** The mutation root of Dailymotion's GraphQL API. */
 export type MutationReportVideoArgs = {
   input: ReportVideoInput;
@@ -4498,8 +4665,8 @@ export type MutationSendTransactionalEmailArgs = {
 
 
 /** The mutation root of Dailymotion's GraphQL API. */
-export type MutationSendValidationEmailArgs = {
-  input: SendValidationEmailInput;
+export type MutationSendVerifyEmailCodeArgs = {
+  input: SendVerifyEmailCodeInput;
 };
 
 
@@ -4670,7 +4837,7 @@ export type Node = {
 export type NotificationFollowedChannelUpdateInput = {
   /** The Dailymotion ID of the channel. */
   channelXid: Scalars['String']['input'];
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** Indicate whether to enable the notification of the channel. */
   isEnabled: Scalars['Boolean']['input'];
@@ -4679,7 +4846,7 @@ export type NotificationFollowedChannelUpdateInput = {
 /** The return fields from updating the push notification settings on a followed channel of the connected user. */
 export type NotificationFollowedChannelUpdatePayload = {
   __typename?: 'NotificationFollowedChannelUpdatePayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -5301,7 +5468,7 @@ export enum PollAnswerAction {
 export type PollAnswerInput = {
   /** The action to perform on the poll answer. */
   action: PollAnswerAction;
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The ID of the poll option. */
   optionId: Scalars['ID']['input'];
@@ -5312,7 +5479,7 @@ export type PollAnswerInput = {
 /** The return fields from a poll answer. */
 export type PollAnswerPayload = {
   __typename?: 'PollAnswerPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -5823,6 +5990,7 @@ export type QueryRecordingArgs = {
 /** The query root of Dailymotion's GraphQL API. */
 export type QueryThreadsArgs = {
   filter?: InputMaybe<ThreadFilter>;
+  first?: InputMaybe<Scalars['Int']['input']>;
 };
 
 
@@ -5988,6 +6156,13 @@ export type ReactionThumbnailArgs = {
   height: ThumbnailHeight;
 };
 
+
+/** Represents a Reaction in a recording format. */
+export type ReactionTranscriptArgs = {
+  first?: InputMaybe<Scalars['Int']['input']>;
+  page?: InputMaybe<Scalars['Int']['input']>;
+};
+
 /** The connection type for ReactionVideo. */
 export type ReactionConnection = {
   __typename?: 'ReactionConnection';
@@ -6074,7 +6249,7 @@ export type ReactionMetrics = Node & PostMetrics & {
 /** The return fields from creating/updating a reaction. */
 export type ReactionPayload = {
   __typename?: 'ReactionPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The created/updated reaction. */
   reaction?: Maybe<Reaction>;
@@ -6217,7 +6392,7 @@ export type ReactionVideoConnection = {
 
 /** The input fields to create a reaction video. */
 export type ReactionVideoCreateInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The URL of the thumbnail image. */
   thumbnailURL?: InputMaybe<Scalars['String']['input']>;
@@ -6231,7 +6406,7 @@ export type ReactionVideoCreateInput = {
 
 /** The input fields to delete a reaction video. */
 export type ReactionVideoDeleteInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The xid of the reaction video to delete. */
   xid: Scalars['String']['input'];
@@ -6240,7 +6415,7 @@ export type ReactionVideoDeleteInput = {
 /** The return fields from deleting a reaction video. */
 export type ReactionVideoDeletePayload = {
   __typename?: 'ReactionVideoDeletePayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -6256,7 +6431,7 @@ export type ReactionVideoEdge = {
 /** The return fields from creating/updating a reaction video. */
 export type ReactionVideoPayload = {
   __typename?: 'ReactionVideoPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The new/updated reaction video. */
   reactionVideo?: Maybe<ReactionVideo>;
@@ -6328,7 +6503,7 @@ export type ReactionVideoStatsSaves = Node & {
 
 /** The input fields to update a reaction video. */
 export type ReactionVideoUpdateInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** the hashtags of the reaction video */
   hashtags?: InputMaybe<Array<Scalars['String']['input']>>;
@@ -6480,7 +6655,7 @@ export enum RecordingViolation {
 
 /** The input fields to recover a password. */
 export type RecoverPasswordInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The email address of the user who wants to recover its password. */
   email: Scalars['String']['input'];
@@ -6489,7 +6664,7 @@ export type RecoverPasswordInput = {
 /** The return fields from recovering a password. */
 export type RecoverPasswordPayload = {
   __typename?: 'RecoverPasswordPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -6514,7 +6689,7 @@ export type RemindUnwatchedVideos = Node & {
 
 /** The input fields to remove a collection. */
 export type RemoveCollectionInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The Dailymotion ID of the collection. */
   collectionXid: Scalars['String']['input'];
@@ -6523,7 +6698,7 @@ export type RemoveCollectionInput = {
 /** The return fields from deleting a collection. */
 export type RemoveCollectionPayload = {
   __typename?: 'RemoveCollectionPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -6531,7 +6706,7 @@ export type RemoveCollectionPayload = {
 
 /** The input fields to remove a video from a collection. */
 export type RemoveCollectionVideoInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The Dailymotion ID of the collection. */
   collectionXid: Scalars['String']['input'];
@@ -6542,7 +6717,7 @@ export type RemoveCollectionVideoInput = {
 /** The return fields from removing a video from a collection. */
 export type RemoveCollectionVideoPayload = {
   __typename?: 'RemoveCollectionVideoPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -6550,7 +6725,7 @@ export type RemoveCollectionVideoPayload = {
 
 /** The input fields to remove a video from the `WatchLater` list of the connected user. */
 export type RemoveWatchLaterVideoInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The Dailymotion ID of the video. */
   videoXid: Scalars['String']['input'];
@@ -6559,7 +6734,7 @@ export type RemoveWatchLaterVideoInput = {
 /** The return fields from removing a video from the `WatchLater` list of the connected user. */
 export type RemoveWatchLaterVideoPayload = {
   __typename?: 'RemoveWatchLaterVideoPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -6567,7 +6742,7 @@ export type RemoveWatchLaterVideoPayload = {
 
 /** The input fields to remove a video from the `Watched` list of the connected user. */
 export type RemoveWatchedVideoInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The Dailymotion ID of the video. */
   videoXid: Scalars['String']['input'];
@@ -6576,7 +6751,7 @@ export type RemoveWatchedVideoInput = {
 /** The return fields from removing a video from the `Watched` list of the connected user. */
 export type RemoveWatchedVideoPayload = {
   __typename?: 'RemoveWatchedVideoPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -6584,7 +6759,7 @@ export type RemoveWatchedVideoPayload = {
 
 /** The input fields to reorder a media in a collection. */
 export type ReorderCollectionMediaInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The Dailymotion ID of the collection. */
   collectionXid: Scalars['String']['input'];
@@ -6597,7 +6772,7 @@ export type ReorderCollectionMediaInput = {
 /** The return fields from reordering a media in a collection. */
 export type ReorderCollectionMediaPayload = {
   __typename?: 'ReorderCollectionMediaPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -6605,14 +6780,16 @@ export type ReorderCollectionMediaPayload = {
 
 /** The available input fields to report a `Comment`. */
 export type ReportCommentInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
-  /** The ID of the comment to report. */
-  commentId: Scalars['ID']['input'];
+  /** @deprecated(reason: "Use `id` input arg.") - The ID of the comment to report. */
+  commentId?: InputMaybe<Scalars['ID']['input']>;
   /** The email address of the user making the report. Required when the user is not connected. */
   email?: InputMaybe<Scalars['String']['input']>;
   /** The first name of the user making the report. */
   firstName?: InputMaybe<Scalars['String']['input']>;
+  /** The ID of the comment to report. */
+  id?: InputMaybe<Scalars['ID']['input']>;
   /** Language code used to communicate with the reporter. if null will guess from request header */
   languageCode?: InputMaybe<Scalars['String']['input']>;
   /** The last name of the user making the report. */
@@ -6626,7 +6803,7 @@ export type ReportCommentInput = {
 /** The return fields from reporting a comment. */
 export type ReportCommentPayload = {
   __typename?: 'ReportCommentPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -6634,7 +6811,7 @@ export type ReportCommentPayload = {
 
 /** The available input fields to report a `Creator`. */
 export type ReportCreatorInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The Dailymotion ID of the creator to report. */
   creatorXid: Scalars['String']['input'];
@@ -6645,7 +6822,7 @@ export type ReportCreatorInput = {
 /** The return fields from reporting a creator. */
 export type ReportCreatorPayload = {
   __typename?: 'ReportCreatorPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -6680,9 +6857,39 @@ export type ReportFileDownloadLinkEdge = {
   node?: Maybe<ReportFileDownloadLink>;
 };
 
+/** The input fields to report a Recording. */
+export type ReportRecordingInput = {
+  /** The email address of the user making the report. Required when the user is not connected. */
+  email?: InputMaybe<Scalars['String']['input']>;
+  /** The first name of the user making the report. */
+  firstName?: InputMaybe<Scalars['String']['input']>;
+  /** The Dailymotion ID of the recording to report. */
+  id: Scalars['ID']['input'];
+  /** The language code to communicate with the reporter. */
+  languageCode?: InputMaybe<Scalars['String']['input']>;
+  /** The last name of the user making the report. */
+  lastName?: InputMaybe<Scalars['String']['input']>;
+  /** The message body of the report. */
+  message?: InputMaybe<Scalars['String']['input']>;
+  /**
+   * The timecode where the violation of the recording happens in format "hh:mm:ss" or "mm:ss".
+   *   If omitted, indicates whole recording is reported.
+   */
+  timecode?: InputMaybe<Scalars['String']['input']>;
+  /** The violation the recording is violating. */
+  violation: RecordingViolation;
+};
+
+/** The return fields from reporting a recording. */
+export type ReportRecordingPayload = {
+  __typename?: 'ReportRecordingPayload';
+  /** The status of the mutation. */
+  status?: Maybe<Status>;
+};
+
 /** The input fields to report a video. */
 export type ReportVideoInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The email address of the user making the report. Required when the user is not connected. */
   email?: InputMaybe<Scalars['String']['input']>;
@@ -6710,7 +6917,7 @@ export type ReportVideoInput = {
 /** The return fields from reporting a video. */
 export type ReportVideoPayload = {
   __typename?: 'ReportVideoPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -6718,7 +6925,7 @@ export type ReportVideoPayload = {
 
 /** The input to verify user report reporter email */
 export type ReporterEmailVerifyInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** Id of the abuse report */
   reportId: Scalars['ID']['input'];
@@ -6733,7 +6940,7 @@ export type ReporterEmailVerifyInput = {
  */
 export type ReporterEmailVerifyPayload = {
   __typename?: 'ReporterEmailVerifyPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /**
    *
@@ -6745,9 +6952,9 @@ export type ReporterEmailVerifyPayload = {
 
 /** The input fields to request an activation code. */
 export type RequestActivationCodeInput = {
-  /** The account type of the user. */
-  accountType: UserActivationCodeAccountType;
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer required.") The account type of the user. */
+  accountType?: InputMaybe<UserActivationCodeAccountType>;
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The validation token received during the sign in request. */
   validationToken: Scalars['String']['input'];
@@ -6756,7 +6963,7 @@ export type RequestActivationCodeInput = {
 /** The return fields from requesting an activation code. */
 export type RequestActivationCodePayload = {
   __typename?: 'RequestActivationCodePayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -6766,7 +6973,7 @@ export type RequestActivationCodePayload = {
 export type ResetPasswordInput = {
   /** The activation key received in the email from a recover password request. */
   activationKey: Scalars['String']['input'];
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The email of the user to reset its password. */
   email: Scalars['String']['input'];
@@ -6779,7 +6986,7 @@ export type ResetPasswordInput = {
 /** The return fields from resetting a password. */
 export type ResetPasswordPayload = {
   __typename?: 'ResetPasswordPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -6937,15 +7144,27 @@ export type Search = Node & {
   __typename?: 'Search';
   /** The suggestions matched against the search query. */
   autosuggestions?: Maybe<SuggestionConnection>;
-  /** The channels matched against the search query. */
+  /**
+   * The channels matched against the search query.
+   * @deprecated Use `search.stories(filter: {story: {eq: CHANNEL}})`
+   */
   channels?: Maybe<ChannelConnection>;
-  /** The collections that matched against the search query. */
+  /**
+   * The collections that matched against the search query.
+   * @deprecated Use `search.stories(filter: {story: {eq: COLLECTION}})`.
+   */
   collections?: Maybe<CollectionConnection>;
-  /** The hashtags that matched against the search query. */
+  /**
+   * The hashtags that matched against the search query.
+   * @deprecated Use `search.stories(filter: {story: {eq: HASHTAG}})`.
+   */
   hashtags?: Maybe<HashtagConnection>;
   /** The ID of the object. */
   id: Scalars['ID']['output'];
-  /** The lives that matched against the search query. */
+  /**
+   * The lives that matched against the search query.
+   * @deprecated Use `search.stories(filter: {story: {eq: LIVE}})`.
+   */
   lives?: Maybe<LiveConnection>;
   /** The stories that matched against the search query. */
   stories?: Maybe<StoryConnection>;
@@ -6954,7 +7173,10 @@ export type Search = Node & {
    * @deprecated No longer supported.
    */
   topics?: Maybe<TopicConnection>;
-  /** The videos that matched against the search query. */
+  /**
+   * The videos that matched against the search query.
+   * @deprecated Use `search.stories(filter: {story: {eq: VIDEO}})`.
+   */
   videos?: Maybe<VideoConnection>;
 };
 
@@ -7107,7 +7329,7 @@ export type SectionEdge = {
 
 /** The input fields to send a transactional email. */
 export type SendTransactionalEmailInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The ID associated with the given email campaign. */
   emailCampaignId: Scalars['String']['input'];
@@ -7120,25 +7342,21 @@ export type SendTransactionalEmailInput = {
 /** The return fields from sending a transactional email. */
 export type SendTransactionalEmailPayload = {
   __typename?: 'SendTransactionalEmailPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
 };
 
-/** The input fields to send a validation email. */
-export type SendValidationEmailInput = {
-  /** The ID generated for the client performing the mutation. */
-  clientMutationId?: InputMaybe<Scalars['String']['input']>;
-  /** The URI to redirect the user to in the email. */
-  redirectURI?: InputMaybe<Scalars['String']['input']>;
+/** The input fields to send a code to verify the email. */
+export type SendVerifyEmailCodeInput = {
+  /** The token to request a code to verify the email. */
+  token: Scalars['String']['input'];
 };
 
-/** The return fields from sending a validation email. */
-export type SendValidationEmailPayload = {
-  __typename?: 'SendValidationEmailPayload';
-  /** The ID generated for the client performing the mutation. */
-  clientMutationId?: Maybe<Scalars['String']['output']>;
+/** The return fields to send a code to verify the email. */
+export type SendVerifyEmailCodePayload = {
+  __typename?: 'SendVerifyEmailCodePayload';
   /** The status of the mutation. */
   status?: Maybe<Status>;
 };
@@ -7450,6 +7668,8 @@ export type ThreadEdge = {
 
 /** The available input fields of a Thread filter. */
 export type ThreadFilter = {
+  /** Filter threads by the id. */
+  id?: InputMaybe<IdOperator>;
   /** Filter threads by the openerId. */
   openerId?: InputMaybe<IdOperator>;
   /** Filter threads by thread typename. */
@@ -7709,14 +7929,14 @@ export enum TopicWhitelistStatusMode {
 export type UnfollowChannelInput = {
   /** The Dailymotion ID of the channel to unfollow. */
   channelXid: Scalars['String']['input'];
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
 };
 
 /** The return fields from unfollowing a channel for the connected user. */
 export type UnfollowChannelPayload = {
   __typename?: 'UnfollowChannelPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -7724,7 +7944,7 @@ export type UnfollowChannelPayload = {
 
 /** The input fields to unfollow a topic for the connected user. */
 export type UnfollowTopicInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The Dailymotion ID of the topic to unfollow. */
   topicXid: Scalars['String']['input'];
@@ -7733,7 +7953,7 @@ export type UnfollowTopicInput = {
 /** The return fields from unfollowing a topic for the connected user. */
 export type UnfollowTopicPayload = {
   __typename?: 'UnfollowTopicPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -7741,7 +7961,7 @@ export type UnfollowTopicPayload = {
 
 /** The input fields to unfollow a user for the connected user. */
 export type UnfollowUserInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The Dailymotion ID of the user. */
   xid: Scalars['String']['input'];
@@ -7750,7 +7970,7 @@ export type UnfollowUserInput = {
 /** The return fields from unfollowing a chanusernel for the connected user. */
 export type UnfollowUserPayload = {
   __typename?: 'UnfollowUserPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -7758,7 +7978,7 @@ export type UnfollowUserPayload = {
 
 /** The input fields to unlike a video for the connected user. */
 export type UnlikeVideoInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The Dailymotion ID of the video to unlike. */
   videoXid: Scalars['String']['input'];
@@ -7767,7 +7987,7 @@ export type UnlikeVideoInput = {
 /** The return fields from unliking a video for the connected user. */
 export type UnlikeVideoPayload = {
   __typename?: 'UnlikeVideoPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -7775,7 +7995,7 @@ export type UnlikeVideoPayload = {
 
 /** The input fields to update a behavior rule. */
 export type UpdateBehaviorRuleInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** Condition when to apply the rule (contains JSON). */
   condition?: InputMaybe<Scalars['String']['input']>;
@@ -7804,7 +8024,7 @@ export type UpdateBehaviorRuleInput = {
 /** The return fields from updating a rule used for feature flipping or AB experiments. */
 export type UpdateBehaviorRulePayload = {
   __typename?: 'UpdateBehaviorRulePayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The updated rule. */
   rule?: Maybe<Rule>;
@@ -7814,7 +8034,7 @@ export type UpdateBehaviorRulePayload = {
 export type UpdateChannelInput = {
   /** The url of the avatar of the channel. Send `null` to remove the avatar url. */
   avatarUrl?: InputMaybe<Scalars['String']['input']>;
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The country of the channel. */
   country?: InputMaybe<Scalars['String']['input']>;
@@ -7837,7 +8057,7 @@ export type UpdateChannelPayload = {
   __typename?: 'UpdateChannelPayload';
   /** The updated channel. */
   channel?: Maybe<Channel>;
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -7845,7 +8065,7 @@ export type UpdateChannelPayload = {
 
 /** The input fields to update a collection. */
 export type UpdateCollectionInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The Dailymotion ID of the collection to update. */
   collectionXid: Scalars['String']['input'];
@@ -7860,7 +8080,7 @@ export type UpdateCollectionInput = {
 /** The return fields from updating a collection. */
 export type UpdateCollectionPayload = {
   __typename?: 'UpdateCollectionPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The updated collection. */
   collection?: Maybe<Collection>;
@@ -7870,7 +8090,7 @@ export type UpdateCollectionPayload = {
 
 /** The input fields to update the email notification settings of the connected user. */
 export type UpdateNotificationSettingsEmailInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** Indicate whether to receive notification when a channel you follow starts a live. */
   followingChannelStartsLive?: InputMaybe<Scalars['Boolean']['input']>;
@@ -7891,7 +8111,7 @@ export type UpdateNotificationSettingsEmailInput = {
 /** The return fields from updating the email notification settings of the connected user. */
 export type UpdateNotificationSettingsEmailPayload = {
   __typename?: 'UpdateNotificationSettingsEmailPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The udpated email notification settngs. */
   notificationSettings?: Maybe<NotificationSettings>;
@@ -7901,7 +8121,7 @@ export type UpdateNotificationSettingsEmailPayload = {
 
 /** The input fields to update the push notification settings of the connected user. */
 export type UpdateNotificationSettingsPushInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** Indicate whether to receive notification when a channel you follow starts a live. */
   followingStartsLive?: InputMaybe<Scalars['Boolean']['input']>;
@@ -7916,7 +8136,7 @@ export type UpdateNotificationSettingsPushInput = {
 /** The return fields from updating the email notification settings of the connected user. */
 export type UpdateNotificationSettingsPushPayload = {
   __typename?: 'UpdateNotificationSettingsPushPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The updated push notification settings. */
   notificationSettings?: Maybe<NotificationSettings>;
@@ -7926,7 +8146,7 @@ export type UpdateNotificationSettingsPushPayload = {
 
 /** The input fields to update a reaction. */
 export type UpdateReactionInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** the hashtags of the reaction */
   hashtags?: InputMaybe<Array<Scalars['String']['input']>>;
@@ -7944,7 +8164,7 @@ export type UpdateUserInput = {
   avatarURL?: InputMaybe<Scalars['String']['input']>;
   /** The birthday (DateTime ISO8601) of the user. */
   birthday?: InputMaybe<Scalars['DateTime']['input']>;
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** @deprecated(reason: "Use mutation `emailChangeRequest`.") - The email address of the user. */
   email?: InputMaybe<Scalars['String']['input']>;
@@ -7984,7 +8204,7 @@ export type UpdateUserInput = {
 /** The return fields to updating a user. */
 export type UpdateUserPayload = {
   __typename?: 'UpdateUserPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -7996,7 +8216,7 @@ export type UpdateUserPayload = {
 export type UpdateVideoInput = {
   /** The category of the video. */
   category?: InputMaybe<MediaCategory>;
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The description of the video. */
   description?: InputMaybe<Scalars['String']['input']>;
@@ -8025,7 +8245,7 @@ export type UpdateVideoInput = {
 /** The return fields from updating a video. */
 export type UpdateVideoPayload = {
   __typename?: 'UpdateVideoPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -8048,7 +8268,7 @@ export type User = Node & {
   accountStatus?: Maybe<Scalars['String']['output']>;
   /**
    * The account type of the user (viewer, partner, partner-verified).
-   * @deprecated Use `channel.accountType`.
+   * @deprecated Use `channel.account`.
    */
   accountType?: Maybe<Scalars['String']['output']>;
   /** The Apple ID of the user. */
@@ -8097,6 +8317,8 @@ export type User = Node & {
   email?: Maybe<Scalars['String']['output']>;
   /** Information about the email change request of the user. */
   emailChangeRequest?: Maybe<EmailChangeRequest>;
+  /** Indicates whether the email of the user is verified. */
+  emailVerified: Scalars['Boolean']['output'];
   /** The Facebook ID of the user. */
   facebookID?: Maybe<Scalars['String']['output']>;
   /** The first name of the user. */
@@ -8149,7 +8371,10 @@ export type User = Node & {
   interests?: Maybe<UserInterestConnection>;
   /** Indicates whether the user is an admin. */
   isAdmin: Scalars['Boolean']['output'];
-  /** Indicates whether the user is confirmed. */
+  /**
+   * Indicates whether the user is confirmed.
+   * @deprecated Use `emailVerified`.
+   */
   isConfirmed: Scalars['Boolean']['output'];
   /** Indicates whether the user can mass report videos as copyright owner. */
   isCopyrightOwnerMassReport: Scalars['Boolean']['output'];
@@ -8426,7 +8651,7 @@ export enum UserCollectionsSort {
 
 /** The input fields to confirm an email change. */
 export type UserEmailChangeConfirmInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The confirmation code received from the email change request. */
   code: Scalars['String']['input'];
@@ -8435,7 +8660,7 @@ export type UserEmailChangeConfirmInput = {
 /** The return fields from confirming an email change. */
 export type UserEmailChangeConfirmPayload = {
   __typename?: 'UserEmailChangeConfirmPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -8443,7 +8668,7 @@ export type UserEmailChangeConfirmPayload = {
 
 /** The input fields to request an email change. */
 export type UserEmailChangeRequestInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The new email for the connected user. */
   email: Scalars['String']['input'];
@@ -8454,7 +8679,7 @@ export type UserEmailChangeRequestInput = {
 /** The return fields from requesting an email change. */
 export type UserEmailChangeRequestPayload = {
   __typename?: 'UserEmailChangeRequestPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -8462,14 +8687,14 @@ export type UserEmailChangeRequestPayload = {
 
 /** The input fields to request a new email confirmation code. */
 export type UserEmailConfirmationCodeResetInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
 };
 
 /** The return fields from requesting a new email confirmation code. */
 export type UserEmailConfirmationCodeResetPayload = {
   __typename?: 'UserEmailConfirmationCodeResetPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -8477,7 +8702,7 @@ export type UserEmailConfirmationCodeResetPayload = {
 
 /** The input fields to generate an email validation token. */
 export type UserEmailValidationTokenInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The email address of the user. */
   email: Scalars['String']['input'];
@@ -8486,7 +8711,7 @@ export type UserEmailValidationTokenInput = {
 /** The return fields from requesting an email validation token. */
 export type UserEmailValidationTokenPayload = {
   __typename?: 'UserEmailValidationTokenPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The email validation token to request an activation code. */
   emailValidationToken: Scalars['String']['output'];
@@ -8525,7 +8750,7 @@ export type UserInterest = Node & {
 
 /** The input fields to add an interest to a user. */
 export type UserInterestAddInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The ID of the interest. */
   interestId: Scalars['Int']['input'];
@@ -8534,7 +8759,7 @@ export type UserInterestAddInput = {
 /** The return fields from adding an interest of the user. */
 export type UserInterestAddPayload = {
   __typename?: 'UserInterestAddPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -8562,7 +8787,7 @@ export type UserInterestEdge = {
 
 /** The input fields to remove an interest from a user. */
 export type UserInterestRemoveInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The ID of the interest. */
   interestId: Scalars['Int']['input'];
@@ -8571,7 +8796,7 @@ export type UserInterestRemoveInput = {
 /** The return fields from removing an interest from the user. */
 export type UserInterestRemovePayload = {
   __typename?: 'UserInterestRemovePayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -8579,7 +8804,7 @@ export type UserInterestRemovePayload = {
 
 /** The input fields to replace the interests of a user. */
 export type UserInterestsUpdateInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The ID of the interest. */
   interestIds: Array<Scalars['Int']['input']>;
@@ -8588,7 +8813,7 @@ export type UserInterestsUpdateInput = {
 /** The return fields from replacing the interests of the user. */
 export type UserInterestsUpdatePayload = {
   __typename?: 'UserInterestsUpdatePayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -8596,7 +8821,7 @@ export type UserInterestsUpdatePayload = {
 
 /** The input fields to request a code B of OpenWeb service. */
 export type UserOpenWebCodeBRequestInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The session ID received from client side. */
   codeA: Scalars['String']['input'];
@@ -8605,7 +8830,7 @@ export type UserOpenWebCodeBRequestInput = {
 /** The return fields from confirming an email change. */
 export type UserOpenWebCodeBRequestPayload = {
   __typename?: 'UserOpenWebCodeBRequestPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The code B provided by OpenWeb service. */
   codeB: Scalars['String']['output'];
@@ -8750,7 +8975,10 @@ export enum UserSubscriptionsType {
 /** Information about a video. */
 export type Video = Content & Node & Recording & {
   __typename?: 'Video';
-  /** Indicates whether the video can be embedded outside of Dailymotion. */
+  /**
+   * Indicates whether the video can be embedded outside of Dailymotion.
+   * @deprecated Use `settings.embeddable` field.
+   */
   allowEmbed?: Maybe<Scalars['Boolean']['output']>;
   /** The aspect ratio of the video (e.g. 1.33333 for 4/3, 1.77777 for 16/9). */
   aspectRatio?: Maybe<Scalars['Float']['output']>;
@@ -8804,9 +9032,17 @@ export type Video = Content & Node & Recording & {
   description?: Maybe<Scalars['String']['output']>;
   /** The duration of the video in seconds. */
   duration?: Maybe<Scalars['Int']['output']>;
-  /** The HTML embedding code to embed the video outside of Dailymotion. */
+  /** The embed details of the video. */
+  embed?: Maybe<Embed>;
+  /**
+   * The HTML embedding code to embed the video outside of Dailymotion.
+   * @deprecated Use `embed.html` field.
+   */
   embedHtml?: Maybe<Scalars['String']['output']>;
-  /** The URL to embed the video outside of Dailymotion. */
+  /**
+   * The URL to embed the video outside of Dailymotion.
+   * @deprecated Use `embed.url` field.
+   */
   embedURL?: Maybe<Scalars['String']['output']>;
   /** The geoblocked countries of the video. */
   geoblockedCountries?: Maybe<GeoblockedCountries>;
@@ -8844,7 +9080,10 @@ export type Video = Content & Node & Recording & {
   interests?: Maybe<InterestConnection>;
   /** Indicates whether the video is 360°. */
   is360?: Maybe<Scalars['Boolean']['output']>;
-  /** Indicates whether advertising is blocked on the video. */
+  /**
+   * Indicates whether advertising is blocked on the video.
+   * @deprecated Use `settings.adsStreamable` field.
+   */
   isAdvertisingBlocked?: Maybe<Scalars['Boolean']['output']>;
   /**
    * Indicates whether the video is bookmarked by the connected user.
@@ -8852,11 +9091,17 @@ export type Video = Content & Node & Recording & {
    * @deprecated Use `viewerEngagement.bookmarked` field.
    */
   isBookmarked?: Maybe<Scalars['Boolean']['output']>;
-  /** Indicates whether comments is enabled on the video. */
+  /**
+   * Indicates whether comments is enabled on the video.
+   * @deprecated Use `settings.threadsDisabled` field.
+   */
   isCommentsEnabled?: Maybe<Scalars['Boolean']['output']>;
   /** Indicates whether the video is "Created for Kids" (intends to target an audience of age 16 and under). */
   isCreatedForKids?: Maybe<Scalars['Boolean']['output']>;
-  /** Indicates whether the video can be downloaded. */
+  /**
+   * Indicates whether the video can be downloaded.
+   * @deprecated Use `settings.downloadable` field.
+   */
   isDownloadable?: Maybe<Scalars['Boolean']['output']>;
   /** Indicates whether the video is explicit. */
   isExplicit?: Maybe<Scalars['Boolean']['output']>;
@@ -8885,7 +9130,10 @@ export type Video = Content & Node & Recording & {
    * @deprecated Use `viewerEngagement.reacted` field.
    */
   isReacted?: Maybe<Scalars['Boolean']['output']>;
-  /** Indicates whether reaction videos are allowed on the video. */
+  /**
+   * Indicates whether reaction videos are allowed on the video.
+   * @deprecated Use `settings.threadsDisabled` field.
+   */
   isReactionVideosEnabled?: Maybe<Scalars['Boolean']['output']>;
   /**
    * Indicates whether the current user has started watching the video.
@@ -8921,6 +9169,8 @@ export type Video = Content & Node & Recording & {
   relatedVideos?: Maybe<VideoConnection>;
   /** The restriction information of the video. */
   restriction?: Maybe<Restriction>;
+  /** The settings of the video. */
+  settings?: Maybe<VideoSettings>;
   /** The share urls of the video. */
   shareUrls?: Maybe<VideoShareUrls>;
   /**
@@ -9007,8 +9257,8 @@ export type VideoCollectionsArgs = {
 /** Information about a video. */
 export type VideoCommentsArgs = {
   first?: InputMaybe<Scalars['Int']['input']>;
+  orderBy?: InputMaybe<CommentSort>;
   page?: InputMaybe<Scalars['Int']['input']>;
-  sort?: InputMaybe<CommentSort>;
 };
 
 
@@ -9132,6 +9382,13 @@ export type VideoTopicsArgs = {
   whitelistedOnly?: InputMaybe<Scalars['Boolean']['input']>;
 };
 
+
+/** Information about a video. */
+export type VideoTranscriptArgs = {
+  first?: InputMaybe<Scalars['Int']['input']>;
+  page?: InputMaybe<Scalars['Int']['input']>;
+};
+
 /** The connection type for Video. */
 export type VideoConnection = {
   __typename?: 'VideoConnection';
@@ -9253,6 +9510,21 @@ export enum VideoRelatedAlgo {
   UploaderWithSiblings = 'UPLOADER_WITH_SIBLINGS'
 }
 
+/** Information about the settings of a Video. */
+export type VideoSettings = Node & {
+  __typename?: 'VideoSettings';
+  /** Indicates whether ads can be streamed while the video plays. */
+  adsStreamable?: Maybe<Scalars['Boolean']['output']>;
+  /** Indicates whether the video can be downloaded. */
+  downloadable?: Maybe<Scalars['Boolean']['output']>;
+  /** Indicates whether the video can be embedded. */
+  embeddable?: Maybe<Scalars['Boolean']['output']>;
+  /** The ID of the object. */
+  id: Scalars['ID']['output'];
+  /** Indicates whether threads (comments and reactions) are disabled. */
+  threadsDisabled?: Maybe<Scalars['Boolean']['output']>;
+};
+
 /** Information about the share urls of a Video. */
 export type VideoShareUrls = Node & ShareUrls & {
   __typename?: 'VideoShareUrls';
@@ -9544,7 +9816,7 @@ export type Watch = History & Node & {
 
 /** The input fields to add a video to the `Watched` list of the connected user. */
 export type WatchedVideoAddInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** Indicates whether the video is watched completely. */
   completed?: InputMaybe<Scalars['Boolean']['input']>;
@@ -9555,7 +9827,7 @@ export type WatchedVideoAddInput = {
 /** The return fields from adding a video to the `Watched` list of the connected user. */
 export type WatchedVideoAddPayload = {
   __typename?: 'WatchedVideoAddPayload';
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: Maybe<Scalars['String']['output']>;
   /** The status of the mutation. */
   status?: Maybe<Status>;
@@ -9641,7 +9913,7 @@ export type WebMetadataConnectionEdge = {
 
 /** The input fields to add a like for the connected user. */
 export type AddLikeInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The ID of the post. */
   postId: Scalars['ID']['input'];
@@ -9651,7 +9923,7 @@ export type AddLikeInput = {
 
 /** The input fields to remove a post for the connected user. */
 export type RemoveLikeInput = {
-  /** The ID generated for the client performing the mutation. */
+  /** @deprecated(reason: "No longer supported.") - The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
   /** The ID of the post. */
   postId: Scalars['ID']['input'];
@@ -9740,11 +10012,11 @@ export type ResolversUnionTypes<_RefType extends Record<string, unknown>> = {
 export type ResolversInterfaceTypes<_RefType extends Record<string, unknown>> = {
   AnalyticsPayload: ( AnalyticsFlatPayload ) | ( AnalyticsGroupedPayload );
   Bookmark: ( Omit<Favorite, 'post'> & { post: _RefType['Post'] } ) | ( Omit<Like, 'post'> & { post: _RefType['Post'] } );
-  Category: ( ContentCategory ) | ( CuratedCategory );
+  Category: ( ContentCategory ) | ( CuratedCategory ) | ( Interest );
   Content: ( Collection ) | ( Omit<Comment, 'opener'> & { opener?: Maybe<_RefType['Story']> } ) | ( Live ) | ( Omit<Reaction, 'opener'> & { opener?: Maybe<_RefType['Story']> } ) | ( Video );
   History: ( Omit<Favorite, 'post'> & { post: _RefType['Post'] } ) | ( Omit<Like, 'post'> & { post: _RefType['Post'] } ) | ( Omit<Watch, 'post'> & { post: _RefType['Post'] } );
-  Metric: ( BookmarkMetric ) | ( ChannelMetric ) | ( CollectionMetric ) | ( CommentMetric ) | ( LikeMetric ) | ( LiveMetric ) | ( ReactionMetric ) | ( VideoMetric );
-  Node: ( Omit<Analytics, 'timeSeries' | 'topValues'> & { timeSeries: _RefType['AnalyticsPayload'], topValues: _RefType['AnalyticsPayload'] } ) | ( AnalyticsGroupedPayloadItem ) | ( AnalyticsReport ) | ( Attribute ) | ( Behavior ) | ( BehaviorRuleTag ) | ( BookmarkMetric ) | ( Caption ) | ( Channel ) | ( ChannelEngagementMetrics ) | ( ChannelExternalLinks ) | ( ChannelMetric ) | ( ChannelMetrics ) | ( ChannelShareUrls ) | ( ChannelStats ) | ( ChannelStatsFollowers ) | ( ChannelStatsReactions ) | ( ChannelStatsVideos ) | ( ChannelStatsViews ) | ( ChannelUpdateRequired ) | ( Collection ) | ( CollectionEngagementMetrics ) | ( CollectionMetric ) | ( CollectionMetrics ) | ( CollectionStats ) | ( CollectionStatsVideos ) | ( Omit<Comment, 'opener'> & { opener?: Maybe<_RefType['Story']> } ) | ( CommentEngagementMetrics ) | ( CommentMetrics ) | ( CommentViewerEngagement ) | ( ContentCategory ) | ( Omit<Conversation, 'story'> & { story?: Maybe<_RefType['Story']> } ) | ( Country ) | ( CuratedCategory ) | ( DailymotionAd ) | ( EmailChangeRequest ) | ( ExperimentMatch ) | ( FallbackCountry ) | ( Omit<Favorite, 'post'> & { post: _RefType['Post'] } ) | ( FeatureMatch ) | ( FeaturedContent ) | ( FileUpload ) | ( FollowedChannel ) | ( FollowedTopic ) | ( Follower ) | ( FollowerEngagement ) | ( FollowerEngagementNotifications ) | ( Omit<Following, 'story'> & { story?: Maybe<_RefType['Story']> } ) | ( FollowingChannelStartsLive ) | ( FollowingChannelUploadsVideo ) | ( FollowingStartsLive ) | ( GeoblockedCountries ) | ( Geoblocking ) | ( Hashtag ) | ( HashtagEngagementMetrics ) | ( HashtagMetrics ) | ( Image ) | ( Interest ) | ( Language ) | ( Omit<Like, 'post'> & { post: _RefType['Post'] } ) | ( Live ) | ( LiveEngagementMetrics ) | ( LiveMetric ) | ( LiveMetrics ) | ( LiveShareUrls ) | ( LiveStats ) | ( LiveStatsViews ) | ( LiveStreamUrls ) | ( LiveStreams ) | ( LiveViewerEngagement ) | ( Localization ) | ( LocalizationMe ) | ( MediaModeration ) | ( MediaTag ) | ( MediaUploadInfo ) | ( Metadata ) | ( MonetizationInsights ) | ( Neon ) | ( NotificationSettings ) | ( Organization ) | ( OrganizationAnalysis ) | ( OrganizationStats ) | ( OrganizationStatsChannels ) | ( Partner ) | ( PartnerReportFile ) | ( PartnerSpace ) | ( Player ) | ( PlayerQueue ) | ( Omit<Poll, 'component' | 'opener' | 'post'> & { component?: Maybe<_RefType['Component']>, opener?: Maybe<_RefType['Story']>, post?: Maybe<_RefType['Post']> } ) | ( PollOption ) | ( PollShareUrls ) | ( ProductUpdates ) | ( Quality ) | ( Omit<Reaction, 'opener'> & { opener?: Maybe<_RefType['Story']> } ) | ( ReactionEngagementMetrics ) | ( ReactionMetric ) | ( ReactionMetrics ) | ( ReactionShareUrls ) | ( ReactionStreamUrls ) | ( ReactionVideo ) | ( ReactionVideoStats ) | ( ReactionVideoStatsBookmarks ) | ( ReactionVideoStatsFavorites ) | ( ReactionVideoStatsLikes ) | ( ReactionVideoStatsReactionVideos ) | ( ReactionVideoStatsSaves ) | ( ReactionViewerEngagement ) | ( Omit<RecommendedRecording, 'recording'> & { recording?: Maybe<_RefType['Recording']> } ) | ( RemindUnwatchedVideos ) | ( ReportFileDownloadLink ) | ( Restriction ) | ( Rule ) | ( Search ) | ( Omit<Section, 'relatedComponent'> & { relatedComponent?: Maybe<_RefType['Component']> } ) | ( SharingUrl ) | ( Subdivision ) | ( Subtitle ) | ( Suggestion ) | ( SupportedCountry ) | ( SupportedLanguage ) | ( Thumbnails ) | ( Tips ) | ( Topic ) | ( TopicLabel ) | ( TopicShareUrls ) | ( TopicStats ) | ( TopicStatsFollowers ) | ( TopicStatsVideos ) | ( TopicWhitelistStatus ) | ( User ) | ( UserInterest ) | ( UserPollAnswer ) | ( UserStats ) | ( UserStatsCollections ) | ( UserStatsFollowers ) | ( UserStatsFollowingChannels ) | ( UserStatsFollowingTopics ) | ( UserStatsLikedVideos ) | ( UserStatsReactionVideos ) | ( UserStatsUploadedVideos ) | ( UserStatsVideos ) | ( UserStatsWatchLater ) | ( UserStatsWatchedVideos ) | ( Video ) | ( VideoDigest ) | ( VideoEngagementMetrics ) | ( VideoMetric ) | ( VideoMetrics ) | ( VideoShareUrls ) | ( VideoStats ) | ( VideoStatsBookmarks ) | ( VideoStatsFavorites ) | ( VideoStatsLikes ) | ( VideoStatsReactionVideos ) | ( VideoStatsSaves ) | ( VideoStatsViews ) | ( VideoStreamUrls ) | ( VideoStreams ) | ( VideoViewMetrics ) | ( VideoViewerEngagement ) | ( Views ) | ( Omit<Watch, 'post'> & { post: _RefType['Post'] } ) | ( Web ) | ( WebMetadata ) | ( WebMetadataConnection );
+  Metric: ( BookmarkMetric ) | ( ChannelMetric ) | ( CollectionMetric ) | ( CommentMetric ) | ( FollowerMetric ) | ( FollowingMetric ) | ( LikeMetric ) | ( LiveMetric ) | ( ReactionMetric ) | ( VideoMetric );
+  Node: ( Omit<Analytics, 'timeSeries' | 'topValues'> & { timeSeries: _RefType['AnalyticsPayload'], topValues: _RefType['AnalyticsPayload'] } ) | ( AnalyticsGroupedPayloadItem ) | ( AnalyticsReport ) | ( Attribute ) | ( Behavior ) | ( BehaviorRuleTag ) | ( BookmarkMetric ) | ( Caption ) | ( Channel ) | ( ChannelEngagementMetrics ) | ( ChannelExternalLinks ) | ( ChannelMetric ) | ( ChannelMetrics ) | ( ChannelShareUrls ) | ( ChannelStats ) | ( ChannelStatsFollowers ) | ( ChannelStatsReactions ) | ( ChannelStatsVideos ) | ( ChannelStatsViews ) | ( ChannelUpdateRequired ) | ( ChannelViewMetrics ) | ( Collection ) | ( CollectionEngagementMetrics ) | ( CollectionMetric ) | ( CollectionMetrics ) | ( CollectionStats ) | ( CollectionStatsVideos ) | ( Omit<Comment, 'opener'> & { opener?: Maybe<_RefType['Story']> } ) | ( CommentEngagementMetrics ) | ( CommentMetric ) | ( CommentMetrics ) | ( CommentViewerEngagement ) | ( ContentCategory ) | ( Omit<Conversation, 'story'> & { story?: Maybe<_RefType['Story']> } ) | ( Country ) | ( CuratedCategory ) | ( DailymotionAd ) | ( EmailChangeRequest ) | ( Embed ) | ( ExperimentMatch ) | ( FallbackCountry ) | ( Omit<Favorite, 'post'> & { post: _RefType['Post'] } ) | ( FeatureMatch ) | ( FeaturedContent ) | ( FileUpload ) | ( FollowedChannel ) | ( FollowedTopic ) | ( Follower ) | ( FollowerEngagement ) | ( FollowerEngagementNotifications ) | ( FollowerMetric ) | ( Omit<Following, 'story'> & { story?: Maybe<_RefType['Story']> } ) | ( FollowingChannelStartsLive ) | ( FollowingChannelUploadsVideo ) | ( FollowingMetric ) | ( FollowingStartsLive ) | ( GeoblockedCountries ) | ( Geoblocking ) | ( Hashtag ) | ( HashtagEngagementMetrics ) | ( HashtagMetrics ) | ( Image ) | ( Interest ) | ( Language ) | ( Omit<Like, 'post'> & { post: _RefType['Post'] } ) | ( LikeMetric ) | ( Live ) | ( LiveEngagementMetrics ) | ( LiveMetric ) | ( LiveMetrics ) | ( LiveShareUrls ) | ( LiveStats ) | ( LiveStatsViews ) | ( LiveStreamUrls ) | ( LiveStreams ) | ( LiveViewerEngagement ) | ( Localization ) | ( LocalizationMe ) | ( MediaModeration ) | ( MediaPublishingInfo ) | ( MediaTag ) | ( MediaUploadInfo ) | ( Metadata ) | ( MonetizationInsights ) | ( Neon ) | ( NotificationSettings ) | ( Organization ) | ( OrganizationAnalysis ) | ( OrganizationStats ) | ( OrganizationStatsChannels ) | ( Partner ) | ( PartnerReportFile ) | ( PartnerSpace ) | ( Player ) | ( PlayerQueue ) | ( Omit<Poll, 'component' | 'opener' | 'post'> & { component?: Maybe<_RefType['Component']>, opener?: Maybe<_RefType['Story']>, post?: Maybe<_RefType['Post']> } ) | ( PollOption ) | ( PollShareUrls ) | ( ProductUpdates ) | ( Quality ) | ( Omit<Reaction, 'opener'> & { opener?: Maybe<_RefType['Story']> } ) | ( ReactionEngagementMetrics ) | ( ReactionMetric ) | ( ReactionMetrics ) | ( ReactionShareUrls ) | ( ReactionStreamUrls ) | ( ReactionVideo ) | ( ReactionVideoStats ) | ( ReactionVideoStatsBookmarks ) | ( ReactionVideoStatsFavorites ) | ( ReactionVideoStatsLikes ) | ( ReactionVideoStatsReactionVideos ) | ( ReactionVideoStatsSaves ) | ( ReactionViewerEngagement ) | ( Omit<RecommendedRecording, 'recording'> & { recording?: Maybe<_RefType['Recording']> } ) | ( RemindUnwatchedVideos ) | ( ReportFileDownloadLink ) | ( Restriction ) | ( Rule ) | ( Search ) | ( Omit<Section, 'relatedComponent'> & { relatedComponent?: Maybe<_RefType['Component']> } ) | ( SharingUrl ) | ( Subdivision ) | ( Subtitle ) | ( Suggestion ) | ( SupportedCountry ) | ( SupportedLanguage ) | ( Thumbnails ) | ( Tips ) | ( Topic ) | ( TopicLabel ) | ( TopicShareUrls ) | ( TopicStats ) | ( TopicStatsFollowers ) | ( TopicStatsVideos ) | ( TopicWhitelistStatus ) | ( User ) | ( UserInterest ) | ( UserPollAnswer ) | ( UserStats ) | ( UserStatsCollections ) | ( UserStatsFollowers ) | ( UserStatsFollowingChannels ) | ( UserStatsFollowingTopics ) | ( UserStatsLikedVideos ) | ( UserStatsReactionVideos ) | ( UserStatsUploadedVideos ) | ( UserStatsVideos ) | ( UserStatsWatchLater ) | ( UserStatsWatchedVideos ) | ( Video ) | ( VideoDigest ) | ( VideoEngagementMetrics ) | ( VideoMetric ) | ( VideoMetrics ) | ( VideoSettings ) | ( VideoShareUrls ) | ( VideoStats ) | ( VideoStatsBookmarks ) | ( VideoStatsFavorites ) | ( VideoStatsLikes ) | ( VideoStatsReactionVideos ) | ( VideoStatsSaves ) | ( VideoStatsViews ) | ( VideoStreamUrls ) | ( VideoStreams ) | ( VideoViewMetrics ) | ( VideoViewerEngagement ) | ( Views ) | ( Omit<Watch, 'post'> & { post: _RefType['Post'] } ) | ( Web ) | ( WebMetadata ) | ( WebMetadataConnection );
   PostEngagementMetrics: ( LiveEngagementMetrics ) | ( ReactionEngagementMetrics ) | ( VideoEngagementMetrics );
   PostMetrics: ( LiveMetrics ) | ( ReactionMetrics ) | ( VideoMetrics );
   Recording: ( Live ) | ( Omit<Reaction, 'opener'> & { opener?: Maybe<_RefType['Story']> } ) | ( Video );
@@ -9923,6 +10195,7 @@ export type ResolversTypes = {
   DeleteVideoInput: DeleteVideoInput;
   DeleteVideoPayload: ResolverTypeWrapper<DeleteVideoPayload>;
   EmailChangeRequest: ResolverTypeWrapper<EmailChangeRequest>;
+  Embed: ResolverTypeWrapper<Embed>;
   EmbedType: EmbedType;
   ExperimentMatch: ResolverTypeWrapper<ExperimentMatch>;
   ExperimentMatchConnection: ResolverTypeWrapper<ExperimentMatchConnection>;
@@ -9967,6 +10240,9 @@ export type ResolversTypes = {
   FollowerEdge: ResolverTypeWrapper<FollowerEdge>;
   FollowerEngagement: ResolverTypeWrapper<FollowerEngagement>;
   FollowerEngagementNotifications: ResolverTypeWrapper<FollowerEngagementNotifications>;
+  FollowerMetric: ResolverTypeWrapper<FollowerMetric>;
+  FollowerMetricConnection: ResolverTypeWrapper<FollowerMetricConnection>;
+  FollowerMetricEdge: ResolverTypeWrapper<FollowerMetricEdge>;
   Following: ResolverTypeWrapper<Omit<Following, 'story'> & { story?: Maybe<ResolversTypes['Story']> }>;
   FollowingChannelStartsLive: ResolverTypeWrapper<FollowingChannelStartsLive>;
   FollowingChannelUploadsVideo: ResolverTypeWrapper<FollowingChannelUploadsVideo>;
@@ -9974,11 +10250,16 @@ export type ResolversTypes = {
   FollowingEdge: ResolverTypeWrapper<FollowingEdge>;
   FollowingFilter: FollowingFilter;
   FollowingInput: FollowingInput;
+  FollowingMetric: ResolverTypeWrapper<FollowingMetric>;
+  FollowingMetricConnection: ResolverTypeWrapper<FollowingMetricConnection>;
+  FollowingMetricEdge: ResolverTypeWrapper<FollowingMetricEdge>;
   FollowingPayload: ResolverTypeWrapper<FollowingPayload>;
   FollowingStartsLive: ResolverTypeWrapper<FollowingStartsLive>;
   Gender: Gender;
   GenerateFileUploadUrlInput: GenerateFileUploadUrlInput;
   GenerateFileUploadUrlPayload: ResolverTypeWrapper<GenerateFileUploadUrlPayload>;
+  GenerateVerifyEmailTokenInput: GenerateVerifyEmailTokenInput;
+  GenerateVerifyEmailTokenPayload: ResolverTypeWrapper<GenerateVerifyEmailTokenPayload>;
   GeoblockedCountries: ResolverTypeWrapper<GeoblockedCountries>;
   Geoblocking: ResolverTypeWrapper<Geoblocking>;
   GeoblockingConnection: ResolverTypeWrapper<GeoblockingConnection>;
@@ -10026,6 +10307,7 @@ export type ResolversTypes = {
   LiveMetricConnection: ResolverTypeWrapper<LiveMetricConnection>;
   LiveMetricEdge: ResolverTypeWrapper<LiveMetricEdge>;
   LiveMetrics: ResolverTypeWrapper<LiveMetrics>;
+  LiveSettings: ResolverTypeWrapper<LiveSettings>;
   LiveShareUrls: ResolverTypeWrapper<LiveShareUrls>;
   LiveStats: ResolverTypeWrapper<LiveStats>;
   LiveStatsViews: ResolverTypeWrapper<LiveStatsViews>;
@@ -10168,6 +10450,8 @@ export type ResolversTypes = {
   ReportFileDownloadLink: ResolverTypeWrapper<ReportFileDownloadLink>;
   ReportFileDownloadLinkConnection: ResolverTypeWrapper<ReportFileDownloadLinkConnection>;
   ReportFileDownloadLinkEdge: ResolverTypeWrapper<ReportFileDownloadLinkEdge>;
+  ReportRecordingInput: ReportRecordingInput;
+  ReportRecordingPayload: ResolverTypeWrapper<ReportRecordingPayload>;
   ReportVideoInput: ReportVideoInput;
   ReportVideoPayload: ResolverTypeWrapper<ReportVideoPayload>;
   ReporterEmailVerifyInput: ReporterEmailVerifyInput;
@@ -10192,8 +10476,8 @@ export type ResolversTypes = {
   SectionEdge: ResolverTypeWrapper<SectionEdge>;
   SendTransactionalEmailInput: SendTransactionalEmailInput;
   SendTransactionalEmailPayload: ResolverTypeWrapper<SendTransactionalEmailPayload>;
-  SendValidationEmailInput: SendValidationEmailInput;
-  SendValidationEmailPayload: ResolverTypeWrapper<SendValidationEmailPayload>;
+  SendVerifyEmailCodeInput: SendVerifyEmailCodeInput;
+  SendVerifyEmailCodePayload: ResolverTypeWrapper<SendVerifyEmailCodePayload>;
   ShareUrls: ResolverTypeWrapper<ResolversInterfaceTypes<ResolversTypes>['ShareUrls']>;
   SharingURL: ResolverTypeWrapper<SharingUrl>;
   SharingURLConnection: ResolverTypeWrapper<SharingUrlConnection>;
@@ -10317,6 +10601,7 @@ export type ResolversTypes = {
   VideoMetrics: ResolverTypeWrapper<VideoMetrics>;
   VideoOrLive: ResolverTypeWrapper<ResolversUnionTypes<ResolversTypes>['VideoOrLive']>;
   VideoRelatedAlgo: VideoRelatedAlgo;
+  VideoSettings: ResolverTypeWrapper<VideoSettings>;
   VideoShareUrls: ResolverTypeWrapper<VideoShareUrls>;
   VideoStats: ResolverTypeWrapper<VideoStats>;
   VideoStatsBookmarks: ResolverTypeWrapper<VideoStatsBookmarks>;
@@ -10499,6 +10784,7 @@ export type ResolversParentTypes = {
   DeleteVideoInput: DeleteVideoInput;
   DeleteVideoPayload: DeleteVideoPayload;
   EmailChangeRequest: EmailChangeRequest;
+  Embed: Embed;
   ExperimentMatch: ExperimentMatch;
   ExperimentMatchConnection: ExperimentMatchConnection;
   ExperimentMatchEdge: ExperimentMatchEdge;
@@ -10538,6 +10824,9 @@ export type ResolversParentTypes = {
   FollowerEdge: FollowerEdge;
   FollowerEngagement: FollowerEngagement;
   FollowerEngagementNotifications: FollowerEngagementNotifications;
+  FollowerMetric: FollowerMetric;
+  FollowerMetricConnection: FollowerMetricConnection;
+  FollowerMetricEdge: FollowerMetricEdge;
   Following: Omit<Following, 'story'> & { story?: Maybe<ResolversParentTypes['Story']> };
   FollowingChannelStartsLive: FollowingChannelStartsLive;
   FollowingChannelUploadsVideo: FollowingChannelUploadsVideo;
@@ -10545,10 +10834,15 @@ export type ResolversParentTypes = {
   FollowingEdge: FollowingEdge;
   FollowingFilter: FollowingFilter;
   FollowingInput: FollowingInput;
+  FollowingMetric: FollowingMetric;
+  FollowingMetricConnection: FollowingMetricConnection;
+  FollowingMetricEdge: FollowingMetricEdge;
   FollowingPayload: FollowingPayload;
   FollowingStartsLive: FollowingStartsLive;
   GenerateFileUploadUrlInput: GenerateFileUploadUrlInput;
   GenerateFileUploadUrlPayload: GenerateFileUploadUrlPayload;
+  GenerateVerifyEmailTokenInput: GenerateVerifyEmailTokenInput;
+  GenerateVerifyEmailTokenPayload: GenerateVerifyEmailTokenPayload;
   GeoblockedCountries: GeoblockedCountries;
   Geoblocking: Geoblocking;
   GeoblockingConnection: GeoblockingConnection;
@@ -10593,6 +10887,7 @@ export type ResolversParentTypes = {
   LiveMetricConnection: LiveMetricConnection;
   LiveMetricEdge: LiveMetricEdge;
   LiveMetrics: LiveMetrics;
+  LiveSettings: LiveSettings;
   LiveShareUrls: LiveShareUrls;
   LiveStats: LiveStats;
   LiveStatsViews: LiveStatsViews;
@@ -10714,6 +11009,8 @@ export type ResolversParentTypes = {
   ReportFileDownloadLink: ReportFileDownloadLink;
   ReportFileDownloadLinkConnection: ReportFileDownloadLinkConnection;
   ReportFileDownloadLinkEdge: ReportFileDownloadLinkEdge;
+  ReportRecordingInput: ReportRecordingInput;
+  ReportRecordingPayload: ReportRecordingPayload;
   ReportVideoInput: ReportVideoInput;
   ReportVideoPayload: ReportVideoPayload;
   ReporterEmailVerifyInput: ReporterEmailVerifyInput;
@@ -10733,8 +11030,8 @@ export type ResolversParentTypes = {
   SectionEdge: SectionEdge;
   SendTransactionalEmailInput: SendTransactionalEmailInput;
   SendTransactionalEmailPayload: SendTransactionalEmailPayload;
-  SendValidationEmailInput: SendValidationEmailInput;
-  SendValidationEmailPayload: SendValidationEmailPayload;
+  SendVerifyEmailCodeInput: SendVerifyEmailCodeInput;
+  SendVerifyEmailCodePayload: SendVerifyEmailCodePayload;
   ShareUrls: ResolversInterfaceTypes<ResolversParentTypes>['ShareUrls'];
   SharingURL: SharingUrl;
   SharingURLConnection: SharingUrlConnection;
@@ -10846,6 +11143,7 @@ export type ResolversParentTypes = {
   VideoMetricEdge: VideoMetricEdge;
   VideoMetrics: VideoMetrics;
   VideoOrLive: ResolversUnionTypes<ResolversParentTypes>['VideoOrLive'];
+  VideoSettings: VideoSettings;
   VideoShareUrls: VideoShareUrls;
   VideoStats: VideoStats;
   VideoStatsBookmarks: VideoStatsBookmarks;
@@ -10897,7 +11195,6 @@ export type BetaDirectiveArgs = {
 export type BetaDirectiveResolver<Result, Parent, ContextType = any, Args = BetaDirectiveArgs> = DirectiveResolverFn<Result, Parent, ContextType, Args>;
 
 export type ConstraintDirectiveArgs = {
-  args?: Maybe<Array<Scalars['String']['input']>>;
   fieldName?: Maybe<Scalars['String']['input']>;
   filterOperators?: Maybe<Array<Scalars['String']['input']>>;
   filterValues?: Maybe<Array<Scalars['String']['input']>>;
@@ -10909,6 +11206,7 @@ export type ConstraintDirectiveArgs = {
   min?: Maybe<Scalars['Int']['input']>;
   minItems?: Maybe<Scalars['Int']['input']>;
   minLength?: Maybe<Scalars['Int']['input']>;
+  oneOf?: Maybe<Array<Scalars['String']['input']>>;
   pattern?: Maybe<Scalars['String']['input']>;
 };
 
@@ -11190,9 +11488,10 @@ export type CaptionEdgeResolvers<ContextType = any, ParentType extends Resolvers
 };
 
 export type CategoryResolvers<ContextType = any, ParentType extends ResolversParentTypes['Category'] = ResolversParentTypes['Category']> = {
-  __resolveType: TypeResolveFn<'ContentCategory' | 'CuratedCategory', ParentType, ContextType>;
+  __resolveType: TypeResolveFn<'ContentCategory' | 'CuratedCategory' | 'Interest', ParentType, ContextType>;
   id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
   name?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
+  slug?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
 };
 
 export type CategoryConnectionResolvers<ContextType = any, ParentType extends ResolversParentTypes['CategoryConnection'] = ResolversParentTypes['CategoryConnection']> = {
@@ -11209,14 +11508,17 @@ export type CategoryEdgeResolvers<ContextType = any, ParentType extends Resolver
 };
 
 export type ChannelResolvers<ContextType = any, ParentType extends ResolversParentTypes['Channel'] = ResolversParentTypes['Channel']> = {
+  account?: Resolver<Maybe<ResolversTypes['Account']>, ParentType, ContextType>;
   accountType?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   avatar?: Resolver<Maybe<ResolversTypes['Image']>, ParentType, ContextType, RequireFields<ChannelAvatarArgs, 'height'>>;
   banner?: Resolver<Maybe<ResolversTypes['Image']>, ParentType, ContextType, Partial<ChannelBannerArgs>>;
   bookmarks?: Resolver<Maybe<ResolversTypes['BookmarkConnection']>, ParentType, ContextType, RequireFields<ChannelBookmarksArgs, 'first' | 'page'>>;
   canChangeName?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
   collections?: Resolver<Maybe<ResolversTypes['CollectionConnection']>, ParentType, ContextType, RequireFields<ChannelCollectionsArgs, 'first' | 'hasPublicVideos' | 'page'>>;
+  comments?: Resolver<Maybe<ResolversTypes['CommentConnection']>, ParentType, ContextType, RequireFields<ChannelCommentsArgs, 'first' | 'page'>>;
   country?: Resolver<Maybe<ResolversTypes['Country']>, ParentType, ContextType>;
   coverURL?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType, RequireFields<ChannelCoverUrlArgs, 'size'>>;
+  createDate?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   description?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   displayName?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   externalLinks?: Resolver<Maybe<ResolversTypes['ChannelExternalLinks']>, ParentType, ContextType>;
@@ -11231,6 +11533,7 @@ export type ChannelResolvers<ContextType = any, ParentType extends ResolversPare
   isNotificationEnabled?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
   language?: Resolver<Maybe<ResolversTypes['Language']>, ParentType, ContextType>;
   lives?: Resolver<Maybe<ResolversTypes['LiveConnection']>, ParentType, ContextType, RequireFields<ChannelLivesArgs, 'first' | 'page'>>;
+  loginDate?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   logoURL?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType, RequireFields<ChannelLogoUrlArgs, 'size'>>;
   medias?: Resolver<Maybe<ResolversTypes['MediaConnection']>, ParentType, ContextType, RequireFields<ChannelMediasArgs, 'first' | 'page'>>;
   metabaseIframeURL?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType, RequireFields<ChannelMetabaseIframeUrlArgs, 'dashboardId'>>;
@@ -11274,8 +11577,8 @@ export type ChannelEdgeResolvers<ContextType = any, ParentType extends Resolvers
 export type ChannelEngagementMetricsResolvers<ContextType = any, ParentType extends ResolversParentTypes['ChannelEngagementMetrics'] = ResolversParentTypes['ChannelEngagementMetrics']> = {
   bookmarks?: Resolver<Maybe<ResolversTypes['BookmarkMetricConnection']>, ParentType, ContextType, Partial<ChannelEngagementMetricsBookmarksArgs>>;
   collections?: Resolver<Maybe<ResolversTypes['CollectionMetricConnection']>, ParentType, ContextType, Partial<ChannelEngagementMetricsCollectionsArgs>>;
-  followers?: Resolver<Maybe<ResolversTypes['ChannelMetricConnection']>, ParentType, ContextType>;
-  followings?: Resolver<Maybe<ResolversTypes['ChannelMetricConnection']>, ParentType, ContextType>;
+  followers?: Resolver<Maybe<ResolversTypes['FollowerMetricConnection']>, ParentType, ContextType>;
+  followings?: Resolver<Maybe<ResolversTypes['FollowingMetricConnection']>, ParentType, ContextType, Partial<ChannelEngagementMetricsFollowingsArgs>>;
   history?: Resolver<Maybe<ResolversTypes['PostMetricConnection']>, ParentType, ContextType, RequireFields<ChannelEngagementMetricsHistoryArgs, 'filter'>>;
   id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
   lives?: Resolver<Maybe<ResolversTypes['LiveMetricConnection']>, ParentType, ContextType, Partial<ChannelEngagementMetricsLivesArgs>>;
@@ -11482,7 +11785,7 @@ export type CollectionStatsVideosResolvers<ContextType = any, ParentType extends
 
 export type CommentResolvers<ContextType = any, ParentType extends ResolversParentTypes['Comment'] = ResolversParentTypes['Comment']> = {
   createDate?: Resolver<ResolversTypes['DateTime'], ParentType, ContextType>;
-  creator?: Resolver<ResolversTypes['Channel'], ParentType, ContextType>;
+  creator?: Resolver<Maybe<ResolversTypes['Channel']>, ParentType, ContextType>;
   id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
   metrics?: Resolver<Maybe<ResolversTypes['CommentMetrics']>, ParentType, ContextType>;
   opener?: Resolver<Maybe<ResolversTypes['Story']>, ParentType, ContextType>;
@@ -11569,6 +11872,7 @@ export type ContentResolvers<ContextType = any, ParentType extends ResolversPare
 export type ContentCategoryResolvers<ContextType = any, ParentType extends ResolversParentTypes['ContentCategory'] = ResolversParentTypes['ContentCategory']> = {
   id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
   name?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
+  slug?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
   __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
 };
 
@@ -11653,6 +11957,7 @@ export type CuratedCategoryResolvers<ContextType = any, ParentType extends Resol
   categoryId?: Resolver<ResolversTypes['Int'], ParentType, ContextType>;
   id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
   name?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
+  slug?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
   __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
 };
 
@@ -11720,6 +12025,13 @@ export type EmailChangeRequestResolvers<ContextType = any, ParentType extends Re
   __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
 };
 
+export type EmbedResolvers<ContextType = any, ParentType extends ResolversParentTypes['Embed'] = ResolversParentTypes['Embed']> = {
+  html?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
+  id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
+  url?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
+  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
+};
+
 export type ExperimentMatchResolvers<ContextType = any, ParentType extends ResolversParentTypes['ExperimentMatch'] = ResolversParentTypes['ExperimentMatch']> = {
   endDate?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   endingAt?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
@@ -11933,6 +12245,25 @@ export type FollowerEngagementNotificationsResolvers<ContextType = any, ParentTy
   __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
 };
 
+export type FollowerMetricResolvers<ContextType = any, ParentType extends ResolversParentTypes['FollowerMetric'] = ResolversParentTypes['FollowerMetric']> = {
+  id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
+  total?: Resolver<Maybe<ResolversTypes['Int']>, ParentType, ContextType>;
+  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
+};
+
+export type FollowerMetricConnectionResolvers<ContextType = any, ParentType extends ResolversParentTypes['FollowerMetricConnection'] = ResolversParentTypes['FollowerMetricConnection']> = {
+  edges?: Resolver<Array<Maybe<ResolversTypes['FollowerMetricEdge']>>, ParentType, ContextType>;
+  metadata?: Resolver<ResolversTypes['Metadata'], ParentType, ContextType>;
+  pageInfo?: Resolver<ResolversTypes['PageInfo'], ParentType, ContextType>;
+  totalCount?: Resolver<Maybe<ResolversTypes['Int']>, ParentType, ContextType>;
+  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
+};
+
+export type FollowerMetricEdgeResolvers<ContextType = any, ParentType extends ResolversParentTypes['FollowerMetricEdge'] = ResolversParentTypes['FollowerMetricEdge']> = {
+  node?: Resolver<Maybe<ResolversTypes['FollowerMetric']>, ParentType, ContextType>;
+  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
+};
+
 export type FollowingResolvers<ContextType = any, ParentType extends ResolversParentTypes['Following'] = ResolversParentTypes['Following']> = {
   creator?: Resolver<Maybe<ResolversTypes['Channel']>, ParentType, ContextType>;
   id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
@@ -11966,6 +12297,25 @@ export type FollowingEdgeResolvers<ContextType = any, ParentType extends Resolve
   __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
 };
 
+export type FollowingMetricResolvers<ContextType = any, ParentType extends ResolversParentTypes['FollowingMetric'] = ResolversParentTypes['FollowingMetric']> = {
+  id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
+  total?: Resolver<Maybe<ResolversTypes['Int']>, ParentType, ContextType>;
+  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
+};
+
+export type FollowingMetricConnectionResolvers<ContextType = any, ParentType extends ResolversParentTypes['FollowingMetricConnection'] = ResolversParentTypes['FollowingMetricConnection']> = {
+  edges?: Resolver<Array<Maybe<ResolversTypes['FollowingMetricEdge']>>, ParentType, ContextType>;
+  metadata?: Resolver<ResolversTypes['Metadata'], ParentType, ContextType>;
+  pageInfo?: Resolver<ResolversTypes['PageInfo'], ParentType, ContextType>;
+  totalCount?: Resolver<Maybe<ResolversTypes['Int']>, ParentType, ContextType>;
+  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
+};
+
+export type FollowingMetricEdgeResolvers<ContextType = any, ParentType extends ResolversParentTypes['FollowingMetricEdge'] = ResolversParentTypes['FollowingMetricEdge']> = {
+  node?: Resolver<Maybe<ResolversTypes['FollowingMetric']>, ParentType, ContextType>;
+  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
+};
+
 export type FollowingPayloadResolvers<ContextType = any, ParentType extends ResolversParentTypes['FollowingPayload'] = ResolversParentTypes['FollowingPayload']> = {
   status?: Resolver<Maybe<ResolversTypes['Status']>, ParentType, ContextType>;
   __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
@@ -11984,6 +12334,12 @@ export type GenerateFileUploadUrlPayloadResolvers<ContextType = any, ParentType
   __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
 };
 
+export type GenerateVerifyEmailTokenPayloadResolvers<ContextType = any, ParentType extends ResolversParentTypes['GenerateVerifyEmailTokenPayload'] = ResolversParentTypes['GenerateVerifyEmailTokenPayload']> = {
+  status?: Resolver<Maybe<ResolversTypes['Status']>, ParentType, ContextType>;
+  token?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
+  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
+};
+
 export type GeoblockedCountriesResolvers<ContextType = any, ParentType extends ResolversParentTypes['GeoblockedCountries'] = ResolversParentTypes['GeoblockedCountries']> = {
   allowed?: Resolver<Maybe<Array<ResolversTypes['String']>>, ParentType, ContextType>;
   denied?: Resolver<Maybe<Array<ResolversTypes['String']>>, ParentType, ContextType>;
@@ -12034,6 +12390,7 @@ export type HashtagEdgeResolvers<ContextType = any, ParentType extends Resolvers
 };
 
 export type HashtagEngagementMetricsResolvers<ContextType = any, ParentType extends ResolversParentTypes['HashtagEngagementMetrics'] = ResolversParentTypes['HashtagEngagementMetrics']> = {
+  followers?: Resolver<Maybe<ResolversTypes['ChannelMetricConnection']>, ParentType, ContextType>;
   id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
   videos?: Resolver<Maybe<ResolversTypes['VideoMetricConnection']>, ParentType, ContextType, Partial<HashtagEngagementMetricsVideosArgs>>;
   __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
@@ -12093,6 +12450,7 @@ export type InterestResolvers<ContextType = any, ParentType extends ResolversPar
   interestId?: Resolver<ResolversTypes['Int'], ParentType, ContextType>;
   isEnabled?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
   name?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
+  slug?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
   __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
 };
 
@@ -12172,6 +12530,7 @@ export type LiveResolvers<ContextType = any, ParentType extends ResolversParentT
   creator?: Resolver<Maybe<ResolversTypes['Channel']>, ParentType, ContextType>;
   curatedCategories?: Resolver<Maybe<ResolversTypes['CuratedCategoryConnection']>, ParentType, ContextType, RequireFields<LiveCuratedCategoriesArgs, 'page'>>;
   description?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
+  embed?: Resolver<Maybe<ResolversTypes['Embed']>, ParentType, ContextType>;
   embedHtml?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   embedURL?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   endAt?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
@@ -12200,6 +12559,7 @@ export type LiveResolvers<ContextType = any, ParentType extends ResolversParentT
   quality?: Resolver<Maybe<ResolversTypes['Quality']>, ParentType, ContextType, RequireFields<LiveQualityArgs, 'auto'>>;
   reactions?: Resolver<Maybe<ResolversTypes['ReactionConnection']>, ParentType, ContextType, RequireFields<LiveReactionsArgs, 'first' | 'page'>>;
   restriction?: Resolver<Maybe<ResolversTypes['Restriction']>, ParentType, ContextType>;
+  settings?: Resolver<Maybe<ResolversTypes['LiveSettings']>, ParentType, ContextType>;
   shareUrls?: Resolver<Maybe<ResolversTypes['LiveShareUrls']>, ParentType, ContextType>;
   sharingURLs?: Resolver<Maybe<ResolversTypes['SharingURLConnection']>, ParentType, ContextType, RequireFields<LiveSharingUrLsArgs, 'page'>>;
   startAt?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
@@ -12269,6 +12629,12 @@ export type LiveMetricsResolvers<ContextType = any, ParentType extends Resolvers
   __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
 };
 
+export type LiveSettingsResolvers<ContextType = any, ParentType extends ResolversParentTypes['LiveSettings'] = ResolversParentTypes['LiveSettings']> = {
+  embeddable?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
+  id?: Resolver<Maybe<ResolversTypes['ID']>, ParentType, ContextType>;
+  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
+};
+
 export type LiveShareUrlsResolvers<ContextType = any, ParentType extends ResolversParentTypes['LiveShareUrls'] = ResolversParentTypes['LiveShareUrls']> = {
   facebook?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
@@ -12371,6 +12737,7 @@ export type MediaModerationResolvers<ContextType = any, ParentType extends Resol
 };
 
 export type MediaPublishingInfoResolvers<ContextType = any, ParentType extends ResolversParentTypes['MediaPublishingInfo'] = ResolversParentTypes['MediaPublishingInfo']> = {
+  id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
   percentage?: Resolver<Maybe<ResolversTypes['Int']>, ParentType, ContextType>;
   __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
 };
@@ -12424,7 +12791,7 @@ export type MetadataResolvers<ContextType = any, ParentType extends ResolversPar
 };
 
 export type MetricResolvers<ContextType = any, ParentType extends ResolversParentTypes['Metric'] = ResolversParentTypes['Metric']> = {
-  __resolveType: TypeResolveFn<'BookmarkMetric' | 'ChannelMetric' | 'CollectionMetric' | 'CommentMetric' | 'LikeMetric' | 'LiveMetric' | 'ReactionMetric' | 'VideoMetric', ParentType, ContextType>;
+  __resolveType: TypeResolveFn<'BookmarkMetric' | 'ChannelMetric' | 'CollectionMetric' | 'CommentMetric' | 'FollowerMetric' | 'FollowingMetric' | 'LikeMetric' | 'LiveMetric' | 'ReactionMetric' | 'VideoMetric', ParentType, ContextType>;
   id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
   total?: Resolver<Maybe<ResolversTypes['Int']>, ParentType, ContextType>;
 };
@@ -12478,6 +12845,7 @@ export type MutationResolvers<ContextType = any, ParentType extends ResolversPar
   followedUserAdd?: Resolver<Maybe<ResolversTypes['FollowUserPayload']>, ParentType, ContextType, RequireFields<MutationFollowedUserAddArgs, 'input'>>;
   followedUserRemove?: Resolver<Maybe<ResolversTypes['UnfollowUserPayload']>, ParentType, ContextType, RequireFields<MutationFollowedUserRemoveArgs, 'input'>>;
   generateFileUploadUrl?: Resolver<Maybe<ResolversTypes['GenerateFileUploadUrlPayload']>, ParentType, ContextType, RequireFields<MutationGenerateFileUploadUrlArgs, 'input'>>;
+  generateVerifyEmailToken?: Resolver<Maybe<ResolversTypes['GenerateVerifyEmailTokenPayload']>, ParentType, ContextType, RequireFields<MutationGenerateVerifyEmailTokenArgs, 'input'>>;
   likeVideo?: Resolver<Maybe<ResolversTypes['LikeVideoPayload']>, ParentType, ContextType, RequireFields<MutationLikeVideoArgs, 'input'>>;
   moderationActionAppeal?: Resolver<Maybe<ResolversTypes['ModerationActionAppealPayload']>, ParentType, ContextType, RequireFields<MutationModerationActionAppealArgs, 'input'>>;
   notificationFollowedChannelUpdate?: Resolver<Maybe<ResolversTypes['NotificationFollowedChannelUpdatePayload']>, ParentType, ContextType, RequireFields<MutationNotificationFollowedChannelUpdateArgs, 'input'>>;
@@ -12495,12 +12863,13 @@ export type MutationResolvers<ContextType = any, ParentType extends ResolversPar
   reorderCollectionMedia?: Resolver<Maybe<ResolversTypes['ReorderCollectionMediaPayload']>, ParentType, ContextType, RequireFields<MutationReorderCollectionMediaArgs, 'input'>>;
   reportComment?: Resolver<ResolversTypes['ReportCommentPayload'], ParentType, ContextType, RequireFields<MutationReportCommentArgs, 'input'>>;
   reportCreator?: Resolver<ResolversTypes['ReportCreatorPayload'], ParentType, ContextType, RequireFields<MutationReportCreatorArgs, 'input'>>;
+  reportRecording?: Resolver<Maybe<ResolversTypes['ReportRecordingPayload']>, ParentType, ContextType, RequireFields<MutationReportRecordingArgs, 'input'>>;
   reportVideo?: Resolver<Maybe<ResolversTypes['ReportVideoPayload']>, ParentType, ContextType, RequireFields<MutationReportVideoArgs, 'input'>>;
   reporterEmailVerify?: Resolver<ResolversTypes['ReporterEmailVerifyPayload'], ParentType, ContextType, RequireFields<MutationReporterEmailVerifyArgs, 'input'>>;
   requestActivationCode?: Resolver<Maybe<ResolversTypes['RequestActivationCodePayload']>, ParentType, ContextType, RequireFields<MutationRequestActivationCodeArgs, 'input'>>;
   resetPassword?: Resolver<Maybe<ResolversTypes['ResetPasswordPayload']>, ParentType, ContextType, RequireFields<MutationResetPasswordArgs, 'input'>>;
   sendTransactionalEmail?: Resolver<Maybe<ResolversTypes['SendTransactionalEmailPayload']>, ParentType, ContextType, RequireFields<MutationSendTransactionalEmailArgs, 'input'>>;
-  sendValidationEmail?: Resolver<Maybe<ResolversTypes['SendValidationEmailPayload']>, ParentType, ContextType, RequireFields<MutationSendValidationEmailArgs, 'input'>>;
+  sendVerifyEmailCode?: Resolver<Maybe<ResolversTypes['SendVerifyEmailCodePayload']>, ParentType, ContextType, RequireFields<MutationSendVerifyEmailCodeArgs, 'input'>>;
   unfollowChannel?: Resolver<Maybe<ResolversTypes['UnfollowChannelPayload']>, ParentType, ContextType, RequireFields<MutationUnfollowChannelArgs, 'input'>>;
   unfollowTopic?: Resolver<Maybe<ResolversTypes['UnfollowTopicPayload']>, ParentType, ContextType, RequireFields<MutationUnfollowTopicArgs, 'input'>>;
   unlikeVideo?: Resolver<Maybe<ResolversTypes['UnlikeVideoPayload']>, ParentType, ContextType, RequireFields<MutationUnlikeVideoArgs, 'input'>>;
@@ -12531,7 +12900,7 @@ export type NeonResolvers<ContextType = any, ParentType extends ResolversParentT
 };
 
 export type NodeResolvers<ContextType = any, ParentType extends ResolversParentTypes['Node'] = ResolversParentTypes['Node']> = {
-  __resolveType: TypeResolveFn<'Analytics' | 'AnalyticsGroupedPayloadItem' | 'AnalyticsReport' | 'Attribute' | 'Behavior' | 'BehaviorRuleTag' | 'BookmarkMetric' | 'Caption' | 'Channel' | 'ChannelEngagementMetrics' | 'ChannelExternalLinks' | 'ChannelMetric' | 'ChannelMetrics' | 'ChannelShareUrls' | 'ChannelStats' | 'ChannelStatsFollowers' | 'ChannelStatsReactions' | 'ChannelStatsVideos' | 'ChannelStatsViews' | 'ChannelUpdateRequired' | 'Collection' | 'CollectionEngagementMetrics' | 'CollectionMetric' | 'CollectionMetrics' | 'CollectionStats' | 'CollectionStatsVideos' | 'Comment' | 'CommentEngagementMetrics' | 'CommentMetrics' | 'CommentViewerEngagement' | 'ContentCategory' | 'Conversation' | 'Country' | 'CuratedCategory' | 'DailymotionAd' | 'EmailChangeRequest' | 'ExperimentMatch' | 'FallbackCountry' | 'Favorite' | 'FeatureMatch' | 'FeaturedContent' | 'FileUpload' | 'FollowedChannel' | 'FollowedTopic' | 'Follower' | 'FollowerEngagement' | 'FollowerEngagementNotifications' | 'Following' | 'FollowingChannelStartsLive' | 'FollowingChannelUploadsVideo' | 'FollowingStartsLive' | 'GeoblockedCountries' | 'Geoblocking' | 'Hashtag' | 'HashtagEngagementMetrics' | 'HashtagMetrics' | 'Image' | 'Interest' | 'Language' | 'Like' | 'Live' | 'LiveEngagementMetrics' | 'LiveMetric' | 'LiveMetrics' | 'LiveShareUrls' | 'LiveStats' | 'LiveStatsViews' | 'LiveStreamUrls' | 'LiveStreams' | 'LiveViewerEngagement' | 'Localization' | 'LocalizationMe' | 'MediaModeration' | 'MediaTag' | 'MediaUploadInfo' | 'Metadata' | 'MonetizationInsights' | 'Neon' | 'NotificationSettings' | 'Organization' | 'OrganizationAnalysis' | 'OrganizationStats' | 'OrganizationStatsChannels' | 'Partner' | 'PartnerReportFile' | 'PartnerSpace' | 'Player' | 'PlayerQueue' | 'Poll' | 'PollOption' | 'PollShareUrls' | 'ProductUpdates' | 'Quality' | 'Reaction' | 'ReactionEngagementMetrics' | 'ReactionMetric' | 'ReactionMetrics' | 'ReactionShareUrls' | 'ReactionStreamUrls' | 'ReactionVideo' | 'ReactionVideoStats' | 'ReactionVideoStatsBookmarks' | 'ReactionVideoStatsFavorites' | 'ReactionVideoStatsLikes' | 'ReactionVideoStatsReactionVideos' | 'ReactionVideoStatsSaves' | 'ReactionViewerEngagement' | 'RecommendedRecording' | 'RemindUnwatchedVideos' | 'ReportFileDownloadLink' | 'Restriction' | 'Rule' | 'Search' | 'Section' | 'SharingURL' | 'Subdivision' | 'Subtitle' | 'Suggestion' | 'SupportedCountry' | 'SupportedLanguage' | 'Thumbnails' | 'Tips' | 'Topic' | 'TopicLabel' | 'TopicShareUrls' | 'TopicStats' | 'TopicStatsFollowers' | 'TopicStatsVideos' | 'TopicWhitelistStatus' | 'User' | 'UserInterest' | 'UserPollAnswer' | 'UserStats' | 'UserStatsCollections' | 'UserStatsFollowers' | 'UserStatsFollowingChannels' | 'UserStatsFollowingTopics' | 'UserStatsLikedVideos' | 'UserStatsReactionVideos' | 'UserStatsUploadedVideos' | 'UserStatsVideos' | 'UserStatsWatchLater' | 'UserStatsWatchedVideos' | 'Video' | 'VideoDigest' | 'VideoEngagementMetrics' | 'VideoMetric' | 'VideoMetrics' | 'VideoShareUrls' | 'VideoStats' | 'VideoStatsBookmarks' | 'VideoStatsFavorites' | 'VideoStatsLikes' | 'VideoStatsReactionVideos' | 'VideoStatsSaves' | 'VideoStatsViews' | 'VideoStreamUrls' | 'VideoStreams' | 'VideoViewMetrics' | 'VideoViewerEngagement' | 'Views' | 'Watch' | 'Web' | 'WebMetadata' | 'WebMetadataConnection', ParentType, ContextType>;
+  __resolveType: TypeResolveFn<'Analytics' | 'AnalyticsGroupedPayloadItem' | 'AnalyticsReport' | 'Attribute' | 'Behavior' | 'BehaviorRuleTag' | 'BookmarkMetric' | 'Caption' | 'Channel' | 'ChannelEngagementMetrics' | 'ChannelExternalLinks' | 'ChannelMetric' | 'ChannelMetrics' | 'ChannelShareUrls' | 'ChannelStats' | 'ChannelStatsFollowers' | 'ChannelStatsReactions' | 'ChannelStatsVideos' | 'ChannelStatsViews' | 'ChannelUpdateRequired' | 'ChannelViewMetrics' | 'Collection' | 'CollectionEngagementMetrics' | 'CollectionMetric' | 'CollectionMetrics' | 'CollectionStats' | 'CollectionStatsVideos' | 'Comment' | 'CommentEngagementMetrics' | 'CommentMetric' | 'CommentMetrics' | 'CommentViewerEngagement' | 'ContentCategory' | 'Conversation' | 'Country' | 'CuratedCategory' | 'DailymotionAd' | 'EmailChangeRequest' | 'Embed' | 'ExperimentMatch' | 'FallbackCountry' | 'Favorite' | 'FeatureMatch' | 'FeaturedContent' | 'FileUpload' | 'FollowedChannel' | 'FollowedTopic' | 'Follower' | 'FollowerEngagement' | 'FollowerEngagementNotifications' | 'FollowerMetric' | 'Following' | 'FollowingChannelStartsLive' | 'FollowingChannelUploadsVideo' | 'FollowingMetric' | 'FollowingStartsLive' | 'GeoblockedCountries' | 'Geoblocking' | 'Hashtag' | 'HashtagEngagementMetrics' | 'HashtagMetrics' | 'Image' | 'Interest' | 'Language' | 'Like' | 'LikeMetric' | 'Live' | 'LiveEngagementMetrics' | 'LiveMetric' | 'LiveMetrics' | 'LiveShareUrls' | 'LiveStats' | 'LiveStatsViews' | 'LiveStreamUrls' | 'LiveStreams' | 'LiveViewerEngagement' | 'Localization' | 'LocalizationMe' | 'MediaModeration' | 'MediaPublishingInfo' | 'MediaTag' | 'MediaUploadInfo' | 'Metadata' | 'MonetizationInsights' | 'Neon' | 'NotificationSettings' | 'Organization' | 'OrganizationAnalysis' | 'OrganizationStats' | 'OrganizationStatsChannels' | 'Partner' | 'PartnerReportFile' | 'PartnerSpace' | 'Player' | 'PlayerQueue' | 'Poll' | 'PollOption' | 'PollShareUrls' | 'ProductUpdates' | 'Quality' | 'Reaction' | 'ReactionEngagementMetrics' | 'ReactionMetric' | 'ReactionMetrics' | 'ReactionShareUrls' | 'ReactionStreamUrls' | 'ReactionVideo' | 'ReactionVideoStats' | 'ReactionVideoStatsBookmarks' | 'ReactionVideoStatsFavorites' | 'ReactionVideoStatsLikes' | 'ReactionVideoStatsReactionVideos' | 'ReactionVideoStatsSaves' | 'ReactionViewerEngagement' | 'RecommendedRecording' | 'RemindUnwatchedVideos' | 'ReportFileDownloadLink' | 'Restriction' | 'Rule' | 'Search' | 'Section' | 'SharingURL' | 'Subdivision' | 'Subtitle' | 'Suggestion' | 'SupportedCountry' | 'SupportedLanguage' | 'Thumbnails' | 'Tips' | 'Topic' | 'TopicLabel' | 'TopicShareUrls' | 'TopicStats' | 'TopicStatsFollowers' | 'TopicStatsVideos' | 'TopicWhitelistStatus' | 'User' | 'UserInterest' | 'UserPollAnswer' | 'UserStats' | 'UserStatsCollections' | 'UserStatsFollowers' | 'UserStatsFollowingChannels' | 'UserStatsFollowingTopics' | 'UserStatsLikedVideos' | 'UserStatsReactionVideos' | 'UserStatsUploadedVideos' | 'UserStatsVideos' | 'UserStatsWatchLater' | 'UserStatsWatchedVideos' | 'Video' | 'VideoDigest' | 'VideoEngagementMetrics' | 'VideoMetric' | 'VideoMetrics' | 'VideoSettings' | 'VideoShareUrls' | 'VideoStats' | 'VideoStatsBookmarks' | 'VideoStatsFavorites' | 'VideoStatsLikes' | 'VideoStatsReactionVideos' | 'VideoStatsSaves' | 'VideoStatsViews' | 'VideoStreamUrls' | 'VideoStreams' | 'VideoViewMetrics' | 'VideoViewerEngagement' | 'Views' | 'Watch' | 'Web' | 'WebMetadata' | 'WebMetadataConnection', ParentType, ContextType>;
   id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
 };
 
@@ -12787,7 +13156,7 @@ export type QueryResolvers<ContextType = any, ParentType extends ResolversParent
   recording?: Resolver<Maybe<ResolversTypes['Recording']>, ParentType, ContextType, RequireFields<QueryRecordingArgs, 'id'>>;
   search?: Resolver<Maybe<ResolversTypes['Search']>, ParentType, ContextType>;
   supportedCountries?: Resolver<Maybe<Array<Maybe<ResolversTypes['Country']>>>, ParentType, ContextType>;
-  threads?: Resolver<Maybe<ResolversTypes['ThreadConnection']>, ParentType, ContextType, Partial<QueryThreadsArgs>>;
+  threads?: Resolver<Maybe<ResolversTypes['ThreadConnection']>, ParentType, ContextType, RequireFields<QueryThreadsArgs, 'first'>>;
   topic?: Resolver<Maybe<ResolversTypes['Topic']>, ParentType, ContextType, Partial<QueryTopicArgs>>;
   topics?: Resolver<Maybe<ResolversTypes['TopicConnection']>, ParentType, ContextType, RequireFields<QueryTopicsArgs, 'first' | 'page'>>;
   user?: Resolver<Maybe<ResolversTypes['User']>, ParentType, ContextType, RequireFields<QueryUserArgs, 'xid'>>;
@@ -12817,7 +13186,7 @@ export type ReactionResolvers<ContextType = any, ParentType extends ResolversPar
   subtitles?: Resolver<Maybe<ResolversTypes['SubtitleConnection']>, ParentType, ContextType, RequireFields<ReactionSubtitlesArgs, 'auto' | 'autoGenerated' | 'page'>>;
   thumbnail?: Resolver<Maybe<ResolversTypes['Image']>, ParentType, ContextType, RequireFields<ReactionThumbnailArgs, 'height'>>;
   title?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
-  transcript?: Resolver<Maybe<ResolversTypes['CaptionConnection']>, ParentType, ContextType>;
+  transcript?: Resolver<Maybe<ResolversTypes['CaptionConnection']>, ParentType, ContextType, RequireFields<ReactionTranscriptArgs, 'page'>>;
   url?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   viewerEngagement?: Resolver<Maybe<ResolversTypes['ReactionViewerEngagement']>, ParentType, ContextType>;
   xid?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
@@ -13100,6 +13469,11 @@ export type ReportFileDownloadLinkEdgeResolvers<ContextType = any, ParentType ex
   __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
 };
 
+export type ReportRecordingPayloadResolvers<ContextType = any, ParentType extends ResolversParentTypes['ReportRecordingPayload'] = ResolversParentTypes['ReportRecordingPayload']> = {
+  status?: Resolver<Maybe<ResolversTypes['Status']>, ParentType, ContextType>;
+  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
+};
+
 export type ReportVideoPayloadResolvers<ContextType = any, ParentType extends ResolversParentTypes['ReportVideoPayload'] = ResolversParentTypes['ReportVideoPayload']> = {
   clientMutationId?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   status?: Resolver<Maybe<ResolversTypes['Status']>, ParentType, ContextType>;
@@ -13210,8 +13584,7 @@ export type SendTransactionalEmailPayloadResolvers<ContextType = any, ParentType
   __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
 };
 
-export type SendValidationEmailPayloadResolvers<ContextType = any, ParentType extends ResolversParentTypes['SendValidationEmailPayload'] = ResolversParentTypes['SendValidationEmailPayload']> = {
-  clientMutationId?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
+export type SendVerifyEmailCodePayloadResolvers<ContextType = any, ParentType extends ResolversParentTypes['SendVerifyEmailCodePayload'] = ResolversParentTypes['SendVerifyEmailCodePayload']> = {
   status?: Resolver<Maybe<ResolversTypes['Status']>, ParentType, ContextType>;
   __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
 };
@@ -13563,6 +13936,7 @@ export type UserResolvers<ContextType = any, ParentType extends ResolversParentT
   createdAt?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   email?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   emailChangeRequest?: Resolver<Maybe<ResolversTypes['EmailChangeRequest']>, ParentType, ContextType>;
+  emailVerified?: Resolver<ResolversTypes['Boolean'], ParentType, ContextType>;
   facebookID?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   firstName?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   followedChannels?: Resolver<Maybe<ResolversTypes['FollowedChannelConnection']>, ParentType, ContextType, RequireFields<UserFollowedChannelsArgs, 'first' | 'page'>>;
@@ -13774,6 +14148,7 @@ export type VideoResolvers<ContextType = any, ParentType extends ResolversParent
   curatedCategories?: Resolver<Maybe<ResolversTypes['CuratedCategoryConnection']>, ParentType, ContextType, RequireFields<VideoCuratedCategoriesArgs, 'page'>>;
   description?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   duration?: Resolver<Maybe<ResolversTypes['Int']>, ParentType, ContextType>;
+  embed?: Resolver<Maybe<ResolversTypes['Embed']>, ParentType, ContextType>;
   embedHtml?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   embedURL?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   geoblockedCountries?: Resolver<Maybe<ResolversTypes['GeoblockedCountries']>, ParentType, ContextType>;
@@ -13812,6 +14187,7 @@ export type VideoResolvers<ContextType = any, ParentType extends ResolversParent
   reactions?: Resolver<Maybe<ResolversTypes['ReactionConnection']>, ParentType, ContextType, RequireFields<VideoReactionsArgs, 'first' | 'page'>>;
   relatedVideos?: Resolver<Maybe<ResolversTypes['VideoConnection']>, ParentType, ContextType, RequireFields<VideoRelatedVideosArgs, 'first' | 'page'>>;
   restriction?: Resolver<Maybe<ResolversTypes['Restriction']>, ParentType, ContextType>;
+  settings?: Resolver<Maybe<ResolversTypes['VideoSettings']>, ParentType, ContextType>;
   shareUrls?: Resolver<Maybe<ResolversTypes['VideoShareUrls']>, ParentType, ContextType>;
   sharingURLs?: Resolver<Maybe<ResolversTypes['SharingURLConnection']>, ParentType, ContextType, RequireFields<VideoSharingUrLsArgs, 'page'>>;
   spritesheet?: Resolver<Maybe<ResolversTypes['Image']>, ParentType, ContextType>;
@@ -13826,7 +14202,7 @@ export type VideoResolvers<ContextType = any, ParentType extends ResolversParent
   thumbnails?: Resolver<Maybe<ResolversTypes['Thumbnails']>, ParentType, ContextType>;
   title?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   topics?: Resolver<Maybe<ResolversTypes['TopicConnection']>, ParentType, ContextType, RequireFields<VideoTopicsArgs, 'first' | 'page' | 'whitelistedOnly'>>;
-  transcript?: Resolver<Maybe<ResolversTypes['CaptionConnection']>, ParentType, ContextType>;
+  transcript?: Resolver<Maybe<ResolversTypes['CaptionConnection']>, ParentType, ContextType, RequireFields<VideoTranscriptArgs, 'page'>>;
   updateDate?: Resolver<ResolversTypes['DateTime'], ParentType, ContextType>;
   updatedAt?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   uploadInfo?: Resolver<Maybe<ResolversTypes['MediaUploadInfo']>, ParentType, ContextType>;
@@ -13897,6 +14273,15 @@ export type VideoOrLiveResolvers<ContextType = any, ParentType extends Resolvers
   __resolveType: TypeResolveFn<'Live' | 'Video', ParentType, ContextType>;
 };
 
+export type VideoSettingsResolvers<ContextType = any, ParentType extends ResolversParentTypes['VideoSettings'] = ResolversParentTypes['VideoSettings']> = {
+  adsStreamable?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
+  downloadable?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
+  embeddable?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
+  id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
+  threadsDisabled?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
+  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
+};
+
 export type VideoShareUrlsResolvers<ContextType = any, ParentType extends ResolversParentTypes['VideoShareUrls'] = ResolversParentTypes['VideoShareUrls']> = {
   facebook?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
@@ -14177,6 +14562,7 @@ export type Resolvers<ContextType = any> = {
   DeleteUserPayload?: DeleteUserPayloadResolvers<ContextType>;
   DeleteVideoPayload?: DeleteVideoPayloadResolvers<ContextType>;
   EmailChangeRequest?: EmailChangeRequestResolvers<ContextType>;
+  Embed?: EmbedResolvers<ContextType>;
   ExperimentMatch?: ExperimentMatchResolvers<ContextType>;
   ExperimentMatchConnection?: ExperimentMatchConnectionResolvers<ContextType>;
   ExperimentMatchEdge?: ExperimentMatchEdgeResolvers<ContextType>;
@@ -14208,14 +14594,21 @@ export type Resolvers<ContextType = any> = {
   FollowerEdge?: FollowerEdgeResolvers<ContextType>;
   FollowerEngagement?: FollowerEngagementResolvers<ContextType>;
   FollowerEngagementNotifications?: FollowerEngagementNotificationsResolvers<ContextType>;
+  FollowerMetric?: FollowerMetricResolvers<ContextType>;
+  FollowerMetricConnection?: FollowerMetricConnectionResolvers<ContextType>;
+  FollowerMetricEdge?: FollowerMetricEdgeResolvers<ContextType>;
   Following?: FollowingResolvers<ContextType>;
   FollowingChannelStartsLive?: FollowingChannelStartsLiveResolvers<ContextType>;
   FollowingChannelUploadsVideo?: FollowingChannelUploadsVideoResolvers<ContextType>;
   FollowingConnection?: FollowingConnectionResolvers<ContextType>;
   FollowingEdge?: FollowingEdgeResolvers<ContextType>;
+  FollowingMetric?: FollowingMetricResolvers<ContextType>;
+  FollowingMetricConnection?: FollowingMetricConnectionResolvers<ContextType>;
+  FollowingMetricEdge?: FollowingMetricEdgeResolvers<ContextType>;
   FollowingPayload?: FollowingPayloadResolvers<ContextType>;
   FollowingStartsLive?: FollowingStartsLiveResolvers<ContextType>;
   GenerateFileUploadUrlPayload?: GenerateFileUploadUrlPayloadResolvers<ContextType>;
+  GenerateVerifyEmailTokenPayload?: GenerateVerifyEmailTokenPayloadResolvers<ContextType>;
   GeoblockedCountries?: GeoblockedCountriesResolvers<ContextType>;
   Geoblocking?: GeoblockingResolvers<ContextType>;
   GeoblockingConnection?: GeoblockingConnectionResolvers<ContextType>;
@@ -14250,6 +14643,7 @@ export type Resolvers<ContextType = any> = {
   LiveMetricConnection?: LiveMetricConnectionResolvers<ContextType>;
   LiveMetricEdge?: LiveMetricEdgeResolvers<ContextType>;
   LiveMetrics?: LiveMetricsResolvers<ContextType>;
+  LiveSettings?: LiveSettingsResolvers<ContextType>;
   LiveShareUrls?: LiveShareUrlsResolvers<ContextType>;
   LiveStats?: LiveStatsResolvers<ContextType>;
   LiveStatsViews?: LiveStatsViewsResolvers<ContextType>;
@@ -14351,6 +14745,7 @@ export type Resolvers<ContextType = any> = {
   ReportFileDownloadLink?: ReportFileDownloadLinkResolvers<ContextType>;
   ReportFileDownloadLinkConnection?: ReportFileDownloadLinkConnectionResolvers<ContextType>;
   ReportFileDownloadLinkEdge?: ReportFileDownloadLinkEdgeResolvers<ContextType>;
+  ReportRecordingPayload?: ReportRecordingPayloadResolvers<ContextType>;
   ReportVideoPayload?: ReportVideoPayloadResolvers<ContextType>;
   ReporterEmailVerifyPayload?: ReporterEmailVerifyPayloadResolvers<ContextType>;
   RequestActivationCodePayload?: RequestActivationCodePayloadResolvers<ContextType>;
@@ -14364,7 +14759,7 @@ export type Resolvers<ContextType = any> = {
   SectionConnection?: SectionConnectionResolvers<ContextType>;
   SectionEdge?: SectionEdgeResolvers<ContextType>;
   SendTransactionalEmailPayload?: SendTransactionalEmailPayloadResolvers<ContextType>;
-  SendValidationEmailPayload?: SendValidationEmailPayloadResolvers<ContextType>;
+  SendVerifyEmailCodePayload?: SendVerifyEmailCodePayloadResolvers<ContextType>;
   ShareUrls?: ShareUrlsResolvers<ContextType>;
   SharingURL?: SharingUrlResolvers<ContextType>;
   SharingURLConnection?: SharingUrlConnectionResolvers<ContextType>;
@@ -14448,6 +14843,7 @@ export type Resolvers<ContextType = any> = {
   VideoMetricEdge?: VideoMetricEdgeResolvers<ContextType>;
   VideoMetrics?: VideoMetricsResolvers<ContextType>;
   VideoOrLive?: VideoOrLiveResolvers<ContextType>;
+  VideoSettings?: VideoSettingsResolvers<ContextType>;
   VideoShareUrls?: VideoShareUrlsResolvers<ContextType>;
   VideoStats?: VideoStatsResolvers<ContextType>;
   VideoStatsBookmarks?: VideoStatsBookmarksResolvers<ContextType>;
diff --git a/types/plugin.d.ts b/types/plugin.d.ts
index 74a026f04725775611f71856e57c4c0418c429fb..08747ab676ef4162bfd6a2d43085d46a567d07bf 100644
--- a/types/plugin.d.ts
+++ b/types/plugin.d.ts
@@ -633,6 +633,7 @@ declare class PlatformVideoDetails extends PlatformVideo {
   live: any;
   rating: any;
   subtitles: any[];
+  getContentRecommendations: () => VideoPager;
 
   constructor(obj: PlatformVideoDetailsDef) {
     super(obj);
@@ -1182,6 +1183,8 @@ interface Source {
   saveState(): void;
 
   getChannelTemplateByClaimMap(): any;
+
+  getContentRecommendations(url: string, initialData: any): VideoPager;
 }
 
 function parseSettings(settings) {