diff --git a/.github/workflows/global_workflow.yml b/.github/workflows/global_workflow.yml index 7187d4bd..3a480d2e 100644 --- a/.github/workflows/global_workflow.yml +++ b/.github/workflows/global_workflow.yml @@ -23,7 +23,7 @@ jobs: run: gradle clean test jacocoTestReport - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@v3 + uses: codecov/codecov-action@v4 env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/src/main/kotlin/fr/shikkanime/Application.kt b/src/main/kotlin/fr/shikkanime/Application.kt index 0e724e2b..bd0889f0 100644 --- a/src/main/kotlin/fr/shikkanime/Application.kt +++ b/src/main/kotlin/fr/shikkanime/Application.kt @@ -14,7 +14,7 @@ import fr.shikkanime.utils.LoggerFactory import io.ktor.server.application.* import io.ktor.server.engine.* import io.ktor.server.netty.* -import java.util.UUID +import java.util.* private val logger = LoggerFactory.getLogger("Shikkanime") diff --git a/src/main/kotlin/fr/shikkanime/entities/enums/ConfigPropertyKey.kt b/src/main/kotlin/fr/shikkanime/entities/enums/ConfigPropertyKey.kt index 3f36351e..94e2ab27 100644 --- a/src/main/kotlin/fr/shikkanime/entities/enums/ConfigPropertyKey.kt +++ b/src/main/kotlin/fr/shikkanime/entities/enums/ConfigPropertyKey.kt @@ -9,4 +9,5 @@ enum class ConfigPropertyKey(val key: String) { TWITTER_ACCESS_TOKEN_SECRET("twitter_access_token_secret"), USE_CRUNCHYROLL_API("use_crunchyroll_api"), SEO_DESCRIPTION("seo_description"), + SOCIAL_NETWORK_EPISODES_SIZE_LIMIT("social_network_episodes_size_limit"), } \ No newline at end of file diff --git a/src/main/kotlin/fr/shikkanime/jobs/FetchEpisodesJob.kt b/src/main/kotlin/fr/shikkanime/jobs/FetchEpisodesJob.kt index c0a8e3a9..9cdd4640 100644 --- a/src/main/kotlin/fr/shikkanime/jobs/FetchEpisodesJob.kt +++ b/src/main/kotlin/fr/shikkanime/jobs/FetchEpisodesJob.kt @@ -3,7 +3,9 @@ package fr.shikkanime.jobs import fr.shikkanime.converters.AbstractConverter import fr.shikkanime.dtos.EpisodeDto import fr.shikkanime.entities.Episode +import fr.shikkanime.entities.enums.ConfigPropertyKey import fr.shikkanime.services.EpisodeService +import fr.shikkanime.services.caches.ConfigCacheService import fr.shikkanime.utils.Constant import fr.shikkanime.utils.LoggerFactory import fr.shikkanime.utils.isEqualOrAfter @@ -24,6 +26,9 @@ class FetchEpisodesJob : AbstractJob() { @Inject private lateinit var episodeService: EpisodeService + @Inject + private lateinit var configCacheService: ConfigCacheService + override fun run() { if (isRunning) { if (++lock > maxLock) { @@ -59,22 +64,29 @@ class FetchEpisodesJob : AbstractJob() { } } - episodes + val savedEpisodes = episodes .filter { (zonedDateTime.isEqualOrAfter(it.releaseDateTime)) && !set.contains(it.hash) } - .forEach { + .mapNotNull { try { val savedEpisode = episodeService.save(it) savedEpisode.hash?.let { hash -> set.add(hash) } - - Thread { - val dto = AbstractConverter.convert(savedEpisode, EpisodeDto::class.java) - sendToSocialNetworks(dto) - }.start() + savedEpisode } catch (e: Exception) { logger.log(Level.SEVERE, "Error while saving episode ${it.hash} (${it.anime?.name})", e) + null } } + if (savedEpisodes.isNotEmpty() && savedEpisodes.size < configCacheService.getValueAsInt(ConfigPropertyKey.SOCIAL_NETWORK_EPISODES_SIZE_LIMIT)) { + val dtos = AbstractConverter.convert(savedEpisodes, EpisodeDto::class.java) + + dtos.forEach { + Thread { + sendToSocialNetworks(it) + }.start() + } + } + isRunning = false } diff --git a/src/main/kotlin/fr/shikkanime/platforms/AnimationDigitalNetworkPlatform.kt b/src/main/kotlin/fr/shikkanime/platforms/AnimationDigitalNetworkPlatform.kt index 903e63ed..ea3c1747 100644 --- a/src/main/kotlin/fr/shikkanime/platforms/AnimationDigitalNetworkPlatform.kt +++ b/src/main/kotlin/fr/shikkanime/platforms/AnimationDigitalNetworkPlatform.kt @@ -11,32 +11,21 @@ import fr.shikkanime.entities.enums.Platform import fr.shikkanime.exceptions.AnimeException import fr.shikkanime.exceptions.AnimeNotSimulcastedException import fr.shikkanime.platforms.configuration.AnimationDigitalNetworkConfiguration -import fr.shikkanime.utils.HttpRequest -import fr.shikkanime.utils.ObjectParser import fr.shikkanime.utils.ObjectParser.getAsBoolean import fr.shikkanime.utils.ObjectParser.getAsInt import fr.shikkanime.utils.ObjectParser.getAsLong import fr.shikkanime.utils.ObjectParser.getAsString -import io.ktor.client.statement.* -import io.ktor.http.* +import fr.shikkanime.wrappers.AnimationDigitalNetworkWrapper import java.io.File import java.time.ZonedDateTime import java.util.logging.Level class AnimationDigitalNetworkPlatform : - AbstractPlatform() { + AbstractPlatform>() { override fun getPlatform(): Platform = Platform.ANIM - override suspend fun fetchApiContent(key: CountryCode, zonedDateTime: ZonedDateTime): JsonArray { - val toDateString = zonedDateTime.toLocalDate().toString() - val url = "https://gw.api.animationdigitalnetwork.${key.name.lowercase()}/video/calendar?date=$toDateString" - val response = HttpRequest().get(url) - - if (response.status != HttpStatusCode.OK) { - return JsonArray() - } - - return ObjectParser.fromJson(response.bodyAsText(), JsonObject::class.java).getAsJsonArray("videos")!! + override suspend fun fetchApiContent(key: CountryCode, zonedDateTime: ZonedDateTime): List { + return AnimationDigitalNetworkWrapper.getLatestVideos(zonedDateTime.toLocalDate()) } override fun fetchEpisodes(zonedDateTime: ZonedDateTime, bypassFileContent: File?): List { @@ -47,7 +36,7 @@ class AnimationDigitalNetworkPlatform : api.forEach { try { - list.addAll(convertEpisode(countryCode, it.asJsonObject, zonedDateTime)) + list.addAll(convertEpisode(countryCode, it, zonedDateTime)) } catch (_: AnimeException) { // Ignore } catch (e: Exception) { @@ -67,7 +56,8 @@ class AnimationDigitalNetworkPlatform : val show = jsonObject.getAsJsonObject("show") ?: throw Exception("Show is null") val season = jsonObject.getAsString("season")?.toIntOrNull() ?: 1 - var animeName = show.getAsString("shortTitle") ?: show.getAsString("title") ?: throw Exception("Anime name is null") + var animeName = + show.getAsString("shortTitle") ?: show.getAsString("title") ?: throw Exception("Anime name is null") animeName = animeName.replace(Regex("Saison \\d"), "").trim() animeName = animeName.replace(season.toString(), "").trim() // Replace "Edens Zero -" to get "Edens Zero" diff --git a/src/main/kotlin/fr/shikkanime/platforms/CrunchyrollPlatform.kt b/src/main/kotlin/fr/shikkanime/platforms/CrunchyrollPlatform.kt index 1f9f496d..69c8f733 100644 --- a/src/main/kotlin/fr/shikkanime/platforms/CrunchyrollPlatform.kt +++ b/src/main/kotlin/fr/shikkanime/platforms/CrunchyrollPlatform.kt @@ -99,7 +99,7 @@ class CrunchyrollPlatform : AbstractPlatform a.text().lowercase() }.toSet() - logger.info("Found ${previousSimulcastAnimes.size} animes for the previous simulcast") + logger.info("Found ${previousSimulcastAnimes.size} animes for the sprevious simulcast") val combinedSimulcasts = (currentSimulcastAnimes + previousSimulcastAnimes).toSet() simulcasts.addAll(combinedSimulcasts) @@ -119,11 +119,24 @@ class CrunchyrollPlatform : AbstractPlatform poster.asJsonObject.getAsInt("width")!! }?.asJsonObject?.getAsString("source") - banner = postersWide?.maxByOrNull { poster -> poster.asJsonObject.getAsInt("width")!! }?.asJsonObject?.getAsString("source") + image = + postersTall?.maxByOrNull { poster -> poster.asJsonObject.getAsInt("width")!! }?.asJsonObject?.getAsString( + "source" + ) + banner = + postersWide?.maxByOrNull { poster -> poster.asJsonObject.getAsInt("width")!! }?.asJsonObject?.getAsString( + "source" + ) description = `object`.getAsString("description") } else { HttpRequest().use { httpRequest -> @@ -135,8 +148,9 @@ class CrunchyrollPlatform : AbstractPlatform { return if (configCacheService.getValueAsBoolean(ConfigPropertyKey.USE_CRUNCHYROLL_API)) { - CrunchyrollWrapper.getBrowse(identifiers[key]!!.first) + CrunchyrollWrapper.getBrowse(key.locale, identifiers[key]!!.first) } else { val url = "https://www.crunchyroll.com/rss/anime?lang=${key.locale.replace("-", "")}" val response = HttpRequest().get(url) diff --git a/src/main/kotlin/fr/shikkanime/platforms/NetflixPlatform.kt b/src/main/kotlin/fr/shikkanime/platforms/NetflixPlatform.kt index a7c905ff..1e1108f7 100644 --- a/src/main/kotlin/fr/shikkanime/platforms/NetflixPlatform.kt +++ b/src/main/kotlin/fr/shikkanime/platforms/NetflixPlatform.kt @@ -32,7 +32,9 @@ class NetflixPlatform : AbstractPlatform { open fun findAll(): List { return inTransaction { - it.createQuery("FROM ${getEntityClass().simpleName}", getEntityClass()).resultList + it.createQuery("FROM ${getEntityClass().simpleName}", getEntityClass()) + .setHint(AvailableHints.HINT_READ_ONLY, true) + .resultList } } open fun find(uuid: UUID): E? { return inTransaction { - it.find(getEntityClass(), uuid) + it.createQuery("FROM ${getEntityClass().simpleName} WHERE uuid = :uuid", getEntityClass()) + .setParameter("uuid", uuid) + .setHint(AvailableHints.HINT_READ_ONLY, true) + .resultList + .firstOrNull() } } diff --git a/src/main/kotlin/fr/shikkanime/repositories/AnimeRepository.kt b/src/main/kotlin/fr/shikkanime/repositories/AnimeRepository.kt index 2d0d377f..e227d35a 100644 --- a/src/main/kotlin/fr/shikkanime/repositories/AnimeRepository.kt +++ b/src/main/kotlin/fr/shikkanime/repositories/AnimeRepository.kt @@ -6,6 +6,7 @@ import fr.shikkanime.entities.SortParameter import fr.shikkanime.entities.enums.CountryCode import jakarta.persistence.Tuple import org.hibernate.Hibernate +import org.hibernate.jpa.AvailableHints import org.hibernate.search.engine.search.predicate.dsl.BooleanPredicateClausesStep import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory import org.hibernate.search.engine.search.query.SearchResult @@ -59,6 +60,7 @@ class AnimeRepository : AbstractRepository() { override fun findAll(): List { return inTransaction { it.createQuery("FROM Anime", getEntityClass()) + .setHint(AvailableHints.HINT_READ_ONLY, true) .resultList .initialize() } @@ -88,6 +90,7 @@ class AnimeRepository : AbstractRepository() { buildSortQuery(sort, queryBuilder) val query = it.createQuery(queryBuilder.toString(), getEntityClass()) + .setHint(AvailableHints.HINT_READ_ONLY, true) countryCode?.let { query.setParameter("countryCode", countryCode) } simulcast?.let { query.setParameter("uuid", simulcast) } buildPageableQuery(query, page, limit).initialize() @@ -97,6 +100,7 @@ class AnimeRepository : AbstractRepository() { fun findAllByLikeName(countryCode: CountryCode, name: String?): List { return inTransaction { it.createQuery("FROM Anime WHERE countryCode = :countryCode AND LOWER(name) LIKE :name", getEntityClass()) + .setHint(AvailableHints.HINT_READ_ONLY, true) .setParameter("countryCode", countryCode) .setParameter("name", "%${name?.lowercase()}%") .resultList @@ -131,6 +135,7 @@ class AnimeRepository : AbstractRepository() { override fun find(uuid: UUID): Anime? { return inTransaction { it.createQuery("FROM Anime WHERE uuid = :uuid", getEntityClass()) + .setHint(AvailableHints.HINT_READ_ONLY, true) .setParameter("uuid", uuid) .resultList .firstOrNull() @@ -141,6 +146,7 @@ class AnimeRepository : AbstractRepository() { fun findAllUUIDAndImage(): List { return inTransaction { it.createQuery("SELECT uuid, image FROM Anime", Tuple::class.java) + .setHint(AvailableHints.HINT_READ_ONLY, true) .resultList } } diff --git a/src/main/kotlin/fr/shikkanime/repositories/ConfigRepository.kt b/src/main/kotlin/fr/shikkanime/repositories/ConfigRepository.kt index 1571613c..7de42e70 100644 --- a/src/main/kotlin/fr/shikkanime/repositories/ConfigRepository.kt +++ b/src/main/kotlin/fr/shikkanime/repositories/ConfigRepository.kt @@ -1,11 +1,13 @@ package fr.shikkanime.repositories import fr.shikkanime.entities.Config +import org.hibernate.jpa.AvailableHints class ConfigRepository : AbstractRepository() { fun findAllByName(name: String): List { return inTransaction { it.createQuery("FROM Config c WHERE LOWER(c.propertyKey) LIKE :name", getEntityClass()) + .setHint(AvailableHints.HINT_READ_ONLY, true) .setParameter("name", "%${name.lowercase()}%") .resultList } @@ -14,6 +16,7 @@ class ConfigRepository : AbstractRepository() { fun findByName(name: String): Config? { return inTransaction { it.createQuery("FROM Config c WHERE c.propertyKey = :name", getEntityClass()) + .setHint(AvailableHints.HINT_READ_ONLY, true) .setParameter("name", name) .resultList .firstOrNull() diff --git a/src/main/kotlin/fr/shikkanime/repositories/EpisodeRepository.kt b/src/main/kotlin/fr/shikkanime/repositories/EpisodeRepository.kt index bb463467..e9b2759f 100644 --- a/src/main/kotlin/fr/shikkanime/repositories/EpisodeRepository.kt +++ b/src/main/kotlin/fr/shikkanime/repositories/EpisodeRepository.kt @@ -9,6 +9,7 @@ import fr.shikkanime.entities.enums.LangType import fr.shikkanime.entities.enums.Platform import jakarta.persistence.Tuple import org.hibernate.Hibernate +import org.hibernate.jpa.AvailableHints import java.util.* class EpisodeRepository : AbstractRepository() { @@ -51,6 +52,7 @@ class EpisodeRepository : AbstractRepository() { override fun findAll(): List { return inTransaction { it.createQuery("FROM Episode", getEntityClass()) + .setHint(AvailableHints.HINT_READ_ONLY, true) .resultList .initialize() } @@ -77,6 +79,7 @@ class EpisodeRepository : AbstractRepository() { buildSortQuery(sort, queryBuilder) val query = it.createQuery(queryBuilder.toString(), getEntityClass()) + .setHint(AvailableHints.HINT_READ_ONLY, true) countryCode?.let { query.setParameter("countryCode", countryCode) } anime?.let { query.setParameter("uuid", anime) } buildPageableQuery(query, page, limit).initialize() @@ -86,6 +89,7 @@ class EpisodeRepository : AbstractRepository() { fun findAllHashes(): List { return inTransaction { it.createQuery("SELECT hash FROM Episode", String::class.java) + .setHint(AvailableHints.HINT_READ_ONLY, true) .resultList } } @@ -93,6 +97,7 @@ class EpisodeRepository : AbstractRepository() { fun findAllByAnime(uuid: UUID): List { return inTransaction { it.createQuery("FROM Episode WHERE anime.uuid = :uuid", getEntityClass()) + .setHint(AvailableHints.HINT_READ_ONLY, true) .setParameter("uuid", uuid) .resultList } @@ -101,6 +106,7 @@ class EpisodeRepository : AbstractRepository() { fun findByHash(hash: String?): Episode? { return inTransaction { it.createQuery("FROM Episode WHERE LOWER(hash) LIKE :hash", getEntityClass()) + .setHint(AvailableHints.HINT_READ_ONLY, true) .setParameter("hash", "%${hash?.lowercase()}%") .resultList .firstOrNull() @@ -112,7 +118,7 @@ class EpisodeRepository : AbstractRepository() { val query = it.createQuery( "SELECT number FROM Episode WHERE anime.uuid = :uuid AND platform = :platform AND season = :season AND episodeType = :episodeType AND langType = :langType ORDER BY number DESC", Int::class.java - ) + ).setHint(AvailableHints.HINT_READ_ONLY, true) query.maxResults = 1 query.setParameter("uuid", anime) query.setParameter("platform", platform) @@ -126,6 +132,7 @@ class EpisodeRepository : AbstractRepository() { fun findAllUUIDAndImage(): List { return inTransaction { it.createQuery("SELECT uuid, image FROM Episode", Tuple::class.java) + .setHint(AvailableHints.HINT_READ_ONLY, true) .resultList } } diff --git a/src/main/kotlin/fr/shikkanime/repositories/MemberRepository.kt b/src/main/kotlin/fr/shikkanime/repositories/MemberRepository.kt index 5c962d35..271582b6 100644 --- a/src/main/kotlin/fr/shikkanime/repositories/MemberRepository.kt +++ b/src/main/kotlin/fr/shikkanime/repositories/MemberRepository.kt @@ -2,11 +2,13 @@ package fr.shikkanime.repositories import fr.shikkanime.entities.Member import fr.shikkanime.entities.enums.Role +import org.hibernate.jpa.AvailableHints class MemberRepository : AbstractRepository() { fun findAllByRole(role: Role): List { return inTransaction { it.createQuery("FROM Member WHERE role = :role", getEntityClass()) + .setHint(AvailableHints.HINT_READ_ONLY, true) .setParameter("role", role) .resultList } @@ -15,6 +17,7 @@ class MemberRepository : AbstractRepository() { fun findByUsernameAndPassword(username: String, password: ByteArray): Member? { return inTransaction { it.createQuery("FROM Member WHERE username = :username AND encryptedPassword = :password", getEntityClass()) + .setHint(AvailableHints.HINT_READ_ONLY, true) .setParameter("username", username) .setParameter("password", password) .resultList diff --git a/src/main/kotlin/fr/shikkanime/repositories/MetricRepository.kt b/src/main/kotlin/fr/shikkanime/repositories/MetricRepository.kt index cc0fec5c..b3768e55 100644 --- a/src/main/kotlin/fr/shikkanime/repositories/MetricRepository.kt +++ b/src/main/kotlin/fr/shikkanime/repositories/MetricRepository.kt @@ -1,12 +1,14 @@ package fr.shikkanime.repositories import fr.shikkanime.entities.Metric +import org.hibernate.jpa.AvailableHints import java.time.ZonedDateTime class MetricRepository : AbstractRepository() { fun findAllAfter(date: ZonedDateTime): List { return inTransaction { it.createQuery("FROM Metric WHERE date > :date ORDER BY date", Metric::class.java) + .setHint(AvailableHints.HINT_READ_ONLY, true) .setParameter("date", date) .resultList } @@ -15,6 +17,7 @@ class MetricRepository : AbstractRepository() { fun deleteAllBefore(date: ZonedDateTime) { inTransaction { it.createQuery("DELETE FROM Metric WHERE date < :date") + .setHint(AvailableHints.HINT_READ_ONLY, true) .setParameter("date", date) .executeUpdate() } diff --git a/src/main/kotlin/fr/shikkanime/repositories/SimulcastRepository.kt b/src/main/kotlin/fr/shikkanime/repositories/SimulcastRepository.kt index 94272eb2..372b6a8f 100644 --- a/src/main/kotlin/fr/shikkanime/repositories/SimulcastRepository.kt +++ b/src/main/kotlin/fr/shikkanime/repositories/SimulcastRepository.kt @@ -1,11 +1,13 @@ package fr.shikkanime.repositories import fr.shikkanime.entities.Simulcast +import org.hibernate.jpa.AvailableHints class SimulcastRepository : AbstractRepository() { fun findBySeasonAndYear(season: String, year: Int): Simulcast? { return inTransaction { it.createQuery("FROM Simulcast WHERE season = :season AND year = :year", Simulcast::class.java) + .setHint(AvailableHints.HINT_READ_ONLY, true) .setParameter("season", season) .setParameter("year", year) .resultList diff --git a/src/main/kotlin/fr/shikkanime/services/EpisodeService.kt b/src/main/kotlin/fr/shikkanime/services/EpisodeService.kt index 477b6686..a9bbe994 100644 --- a/src/main/kotlin/fr/shikkanime/services/EpisodeService.kt +++ b/src/main/kotlin/fr/shikkanime/services/EpisodeService.kt @@ -53,7 +53,7 @@ class EpisodeService : AbstractService() { } fun getSimulcast(entity: Episode): Simulcast { - val simulcastRange = configCacheService.getValueAsInt(ConfigPropertyKey.SIMULCAST_RANGE) ?: 1 + val simulcastRange = configCacheService.getValueAsInt(ConfigPropertyKey.SIMULCAST_RANGE, 1) val adjustedDates = listOf(-simulcastRange, 0, simulcastRange).map { days -> entity.releaseDateTime.plusDays(days.toLong()) diff --git a/src/main/kotlin/fr/shikkanime/services/caches/ConfigCacheService.kt b/src/main/kotlin/fr/shikkanime/services/caches/ConfigCacheService.kt index 19f5f611..40effe4e 100644 --- a/src/main/kotlin/fr/shikkanime/services/caches/ConfigCacheService.kt +++ b/src/main/kotlin/fr/shikkanime/services/caches/ConfigCacheService.kt @@ -18,8 +18,10 @@ class ConfigCacheService : AbstractCacheService() { fun getValueAsString(configPropertyKey: ConfigPropertyKey) = findByName(configPropertyKey.key)?.propertyValue - fun getValueAsInt(configPropertyKey: ConfigPropertyKey) = - findByName(configPropertyKey.key)?.propertyValue?.toIntOrNull() + fun getValueAsInt(configPropertyKey: ConfigPropertyKey, defaultValue: Int) = + findByName(configPropertyKey.key)?.propertyValue?.toIntOrNull() ?: defaultValue + + fun getValueAsInt(configPropertyKey: ConfigPropertyKey) = getValueAsInt(configPropertyKey, -1) fun getValueAsBoolean(configPropertyKey: ConfigPropertyKey) = findByName(configPropertyKey.key)?.propertyValue?.toBoolean() ?: false diff --git a/src/main/kotlin/fr/shikkanime/wrappers/AnimationDigitalNetworkWrapper.kt b/src/main/kotlin/fr/shikkanime/wrappers/AnimationDigitalNetworkWrapper.kt new file mode 100644 index 00000000..c2aca575 --- /dev/null +++ b/src/main/kotlin/fr/shikkanime/wrappers/AnimationDigitalNetworkWrapper.kt @@ -0,0 +1,44 @@ +package fr.shikkanime.wrappers + +import com.google.gson.JsonObject +import fr.shikkanime.utils.HttpRequest +import fr.shikkanime.utils.ObjectParser +import io.ktor.client.statement.* +import java.time.LocalDate + +object AnimationDigitalNetworkWrapper { + private const val BASE_URL = "https://gw.api.animationdigitalnetwork.fr/" + + suspend fun getLatestVideos(dateString: LocalDate): List { + val response = HttpRequest().get("${BASE_URL}video/calendar?date=$dateString") + + if (response.status.value != 200) { + throw Exception("Failed to get media list") + } + + return ObjectParser.fromJson(response.bodyAsText()).getAsJsonArray("videos")?.map { it.asJsonObject } + ?: throw Exception("Failed to get media list") + } + + suspend fun getShow(animeName: String): JsonObject { + val response = HttpRequest().get("${BASE_URL}show/$animeName?withMicrodata=true&withSeo=true") + + if (response.status.value != 200) { + throw Exception("Failed to get show id") + } + + return ObjectParser.fromJson(response.bodyAsText()).getAsJsonObject("show") + ?: throw Exception("Failed to get show id") + } + + suspend fun getShowVideos(animeId: Int, videoId: Int, limit: Int = 1): List { + val response = HttpRequest().get("${BASE_URL}video/show/$animeId?videoId=$videoId&limit=$limit") + + if (response.status.value != 200) { + throw Exception("Failed to get videos") + } + + return ObjectParser.fromJson(response.bodyAsText()).getAsJsonArray("videos")?.map { it.asJsonObject } + ?: throw Exception("Failed to get videos") + } +} \ No newline at end of file diff --git a/src/main/kotlin/fr/shikkanime/wrappers/CrunchyrollWrapper.kt b/src/main/kotlin/fr/shikkanime/wrappers/CrunchyrollWrapper.kt index 45d8dee9..b6b2b213 100644 --- a/src/main/kotlin/fr/shikkanime/wrappers/CrunchyrollWrapper.kt +++ b/src/main/kotlin/fr/shikkanime/wrappers/CrunchyrollWrapper.kt @@ -33,7 +33,6 @@ object CrunchyrollWrapper { } private const val BASE_URL = "https://beta-api.crunchyroll.com/" - private const val LOCALE = "fr-FR" suspend fun getAnonymousAccessToken(): String { val httpRequest = HttpRequest() @@ -80,6 +79,7 @@ object CrunchyrollWrapper { } suspend fun getBrowse( + locale: String, accessToken: String, sortBy: SortType = SortType.NEWLY_ADDED, type: MediaType = MediaType.EPISODE, @@ -89,7 +89,7 @@ object CrunchyrollWrapper { val httpRequest = HttpRequest() val response = httpRequest.get( - "${BASE_URL}content/v1/browse?sort_by=${sortBy.name.lowercase()}&type=${type.name.lowercase()}&n=$size&start=$start&locale=$LOCALE", + "${BASE_URL}content/v1/browse?sort_by=${sortBy.name.lowercase()}&type=${type.name.lowercase()}&n=$size&start=$start&locale=$locale", headers = mapOf( "Authorization" to "Bearer $accessToken", ), @@ -103,11 +103,11 @@ object CrunchyrollWrapper { ?: throw Exception("Failed to get media list") } - suspend fun getObject(accessToken: String, cms: CMS, vararg ids: String): JsonArray { + suspend fun getObject(locale: String, accessToken: String, cms: CMS, vararg ids: String): JsonArray { val httpRequest = HttpRequest() val response = httpRequest.get( - "${BASE_URL}cms/v2${cms.bucket}/objects/${ids.joinToString(",")}?Policy=${cms.policy}&Signature=${cms.signature}&Key-Pair-Id=${cms.keyPairId}&locale=$LOCALE", + "${BASE_URL}cms/v2${cms.bucket}/objects/${ids.joinToString(",")}?Policy=${cms.policy}&Signature=${cms.signature}&Key-Pair-Id=${cms.keyPairId}&locale=$locale", headers = mapOf( "Authorization" to "Bearer $accessToken", ), @@ -121,11 +121,11 @@ object CrunchyrollWrapper { ?: throw Exception("Failed to get media object") } - suspend fun getSimulcasts(accessToken: String): List { + suspend fun getSimulcasts(locale: String, accessToken: String): List { val httpRequest = HttpRequest() val response = httpRequest.get( - "${BASE_URL}content/v1/season_list?locale=$LOCALE", + "${BASE_URL}content/v1/season_list?locale=$locale", headers = mapOf( "Authorization" to "Bearer $accessToken", ), diff --git a/src/main/resources/db/changelog/2024/01/08-changelog.xml b/src/main/resources/db/changelog/2024/01/08-changelog.xml index 24c28073..07f4b11c 100644 --- a/src/main/resources/db/changelog/2024/01/08-changelog.xml +++ b/src/main/resources/db/changelog/2024/01/08-changelog.xml @@ -18,7 +18,8 @@ - + \ No newline at end of file diff --git a/src/main/resources/db/changelog/2024/02/01-changelog.xml b/src/main/resources/db/changelog/2024/02/01-changelog.xml new file mode 100644 index 00000000..15eb364f --- /dev/null +++ b/src/main/resources/db/changelog/2024/02/01-changelog.xml @@ -0,0 +1,24 @@ + + + + + + + + SELECT COUNT(*) + FROM config + WHERE property_key = 'social_network_episodes_size_limit' + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/db/changelog/db.changelog-master.xml b/src/main/resources/db/changelog/db.changelog-master.xml index 22702561..be1509f0 100644 --- a/src/main/resources/db/changelog/db.changelog-master.xml +++ b/src/main/resources/db/changelog/db.changelog-master.xml @@ -17,4 +17,6 @@ + + \ No newline at end of file diff --git a/src/test/kotlin/fr/shikkanime/platforms/AnimationDigitalNetworkPlatformTest.kt b/src/test/kotlin/fr/shikkanime/platforms/AnimationDigitalNetworkPlatformTest.kt index 1ffaf178..47db8bfb 100644 --- a/src/test/kotlin/fr/shikkanime/platforms/AnimationDigitalNetworkPlatformTest.kt +++ b/src/test/kotlin/fr/shikkanime/platforms/AnimationDigitalNetworkPlatformTest.kt @@ -88,4 +88,16 @@ class AnimationDigitalNetworkPlatformTest { assertEquals(1, episodes.size) assertEquals("Les Héros de la Galaxie : Die Neue These", episodes[0].anime?.name) } + + @Test + fun `fetchEpisodes for 2024-02-01`() { + val zonedDateTime = ZonedDateTime.parse("2024-02-01T23:59:59Z") + val episodes = platform.fetchEpisodes(zonedDateTime) + + assertEquals(true, episodes.isNotEmpty()) + assertEquals(3, episodes.size) + assertEquals("Demon Slave", episodes[0].anime?.name) + assertEquals("My Instant Death Ability Is So Overpowered, No One in This Other World Stands a Chance Against Me!", episodes[1].anime?.name) + assertEquals("Urusei Yatsura", episodes[2].anime?.name) + } } \ No newline at end of file diff --git a/src/test/kotlin/fr/shikkanime/wrappers/CrunchyrollWrapperTest.kt b/src/test/kotlin/fr/shikkanime/wrappers/CrunchyrollWrapperTest.kt index d92b1ec6..27030432 100644 --- a/src/test/kotlin/fr/shikkanime/wrappers/CrunchyrollWrapperTest.kt +++ b/src/test/kotlin/fr/shikkanime/wrappers/CrunchyrollWrapperTest.kt @@ -1,5 +1,6 @@ package fr.shikkanime.wrappers +import fr.shikkanime.entities.enums.CountryCode import kotlinx.coroutines.runBlocking import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Assertions.assertNotNull @@ -10,6 +11,8 @@ private const val OLD_TOKEN = "eyJhbGciOiJSUzI1NiIsImtpZCI6IkFDNG5YM0JIaW5hbFRoV0pHajY2aEEiLCJ0eXAiOiJKV1QifQ.eyJhbm9ueW1vdXNfaWQiOiIiLCJjbGllbnRfaWQiOiJjcl93ZWIiLCJjbGllbnRfdGFnIjoiKiIsImNvdW50cnkiOiJGUiIsImV4cCI6MTcwNTk0NTA0NSwianRpIjoiZDNjMDU1M2QtOGU2MC00ZTc2LWIyZDgtMmNlYjY4NDcwNzlmIiwibWF0dXJpdHkiOiJNMiIsIm9hdXRoX3Njb3BlcyI6ImFjY291bnQgY29udGVudCBvZmZsaW5lX2FjY2VzcyIsInN0YXR1cyI6IkFOT05ZTU9VUyIsInRudCI6ImNyIn0.QisvFs4k0_TdQHSOQsOJjprM9Vu4DYUcmLlRW-S51iGUgY2oiZTjwNFvNLevl4JKPFqP0zCkW7UB45nOsxnKrLNc7XZKC_Z0soJoIKEXJomI_A_wlutX9TO2a_GIZ4T1ElZpK5PocpcA7ZihDt2_M84IZD0G0o0EBE1lVo56YjcEvDzWCHwvA6XJu14ZO8MIpiyQIMeKt8atFVQJTkULFhwqH-umujsJK_dclwAYA5jgq-q-lFw5q76ZkJ7BpAxnmQqQuxVD3fpmOT2QWVsnzIqBFVerTTO4QWTX1_DvtARv31HD_6wyq7-Xhx-IzQWUm5JbxsNBtYLL614G5rQEMw" class CrunchyrollWrapperTest { + private val locale = CountryCode.FR.locale + @Test fun getAnonymousAccessToken() { val token = runBlocking { CrunchyrollWrapper.getAnonymousAccessToken() } @@ -33,7 +36,7 @@ class CrunchyrollWrapperTest { @Test fun getBrowse() { val token = runBlocking { CrunchyrollWrapper.getAnonymousAccessToken() } - val newlyAdded = runBlocking { CrunchyrollWrapper.getBrowse(token) } + val newlyAdded = runBlocking { CrunchyrollWrapper.getBrowse(locale, token) } assertNotNull(newlyAdded) assertEquals(25, newlyAdded.size) } @@ -41,7 +44,7 @@ class CrunchyrollWrapperTest { @Test fun getBrowseError() { assertThrows { - runBlocking { CrunchyrollWrapper.getBrowse(OLD_TOKEN) } + runBlocking { CrunchyrollWrapper.getBrowse(locale, OLD_TOKEN) } } } @@ -49,21 +52,21 @@ class CrunchyrollWrapperTest { fun getObject() { val token = runBlocking { CrunchyrollWrapper.getAnonymousAccessToken() } val cms = runBlocking { CrunchyrollWrapper.getCMS(token) } - val `object` = runBlocking { CrunchyrollWrapper.getObject(token, cms, "G9DUEM48Z") } + val `object` = runBlocking { CrunchyrollWrapper.getObject(locale, token, cms, "G9DUEM48Z") } assertNotNull(`object`) } @Test fun getSimulcasts() { val token = runBlocking { CrunchyrollWrapper.getAnonymousAccessToken() } - val simulcasts = runBlocking { CrunchyrollWrapper.getSimulcasts(token) } + val simulcasts = runBlocking { CrunchyrollWrapper.getSimulcasts(locale, token) } assertEquals(true, simulcasts.isNotEmpty()) } @Test fun getSimulcastsError() { assertThrows { - runBlocking { CrunchyrollWrapper.getSimulcasts(OLD_TOKEN) } + runBlocking { CrunchyrollWrapper.getSimulcasts(locale, OLD_TOKEN) } } } } \ No newline at end of file diff --git a/src/test/resources/crunchyroll/api-2024-01-24T18-45-00Z.json b/src/test/resources/crunchyroll/api-2024-01-24T18-45-00Z.json index 8590d824..a266574b 100644 --- a/src/test/resources/crunchyroll/api-2024-01-24T18-45-00Z.json +++ b/src/test/resources/crunchyroll/api-2024-01-24T18-45-00Z.json @@ -1 +1,5102 @@ -{"total":10000,"items":[{"external_id":"EPI.918881","__class__":"panel","__links__":{"episode/season":{"href":"/cms/v2/FR/M2/-/seasons/GR09CXP7X"},"episode/series":{"href":"/cms/v2/FR/M2/-/series/G24H1NWMJ"},"resource":{"href":"/cms/v2/FR/M2/-/episodes/G8WUN1QWK"},"resource/channel":{"href":"/cms/v2/FR/M2/-/channels/crunchyroll"}},"__actions__":{},"slug_title":"","channel_id":"crunchyroll","id":"G8WUN1QWK","last_public":"2024-01-24T18:40:08Z","__href__":"","promo_title":"","promo_description":"","new":true,"type":"episode","episode_metadata":{"ad_breaks":[{"offset_ms":0,"type":"preroll"},{"offset_ms":342511,"type":"midroll"},{"offset_ms":685022,"type":"midroll"},{"offset_ms":1027533,"type":"midroll"}],"audio_locale":"it-IT","availability_ends":"9998-11-30T08:00:00Z","availability_notes":"","availability_starts":"9998-11-30T08:00:00Z","available_date":null,"available_offline":true,"closed_captions_available":false,"duration_ms":1370047,"eligible_region":"FR","episode":"3","episode_air_date":"2024-01-25T00:55:00+09:00","episode_number":3,"extended_maturity_rating":{},"free_available_date":"9998-11-30T08:00:00Z","identifier":"G24H1NWMJ|S1|E3","is_clip":false,"is_dubbed":true,"is_mature":false,"is_premium_only":true,"is_subbed":true,"mature_blocked":false,"maturity_ratings":["TV-14"],"premium_available_date":"2024-01-24T18:40:00Z","premium_date":null,"season_id":"GR09CXP7X","season_number":1,"season_slug_title":"metallic-rouge-italian-dub","season_title":"Metallic Rouge","sequence_number":3,"series_id":"G24H1NWMJ","series_slug_title":"metallic-rouge","series_title":"Metallic Rouge","subtitle_locales":["it-IT"],"upload_date":"2024-01-25T00:55:00+09:00","versions":[{"audio_locale":"ja-JP","guid":"G9DUEMVK3","is_premium_only":true,"media_guid":"G1QF41ZKM","original":true,"season_guid":"GRDQCGKKQ","variant":""},{"audio_locale":"en-US","guid":"GZ7UVE5NN","is_premium_only":true,"media_guid":"G5JFZV3JJ","original":false,"season_guid":"GR49C79NG","variant":""},{"audio_locale":"es-419","guid":"GJWU20D4W","is_premium_only":true,"media_guid":"GM8FXPDJ1","original":false,"season_guid":"G6Q4CZJJ3","variant":""},{"audio_locale":"es-ES","guid":"G14U41ZE1","is_premium_only":true,"media_guid":"GKKF3KP4K","original":false,"season_guid":"GYE5CQM9Z","variant":""},{"audio_locale":"pt-BR","guid":"GWDU8JZ9G","is_premium_only":true,"media_guid":"GEMFZDVPK","original":false,"season_guid":"G65VCDPP0","variant":""},{"audio_locale":"fr-FR","guid":"GVWU07GP0","is_premium_only":true,"media_guid":"G25F0GP50","original":false,"season_guid":"GYWEC3X1V","variant":""},{"audio_locale":"de-DE","guid":"G7PU41NWQ","is_premium_only":true,"media_guid":"G4GFQV4MN","original":false,"season_guid":"GYGGCV985","variant":""},{"audio_locale":"it-IT","guid":"G8WUN1QWK","is_premium_only":true,"media_guid":"GQ9FG389X","original":false,"season_guid":"GR09CXP7X","variant":""}]},"images":{"thumbnail":[[{"height":180,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/2cce5287ba5c2b00a57669e4b57c4bd9.jpe","type":"thumbnail","width":320},{"height":338,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/2cce5287ba5c2b00a57669e4b57c4bd9.jpe","type":"thumbnail","width":600},{"height":360,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/2cce5287ba5c2b00a57669e4b57c4bd9.jpe","type":"thumbnail","width":640},{"height":450,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/2cce5287ba5c2b00a57669e4b57c4bd9.jpe","type":"thumbnail","width":800},{"height":675,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/2cce5287ba5c2b00a57669e4b57c4bd9.jpe","type":"thumbnail","width":1200},{"height":810,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/2cce5287ba5c2b00a57669e4b57c4bd9.jpe","type":"thumbnail","width":1440},{"height":900,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/2cce5287ba5c2b00a57669e4b57c4bd9.jpe","type":"thumbnail","width":1600},{"height":1080,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/2cce5287ba5c2b00a57669e4b57c4bd9.jpe","type":"thumbnail","width":1920}]]},"linked_resource_key":"cms:/episodes/G8WUN1QWK","title":"","description":"","slug":"","new_content":false},{"slug_title":"","__class__":"panel","last_public":"2024-01-24T18:40:06Z","new_content":false,"description":"","episode_metadata":{"ad_breaks":[{"offset_ms":0,"type":"preroll"},{"offset_ms":342512,"type":"midroll"},{"offset_ms":685024,"type":"midroll"},{"offset_ms":1027536,"type":"midroll"}],"audio_locale":"es-ES","availability_ends":"9998-11-30T08:00:00Z","availability_notes":"","availability_starts":"9998-11-30T08:00:00Z","available_date":null,"available_offline":true,"closed_captions_available":false,"duration_ms":1370049,"eligible_region":"FR","episode":"3","episode_air_date":"2024-01-25T00:55:00+09:00","episode_number":3,"extended_maturity_rating":{},"free_available_date":"9998-11-30T08:00:00Z","identifier":"G24H1NWMJ|S1|E3","is_clip":false,"is_dubbed":true,"is_mature":false,"is_premium_only":true,"is_subbed":true,"mature_blocked":false,"maturity_ratings":["TV-14"],"premium_available_date":"2024-01-24T18:40:00Z","premium_date":null,"season_id":"GYE5CQM9Z","season_number":1,"season_slug_title":"metallic-rouge-castilian-dub","season_title":"Metallic Rouge","sequence_number":3,"series_id":"G24H1NWMJ","series_slug_title":"metallic-rouge","series_title":"Metallic Rouge","subtitle_locales":["es-ES"],"upload_date":"2024-01-25T00:55:00+09:00","versions":[{"audio_locale":"ja-JP","guid":"G9DUEMVK3","is_premium_only":true,"media_guid":"G1QF41ZKM","original":true,"season_guid":"GRDQCGKKQ","variant":""},{"audio_locale":"en-US","guid":"GZ7UVE5NN","is_premium_only":true,"media_guid":"G5JFZV3JJ","original":false,"season_guid":"GR49C79NG","variant":""},{"audio_locale":"es-419","guid":"GJWU20D4W","is_premium_only":true,"media_guid":"GM8FXPDJ1","original":false,"season_guid":"G6Q4CZJJ3","variant":""},{"audio_locale":"es-ES","guid":"G14U41ZE1","is_premium_only":true,"media_guid":"GKKF3KP4K","original":false,"season_guid":"GYE5CQM9Z","variant":""},{"audio_locale":"pt-BR","guid":"GWDU8JZ9G","is_premium_only":true,"media_guid":"GEMFZDVPK","original":false,"season_guid":"G65VCDPP0","variant":""},{"audio_locale":"fr-FR","guid":"GVWU07GP0","is_premium_only":true,"media_guid":"G25F0GP50","original":false,"season_guid":"GYWEC3X1V","variant":""},{"audio_locale":"de-DE","guid":"G7PU41NWQ","is_premium_only":true,"media_guid":"G4GFQV4MN","original":false,"season_guid":"GYGGCV985","variant":""},{"audio_locale":"it-IT","guid":"G8WUN1QWK","is_premium_only":true,"media_guid":"GQ9FG389X","original":false,"season_guid":"GR09CXP7X","variant":""}]},"id":"G14U41ZE1","slug":"","promo_title":"","new":true,"external_id":"EPI.918894","__href__":"","__links__":{"episode/season":{"href":"/cms/v2/FR/M2/-/seasons/GYE5CQM9Z"},"episode/series":{"href":"/cms/v2/FR/M2/-/series/G24H1NWMJ"},"resource":{"href":"/cms/v2/FR/M2/-/episodes/G14U41ZE1"},"resource/channel":{"href":"/cms/v2/FR/M2/-/channels/crunchyroll"}},"__actions__":{},"title":"","channel_id":"crunchyroll","type":"episode","linked_resource_key":"cms:/episodes/G14U41ZE1","promo_description":"","images":{"thumbnail":[[{"height":180,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/d45533e8839255ed89cce5ada13555f8.jpe","type":"thumbnail","width":320},{"height":338,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/d45533e8839255ed89cce5ada13555f8.jpe","type":"thumbnail","width":600},{"height":360,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/d45533e8839255ed89cce5ada13555f8.jpe","type":"thumbnail","width":640},{"height":450,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/d45533e8839255ed89cce5ada13555f8.jpe","type":"thumbnail","width":800},{"height":675,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/d45533e8839255ed89cce5ada13555f8.jpe","type":"thumbnail","width":1200},{"height":810,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/d45533e8839255ed89cce5ada13555f8.jpe","type":"thumbnail","width":1440},{"height":900,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/d45533e8839255ed89cce5ada13555f8.jpe","type":"thumbnail","width":1600},{"height":1080,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/d45533e8839255ed89cce5ada13555f8.jpe","type":"thumbnail","width":1920}]]}},{"promo_description":"","new":true,"__actions__":{},"__class__":"panel","type":"episode","images":{"thumbnail":[[{"height":180,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/cd45b9c3ac84f2a100241801b519f57e.jpe","type":"thumbnail","width":320},{"height":338,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/cd45b9c3ac84f2a100241801b519f57e.jpe","type":"thumbnail","width":600},{"height":360,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/cd45b9c3ac84f2a100241801b519f57e.jpe","type":"thumbnail","width":640},{"height":450,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/cd45b9c3ac84f2a100241801b519f57e.jpe","type":"thumbnail","width":800},{"height":675,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/cd45b9c3ac84f2a100241801b519f57e.jpe","type":"thumbnail","width":1200},{"height":810,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/cd45b9c3ac84f2a100241801b519f57e.jpe","type":"thumbnail","width":1440},{"height":900,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/cd45b9c3ac84f2a100241801b519f57e.jpe","type":"thumbnail","width":1600},{"height":1080,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/cd45b9c3ac84f2a100241801b519f57e.jpe","type":"thumbnail","width":1920}]]},"last_public":"2024-01-24T18:35:08Z","new_content":false,"slug_title":"","episode_metadata":{"ad_breaks":[{"offset_ms":0,"type":"preroll"},{"offset_ms":342512,"type":"midroll"},{"offset_ms":685024,"type":"midroll"},{"offset_ms":1027536,"type":"midroll"}],"audio_locale":"fr-FR","availability_ends":"9998-11-30T08:00:00Z","availability_notes":"","availability_starts":"9998-11-30T08:00:00Z","available_date":null,"available_offline":true,"closed_captions_available":false,"duration_ms":1370049,"eligible_region":"FR","episode":"3","episode_air_date":"2024-01-25T00:55:00+09:00","episode_number":3,"extended_maturity_rating":{},"free_available_date":"9998-11-30T08:00:00Z","identifier":"G24H1NWMJ|S1|E3","is_clip":false,"is_dubbed":true,"is_mature":false,"is_premium_only":true,"is_subbed":true,"mature_blocked":false,"maturity_ratings":["TV-14"],"premium_available_date":"2024-01-24T18:35:00Z","premium_date":null,"season_id":"GYWEC3X1V","season_number":1,"season_slug_title":"metallic-rouge-french-dub","season_title":"Metallic Rouge (VF)","sequence_number":3,"series_id":"G24H1NWMJ","series_slug_title":"metallic-rouge","series_title":"Metallic Rouge","subtitle_locales":["fr-FR"],"upload_date":"2024-01-25T00:55:00+09:00","versions":[{"audio_locale":"ja-JP","guid":"G9DUEMVK3","is_premium_only":true,"media_guid":"G1QF41ZKM","original":true,"season_guid":"GRDQCGKKQ","variant":""},{"audio_locale":"en-US","guid":"GZ7UVE5NN","is_premium_only":true,"media_guid":"G5JFZV3JJ","original":false,"season_guid":"GR49C79NG","variant":""},{"audio_locale":"es-419","guid":"GJWU20D4W","is_premium_only":true,"media_guid":"GM8FXPDJ1","original":false,"season_guid":"G6Q4CZJJ3","variant":""},{"audio_locale":"pt-BR","guid":"GWDU8JZ9G","is_premium_only":true,"media_guid":"GEMFZDVPK","original":false,"season_guid":"G65VCDPP0","variant":""},{"audio_locale":"fr-FR","guid":"GVWU07GP0","is_premium_only":true,"media_guid":"G25F0GP50","original":false,"season_guid":"GYWEC3X1V","variant":""},{"audio_locale":"de-DE","guid":"G7PU41NWQ","is_premium_only":true,"media_guid":"G4GFQV4MN","original":false,"season_guid":"GYGGCV985","variant":""}]},"description":"Rouge et Naomi arrivent dans une ville où se trouve un campement Nean. Leur prochaine cible semble s’y trouver, mais l’entrée du camp est étroitement surveillée. Un certain docteur Afdal pourrait bien servir de laissez-passer à Rouge.","__links__":{"episode/season":{"href":"/cms/v2/FR/M2/-/seasons/GYWEC3X1V"},"episode/series":{"href":"/cms/v2/FR/M2/-/series/G24H1NWMJ"},"resource":{"href":"/cms/v2/FR/M2/-/episodes/GVWU07GP0"},"resource/channel":{"href":"/cms/v2/FR/M2/-/channels/crunchyroll"}},"id":"GVWU07GP0","title":"Ville marginale","linked_resource_key":"cms:/episodes/GVWU07GP0","__href__":"","promo_title":"","slug":"","external_id":"EPI.918855","channel_id":"crunchyroll"},{"new_content":false,"external_id":"EPI.918868","id":"G7PU41NWQ","__actions__":{},"__links__":{"episode/season":{"href":"/cms/v2/FR/M2/-/seasons/GYGGCV985"},"episode/series":{"href":"/cms/v2/FR/M2/-/series/G24H1NWMJ"},"resource":{"href":"/cms/v2/FR/M2/-/episodes/G7PU41NWQ"},"resource/channel":{"href":"/cms/v2/FR/M2/-/channels/crunchyroll"}},"last_public":"2024-01-24T18:35:05Z","new":true,"slug":"","__href__":"","channel_id":"crunchyroll","description":"","episode_metadata":{"ad_breaks":[{"offset_ms":0,"type":"preroll"},{"offset_ms":342512,"type":"midroll"},{"offset_ms":685024,"type":"midroll"},{"offset_ms":1027536,"type":"midroll"}],"audio_locale":"de-DE","availability_ends":"9998-11-30T08:00:00Z","availability_notes":"","availability_starts":"9998-11-30T08:00:00Z","available_date":null,"available_offline":true,"closed_captions_available":false,"duration_ms":1370049,"eligible_region":"FR","episode":"3","episode_air_date":"2024-01-25T00:55:00+09:00","episode_number":3,"extended_maturity_rating":{},"free_available_date":"9998-11-30T08:00:00Z","identifier":"G24H1NWMJ|S1|E3","is_clip":false,"is_dubbed":true,"is_mature":false,"is_premium_only":true,"is_subbed":true,"mature_blocked":false,"maturity_ratings":["TV-14"],"premium_available_date":"2024-01-24T18:35:00Z","premium_date":null,"season_id":"GYGGCV985","season_number":1,"season_slug_title":"metallic-rouge-german-dub","season_title":"Metallic Rouge","sequence_number":3,"series_id":"G24H1NWMJ","series_slug_title":"metallic-rouge","series_title":"Metallic Rouge","subtitle_locales":["de-DE"],"upload_date":"2024-01-25T00:55:00+09:00","versions":[{"audio_locale":"ja-JP","guid":"G9DUEMVK3","is_premium_only":true,"media_guid":"G1QF41ZKM","original":true,"season_guid":"GRDQCGKKQ","variant":""},{"audio_locale":"en-US","guid":"GZ7UVE5NN","is_premium_only":true,"media_guid":"G5JFZV3JJ","original":false,"season_guid":"GR49C79NG","variant":""},{"audio_locale":"es-419","guid":"GJWU20D4W","is_premium_only":true,"media_guid":"GM8FXPDJ1","original":false,"season_guid":"G6Q4CZJJ3","variant":""},{"audio_locale":"pt-BR","guid":"GWDU8JZ9G","is_premium_only":true,"media_guid":"GEMFZDVPK","original":false,"season_guid":"G65VCDPP0","variant":""},{"audio_locale":"fr-FR","guid":"GVWU07GP0","is_premium_only":true,"media_guid":"G25F0GP50","original":false,"season_guid":"GYWEC3X1V","variant":""},{"audio_locale":"de-DE","guid":"G7PU41NWQ","is_premium_only":true,"media_guid":"G4GFQV4MN","original":false,"season_guid":"GYGGCV985","variant":""}]},"linked_resource_key":"cms:/episodes/G7PU41NWQ","__class__":"panel","images":{"thumbnail":[[{"height":180,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/2e82dfd8d20dc35f3a4b9bfe31841f7d.jpe","type":"thumbnail","width":320},{"height":338,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/2e82dfd8d20dc35f3a4b9bfe31841f7d.jpe","type":"thumbnail","width":600},{"height":360,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/2e82dfd8d20dc35f3a4b9bfe31841f7d.jpe","type":"thumbnail","width":640},{"height":450,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/2e82dfd8d20dc35f3a4b9bfe31841f7d.jpe","type":"thumbnail","width":800},{"height":675,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/2e82dfd8d20dc35f3a4b9bfe31841f7d.jpe","type":"thumbnail","width":1200},{"height":810,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/2e82dfd8d20dc35f3a4b9bfe31841f7d.jpe","type":"thumbnail","width":1440},{"height":900,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/2e82dfd8d20dc35f3a4b9bfe31841f7d.jpe","type":"thumbnail","width":1600},{"height":1080,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/2e82dfd8d20dc35f3a4b9bfe31841f7d.jpe","type":"thumbnail","width":1920}]]},"promo_description":"","title":"","type":"episode","promo_title":"","slug_title":""},{"external_id":"EPI.918842","id":"GWDU8JZ9G","new_content":false,"type":"episode","__actions__":{},"title":"","new":true,"promo_description":"","slug":"","channel_id":"crunchyroll","linked_resource_key":"cms:/episodes/GWDU8JZ9G","slug_title":"","description":"","episode_metadata":{"ad_breaks":[{"offset_ms":0,"type":"preroll"},{"offset_ms":342509,"type":"midroll"},{"offset_ms":685018,"type":"midroll"},{"offset_ms":1027527,"type":"midroll"}],"audio_locale":"pt-BR","availability_ends":"9998-11-30T08:00:00Z","availability_notes":"","availability_starts":"9998-11-30T08:00:00Z","available_date":null,"available_offline":true,"closed_captions_available":false,"duration_ms":1370037,"eligible_region":"FR","episode":"3","episode_air_date":"2024-01-25T00:55:00+09:00","episode_number":3,"extended_maturity_rating":{},"free_available_date":"9998-11-30T08:00:00Z","identifier":"G24H1NWMJ|S1|E3","is_clip":false,"is_dubbed":true,"is_mature":false,"is_premium_only":true,"is_subbed":true,"mature_blocked":false,"maturity_ratings":["TV-14"],"premium_available_date":"2024-01-24T18:30:00Z","premium_date":null,"season_id":"G65VCDPP0","season_number":1,"season_slug_title":"metallic-rouge-portuguese-dub","season_title":"Metallic Rouge","sequence_number":3,"series_id":"G24H1NWMJ","series_slug_title":"metallic-rouge","series_title":"Metallic Rouge","subtitle_locales":["pt-BR"],"upload_date":"2024-01-25T00:55:00+09:00","versions":[{"audio_locale":"ja-JP","guid":"G9DUEMVK3","is_premium_only":true,"media_guid":"G1QF41ZKM","original":true,"season_guid":"GRDQCGKKQ","variant":""},{"audio_locale":"en-US","guid":"GZ7UVE5NN","is_premium_only":true,"media_guid":"G5JFZV3JJ","original":false,"season_guid":"GR49C79NG","variant":""},{"audio_locale":"es-419","guid":"GJWU20D4W","is_premium_only":true,"media_guid":"GM8FXPDJ1","original":false,"season_guid":"G6Q4CZJJ3","variant":""},{"audio_locale":"es-ES","guid":"G14U41ZE1","is_premium_only":true,"media_guid":"GKKF3KP4K","original":false,"season_guid":"GYE5CQM9Z","variant":""},{"audio_locale":"pt-BR","guid":"GWDU8JZ9G","is_premium_only":true,"media_guid":"GEMFZDVPK","original":false,"season_guid":"G65VCDPP0","variant":""},{"audio_locale":"fr-FR","guid":"GVWU07GP0","is_premium_only":true,"media_guid":"G25F0GP50","original":false,"season_guid":"GYWEC3X1V","variant":""},{"audio_locale":"de-DE","guid":"G7PU41NWQ","is_premium_only":true,"media_guid":"G4GFQV4MN","original":false,"season_guid":"GYGGCV985","variant":""},{"audio_locale":"it-IT","guid":"G8WUN1QWK","is_premium_only":true,"media_guid":"GQ9FG389X","original":false,"season_guid":"GR09CXP7X","variant":""}]},"images":{"thumbnail":[[{"height":180,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/693870912b71b88e6aaabc9f5df1018a.jpe","type":"thumbnail","width":320},{"height":338,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/693870912b71b88e6aaabc9f5df1018a.jpe","type":"thumbnail","width":600},{"height":360,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/693870912b71b88e6aaabc9f5df1018a.jpe","type":"thumbnail","width":640},{"height":450,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/693870912b71b88e6aaabc9f5df1018a.jpe","type":"thumbnail","width":800},{"height":675,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/693870912b71b88e6aaabc9f5df1018a.jpe","type":"thumbnail","width":1200},{"height":810,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/693870912b71b88e6aaabc9f5df1018a.jpe","type":"thumbnail","width":1440},{"height":900,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/693870912b71b88e6aaabc9f5df1018a.jpe","type":"thumbnail","width":1600},{"height":1080,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/693870912b71b88e6aaabc9f5df1018a.jpe","type":"thumbnail","width":1920}]]},"promo_title":"","__href__":"","__links__":{"episode/season":{"href":"/cms/v2/FR/M2/-/seasons/G65VCDPP0"},"episode/series":{"href":"/cms/v2/FR/M2/-/series/G24H1NWMJ"},"resource":{"href":"/cms/v2/FR/M2/-/episodes/GWDU8JZ9G"},"resource/channel":{"href":"/cms/v2/FR/M2/-/channels/crunchyroll"}},"__class__":"panel","last_public":"2024-01-24T18:30:08Z"},{"__href__":"","linked_resource_key":"cms:/episodes/GJWU20D4W","__class__":"panel","promo_description":"","last_public":"2024-01-24T18:30:06Z","new_content":false,"__links__":{"episode/season":{"href":"/cms/v2/FR/M2/-/seasons/G6Q4CZJJ3"},"episode/series":{"href":"/cms/v2/FR/M2/-/series/G24H1NWMJ"},"resource":{"href":"/cms/v2/FR/M2/-/episodes/GJWU20D4W"},"resource/channel":{"href":"/cms/v2/FR/M2/-/channels/crunchyroll"}},"__actions__":{},"slug_title":"","promo_title":"","new":true,"type":"episode","episode_metadata":{"ad_breaks":[{"offset_ms":0,"type":"preroll"},{"offset_ms":342517,"type":"midroll"},{"offset_ms":685034,"type":"midroll"},{"offset_ms":1027551,"type":"midroll"}],"audio_locale":"es-419","availability_ends":"9998-11-30T08:00:00Z","availability_notes":"","availability_starts":"9998-11-30T08:00:00Z","available_date":null,"available_offline":true,"closed_captions_available":false,"duration_ms":1370070,"eligible_region":"FR","episode":"3","episode_air_date":"2024-01-25T00:55:00+09:00","episode_number":3,"extended_maturity_rating":{},"free_available_date":"9998-11-30T08:00:00Z","identifier":"G24H1NWMJ|S1|E3","is_clip":false,"is_dubbed":true,"is_mature":false,"is_premium_only":true,"is_subbed":true,"mature_blocked":false,"maturity_ratings":["TV-14"],"premium_available_date":"2024-01-24T18:30:00Z","premium_date":null,"season_id":"G6Q4CZJJ3","season_number":1,"season_slug_title":"metallic-rouge-spanish-dub","season_title":"Metallic Rouge","sequence_number":3,"series_id":"G24H1NWMJ","series_slug_title":"metallic-rouge","series_title":"Metallic Rouge","subtitle_locales":["es-419"],"upload_date":"2024-01-25T00:55:00+09:00","versions":[{"audio_locale":"ja-JP","guid":"G9DUEMVK3","is_premium_only":true,"media_guid":"G1QF41ZKM","original":true,"season_guid":"GRDQCGKKQ","variant":""},{"audio_locale":"en-US","guid":"GZ7UVE5NN","is_premium_only":true,"media_guid":"G5JFZV3JJ","original":false,"season_guid":"GR49C79NG","variant":""},{"audio_locale":"es-419","guid":"GJWU20D4W","is_premium_only":true,"media_guid":"GM8FXPDJ1","original":false,"season_guid":"G6Q4CZJJ3","variant":""},{"audio_locale":"pt-BR","guid":"GWDU8JZ9G","is_premium_only":true,"media_guid":"GEMFZDVPK","original":false,"season_guid":"G65VCDPP0","variant":""},{"audio_locale":"fr-FR","guid":"GVWU07GP0","is_premium_only":true,"media_guid":"G25F0GP50","original":false,"season_guid":"GYWEC3X1V","variant":""},{"audio_locale":"de-DE","guid":"G7PU41NWQ","is_premium_only":true,"media_guid":"G4GFQV4MN","original":false,"season_guid":"GYGGCV985","variant":""}]},"id":"GJWU20D4W","images":{"thumbnail":[[{"height":180,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/c3e7ae585c59219031cec1909a5d60f2.jpe","type":"thumbnail","width":320},{"height":338,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/c3e7ae585c59219031cec1909a5d60f2.jpe","type":"thumbnail","width":600},{"height":360,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/c3e7ae585c59219031cec1909a5d60f2.jpe","type":"thumbnail","width":640},{"height":450,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/c3e7ae585c59219031cec1909a5d60f2.jpe","type":"thumbnail","width":800},{"height":675,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/c3e7ae585c59219031cec1909a5d60f2.jpe","type":"thumbnail","width":1200},{"height":810,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/c3e7ae585c59219031cec1909a5d60f2.jpe","type":"thumbnail","width":1440},{"height":900,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/c3e7ae585c59219031cec1909a5d60f2.jpe","type":"thumbnail","width":1600},{"height":1080,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/c3e7ae585c59219031cec1909a5d60f2.jpe","type":"thumbnail","width":1920}]]},"title":"","channel_id":"crunchyroll","description":"","external_id":"EPI.918829","slug":""},{"external_id":"EPI.918803","episode_metadata":{"ad_breaks":[{"offset_ms":0,"type":"preroll"},{"offset_ms":342509,"type":"midroll"},{"offset_ms":685018,"type":"midroll"},{"offset_ms":1027527,"type":"midroll"}],"audio_locale":"ja-JP","availability_ends":"9998-11-30T08:00:00Z","availability_notes":"","availability_starts":"2024-01-31T18:25:00Z","available_date":"2024-01-31T18:25:00Z","available_offline":true,"closed_captions_available":false,"duration_ms":1370037,"eligible_region":"FR","episode":"3","episode_air_date":"2024-01-25T00:55:00+09:00","episode_number":3,"extended_maturity_rating":{},"free_available_date":"2024-01-31T18:25:00Z","identifier":"G24H1NWMJ|S1|E3","is_clip":false,"is_dubbed":true,"is_mature":false,"is_premium_only":true,"is_subbed":true,"mature_blocked":false,"maturity_ratings":["TV-14"],"premium_available_date":"2024-01-24T18:25:00Z","premium_date":null,"season_id":"GRDQCGKKQ","season_number":1,"season_slug_title":"metallic-rouge","season_title":"Metallic Rouge","sequence_number":3,"series_id":"G24H1NWMJ","series_slug_title":"metallic-rouge","series_title":"Metallic Rouge","subtitle_locales":["en-US","es-419","es-ES","fr-FR","pt-BR","ar-SA","it-IT","de-DE","ru-RU"],"upload_date":"2024-01-25T00:55:00+09:00","versions":[{"audio_locale":"ja-JP","guid":"G9DUEMVK3","is_premium_only":true,"media_guid":"G1QF41ZKM","original":true,"season_guid":"GRDQCGKKQ","variant":""},{"audio_locale":"en-US","guid":"GZ7UVE5NN","is_premium_only":true,"media_guid":"G5JFZV3JJ","original":false,"season_guid":"GR49C79NG","variant":""},{"audio_locale":"es-419","guid":"GJWU20D4W","is_premium_only":true,"media_guid":"GM8FXPDJ1","original":false,"season_guid":"G6Q4CZJJ3","variant":""},{"audio_locale":"es-ES","guid":"G14U41ZE1","is_premium_only":true,"media_guid":"GKKF3KP4K","original":false,"season_guid":"GYE5CQM9Z","variant":""},{"audio_locale":"pt-BR","guid":"GWDU8JZ9G","is_premium_only":true,"media_guid":"GEMFZDVPK","original":false,"season_guid":"G65VCDPP0","variant":""},{"audio_locale":"fr-FR","guid":"GVWU07GP0","is_premium_only":true,"media_guid":"G25F0GP50","original":false,"season_guid":"GYWEC3X1V","variant":""},{"audio_locale":"de-DE","guid":"G7PU41NWQ","is_premium_only":true,"media_guid":"G4GFQV4MN","original":false,"season_guid":"GYGGCV985","variant":""},{"audio_locale":"it-IT","guid":"G8WUN1QWK","is_premium_only":true,"media_guid":"GQ9FG389X","original":false,"season_guid":"GR09CXP7X","variant":""}]},"new":true,"last_public":"2024-01-24T18:25:09Z","images":{"thumbnail":[[{"height":180,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/41dcc458d322d9891505d304d7fc0c09.jpe","type":"thumbnail","width":320},{"height":338,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/41dcc458d322d9891505d304d7fc0c09.jpe","type":"thumbnail","width":600},{"height":360,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/41dcc458d322d9891505d304d7fc0c09.jpe","type":"thumbnail","width":640},{"height":450,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/41dcc458d322d9891505d304d7fc0c09.jpe","type":"thumbnail","width":800},{"height":675,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/41dcc458d322d9891505d304d7fc0c09.jpe","type":"thumbnail","width":1200},{"height":810,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/41dcc458d322d9891505d304d7fc0c09.jpe","type":"thumbnail","width":1440},{"height":900,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/41dcc458d322d9891505d304d7fc0c09.jpe","type":"thumbnail","width":1600},{"height":1080,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/41dcc458d322d9891505d304d7fc0c09.jpe","type":"thumbnail","width":1920}]]},"description":"Rouge et Naomi arrivent dans une ville où se trouve un campement Nean. Leur prochaine cible semble s’y trouver, mais l’entrée du camp est étroitement surveillée. Un certain docteur Afdal pourrait bien servir de laissez-passer à Rouge.","promo_description":"","title":"Ville marginale","id":"G9DUEMVK3","promo_title":"","__class__":"panel","__href__":"","channel_id":"crunchyroll","linked_resource_key":"cms:/episodes/G9DUEMVK3","__links__":{"episode/season":{"href":"/cms/v2/FR/M2/-/seasons/GRDQCGKKQ"},"episode/series":{"href":"/cms/v2/FR/M2/-/series/G24H1NWMJ"},"resource":{"href":"/cms/v2/FR/M2/-/episodes/G9DUEMVK3"},"resource/channel":{"href":"/cms/v2/FR/M2/-/channels/crunchyroll"}},"new_content":false,"slug_title":"marginal-city","slug":"","type":"episode","__actions__":{}},{"last_public":"2024-01-24T18:25:06Z","new_content":false,"slug":"","title":"Marginal City","channel_id":"crunchyroll","description":"","type":"episode","linked_resource_key":"cms:/episodes/GZ7UVE5NN","__actions__":{},"__href__":"","id":"GZ7UVE5NN","images":{"thumbnail":[[{"height":180,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/9a0cf2e601aace50379e092a84bb84da.jpe","type":"thumbnail","width":320},{"height":338,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/9a0cf2e601aace50379e092a84bb84da.jpe","type":"thumbnail","width":600},{"height":360,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/9a0cf2e601aace50379e092a84bb84da.jpe","type":"thumbnail","width":640},{"height":450,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/9a0cf2e601aace50379e092a84bb84da.jpe","type":"thumbnail","width":800},{"height":675,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/9a0cf2e601aace50379e092a84bb84da.jpe","type":"thumbnail","width":1200},{"height":810,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/9a0cf2e601aace50379e092a84bb84da.jpe","type":"thumbnail","width":1440},{"height":900,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/9a0cf2e601aace50379e092a84bb84da.jpe","type":"thumbnail","width":1600},{"height":1080,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/9a0cf2e601aace50379e092a84bb84da.jpe","type":"thumbnail","width":1920}]]},"slug_title":"marginal-city","episode_metadata":{"ad_breaks":[{"offset_ms":0,"type":"preroll"},{"offset_ms":342519,"type":"midroll"},{"offset_ms":685038,"type":"midroll"},{"offset_ms":1027557,"type":"midroll"}],"audio_locale":"en-US","availability_ends":"9998-11-30T08:00:00Z","availability_notes":"","availability_starts":"9998-11-30T08:00:00Z","available_date":null,"available_offline":true,"closed_captions_available":false,"duration_ms":1370079,"eligible_region":"FR","episode":"3","episode_air_date":"2024-01-25T00:55:00+09:00","episode_number":3,"extended_maturity_rating":{},"free_available_date":"9998-11-30T08:00:00Z","identifier":"G24H1NWMJ|S1|E3","is_clip":false,"is_dubbed":true,"is_mature":false,"is_premium_only":true,"is_subbed":true,"mature_blocked":false,"maturity_ratings":["TV-14"],"premium_available_date":"2024-01-24T18:25:00Z","premium_date":null,"season_id":"GR49C79NG","season_number":1,"season_slug_title":"metallic-rouge-english-dub","season_title":"Metallic Rouge","sequence_number":3,"series_id":"G24H1NWMJ","series_slug_title":"metallic-rouge","series_title":"Metallic Rouge","subtitle_locales":[],"upload_date":"2024-01-25T00:55:00+09:00","versions":[{"audio_locale":"ja-JP","guid":"G9DUEMVK3","is_premium_only":true,"media_guid":"G1QF41ZKM","original":true,"season_guid":"GRDQCGKKQ","variant":""},{"audio_locale":"en-US","guid":"GZ7UVE5NN","is_premium_only":true,"media_guid":"G5JFZV3JJ","original":false,"season_guid":"GR49C79NG","variant":""},{"audio_locale":"es-419","guid":"GJWU20D4W","is_premium_only":true,"media_guid":"GM8FXPDJ1","original":false,"season_guid":"G6Q4CZJJ3","variant":""},{"audio_locale":"pt-BR","guid":"GWDU8JZ9G","is_premium_only":true,"media_guid":"GEMFZDVPK","original":false,"season_guid":"G65VCDPP0","variant":""},{"audio_locale":"fr-FR","guid":"GVWU07GP0","is_premium_only":true,"media_guid":"G25F0GP50","original":false,"season_guid":"GYWEC3X1V","variant":""},{"audio_locale":"de-DE","guid":"G7PU41NWQ","is_premium_only":true,"media_guid":"G4GFQV4MN","original":false,"season_guid":"GYGGCV985","variant":""}]},"promo_title":"","__links__":{"episode/season":{"href":"/cms/v2/FR/M2/-/seasons/GR49C79NG"},"episode/series":{"href":"/cms/v2/FR/M2/-/series/G24H1NWMJ"},"resource":{"href":"/cms/v2/FR/M2/-/episodes/GZ7UVE5NN"},"resource/channel":{"href":"/cms/v2/FR/M2/-/channels/crunchyroll"}},"external_id":"EPI.918816","promo_description":"","__class__":"panel","new":true},{"description":"Adachi se retrouve contre son plein gré dans une soirée karaoké avec ses collègues de travail, ce qu'il a du mal à supporter. Heureusement, Kurosawa est là pour le soutenir.","last_public":"2024-01-24T17:30:06Z","__actions__":{},"episode_metadata":{"ad_breaks":[{"offset_ms":0,"type":"preroll"},{"offset_ms":355001,"type":"midroll"},{"offset_ms":710002,"type":"midroll"},{"offset_ms":1065003,"type":"midroll"}],"audio_locale":"ja-JP","availability_ends":"9998-11-30T08:00:00Z","availability_notes":"","availability_starts":"9998-11-30T08:00:00Z","available_date":null,"available_offline":true,"closed_captions_available":false,"duration_ms":1420004,"eligible_region":"FR","episode":"3","episode_air_date":"2024-01-25T00:00:00+09:00","episode_number":3,"extended_maturity_rating":{},"free_available_date":"9998-11-30T08:00:00Z","identifier":"","is_clip":false,"is_dubbed":false,"is_mature":false,"is_premium_only":true,"is_subbed":true,"mature_blocked":false,"maturity_ratings":["TV-14"],"premium_available_date":"2024-01-24T17:30:00Z","premium_date":null,"season_id":"GRZXCMKK1","season_number":1,"season_slug_title":"cherry-magic-thirty-years-of-virginity-can-make-you-a-wizard","season_title":"Cherry Magic! Thirty Years of Virginity Can Make You a Wizard?!","sequence_number":3,"series_id":"GP5HJ8435","series_slug_title":"cherry-magic-thirty-years-of-virginity-can-make-you-a-wizard","series_title":"Cherry Magic! Thirty Years of Virginity Can Make You a Wizard?!","subtitle_locales":["en-US","es-419","es-ES","fr-FR","pt-BR","it-IT","de-DE","ru-RU"],"upload_date":"2024-01-25T00:00:00+09:00","versions":null},"__class__":"panel","external_id":"EPI.918788","new":true,"__href__":"","id":"GEVUZDV1Q","new_content":false,"title":"Épisode 3","__links__":{"episode/season":{"href":"/cms/v2/FR/M2/-/seasons/GRZXCMKK1"},"episode/series":{"href":"/cms/v2/FR/M2/-/series/GP5HJ8435"},"resource":{"href":"/cms/v2/FR/M2/-/episodes/GEVUZDV1Q"},"resource/channel":{"href":"/cms/v2/FR/M2/-/channels/crunchyroll"}},"channel_id":"crunchyroll","slug_title":"episode-03","slug":"","promo_description":"","type":"episode","images":{"thumbnail":[[{"height":180,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/03063d787138a89cec6d9aab1d23ac90.jpe","type":"thumbnail","width":320},{"height":338,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/03063d787138a89cec6d9aab1d23ac90.jpe","type":"thumbnail","width":600},{"height":360,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/03063d787138a89cec6d9aab1d23ac90.jpe","type":"thumbnail","width":640},{"height":450,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/03063d787138a89cec6d9aab1d23ac90.jpe","type":"thumbnail","width":800},{"height":675,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/03063d787138a89cec6d9aab1d23ac90.jpe","type":"thumbnail","width":1200},{"height":810,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/03063d787138a89cec6d9aab1d23ac90.jpe","type":"thumbnail","width":1440},{"height":900,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/03063d787138a89cec6d9aab1d23ac90.jpe","type":"thumbnail","width":1600},{"height":1080,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/03063d787138a89cec6d9aab1d23ac90.jpe","type":"thumbnail","width":1920}]]},"linked_resource_key":"cms:/episodes/GEVUZDV1Q","promo_title":""},{"linked_resource_key":"cms:/episodes/G14U41Z5K","promo_description":"","__class__":"panel","external_id":"EPI.918749","new":true,"promo_title":"","title":"An 7 de l'ère Eiroku","episode_metadata":{"ad_breaks":[{"offset_ms":0,"type":"preroll"},{"offset_ms":354980,"type":"midroll"},{"offset_ms":709960,"type":"midroll"},{"offset_ms":1064940,"type":"midroll"}],"audio_locale":"ja-JP","availability_ends":"9998-11-30T08:00:00Z","availability_notes":"","availability_starts":"2024-01-31T16:30:00Z","available_date":"2024-01-31T16:30:00Z","available_offline":true,"closed_captions_available":false,"duration_ms":1419920,"eligible_region":"FR","episode":"3","episode_air_date":"2024-01-25T00:00:00+09:00","episode_number":3,"extended_maturity_rating":{},"free_available_date":"2024-01-31T16:30:00Z","identifier":"","is_clip":false,"is_dubbed":false,"is_mature":false,"is_premium_only":true,"is_subbed":true,"mature_blocked":false,"maturity_ratings":["TV-14"],"premium_available_date":"2024-01-24T16:30:00Z","premium_date":null,"season_id":"GR2PCVKKE","season_number":1,"season_slug_title":"sengoku-youko","season_title":"Sengoku Youko","sequence_number":3,"series_id":"G3KHEVD57","series_slug_title":"sengoku-youko","series_title":"Sengoku Youko","subtitle_locales":["en-US","es-419","es-ES","fr-FR","pt-BR","ar-SA","it-IT","de-DE","ru-RU"],"upload_date":"2024-01-25T00:00:00+09:00","versions":null},"last_public":"2024-01-24T16:30:07Z","images":{"thumbnail":[[{"height":180,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/c7cc4192798bd332944ad97d413be89d.jpe","type":"thumbnail","width":320},{"height":338,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/c7cc4192798bd332944ad97d413be89d.jpe","type":"thumbnail","width":600},{"height":360,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/c7cc4192798bd332944ad97d413be89d.jpe","type":"thumbnail","width":640},{"height":450,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/c7cc4192798bd332944ad97d413be89d.jpe","type":"thumbnail","width":800},{"height":675,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/c7cc4192798bd332944ad97d413be89d.jpe","type":"thumbnail","width":1200},{"height":810,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/c7cc4192798bd332944ad97d413be89d.jpe","type":"thumbnail","width":1440},{"height":900,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/c7cc4192798bd332944ad97d413be89d.jpe","type":"thumbnail","width":1600},{"height":1080,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/c7cc4192798bd332944ad97d413be89d.jpe","type":"thumbnail","width":1920}]]},"description":"En défendant Tama et Shinsuke lors d'un affrontement, Shakugan retrouve sa mémoire jusque-là enfouie, datant de sa forme de chimère. Pendant ce temps, Jinka cherche comment perdre son humanité définitivement, et se rappelle douloureusement l'époque où il était disciple de Kokugetsusai.","type":"episode","new_content":false,"channel_id":"crunchyroll","id":"G14U41Z5K","slug_title":"year-seven-of-the-eiroku-period","__links__":{"episode/season":{"href":"/cms/v2/FR/M2/-/seasons/GR2PCVKKE"},"episode/series":{"href":"/cms/v2/FR/M2/-/series/G3KHEVD57"},"resource":{"href":"/cms/v2/FR/M2/-/episodes/G14U41Z5K"},"resource/channel":{"href":"/cms/v2/FR/M2/-/channels/crunchyroll"}},"__actions__":{},"__href__":"","slug":""},{"promo_title":"","external_id":"EPI.917980","promo_description":"","description":"C'est la Saint-Valentin, et toutes les rumeurs vont bon train au sein du lycée. Les ragots portent sur le couple Karuizawa-Hirata qui s'est récemment séparé, ou encore sur Ichinose qui est absente depuis plusieurs jours. Et si la calomnie était une nouvelle arme pour que certains élèves arrivent à leurs fins ?","episode_metadata":{"ad_breaks":[{"offset_ms":0,"type":"preroll"},{"offset_ms":355032,"type":"midroll"},{"offset_ms":710064,"type":"midroll"},{"offset_ms":1065096,"type":"midroll"}],"audio_locale":"ja-JP","availability_ends":"9998-11-30T08:00:00Z","availability_notes":"","availability_starts":"9998-11-30T08:00:00Z","available_date":null,"available_offline":true,"closed_captions_available":false,"duration_ms":1420129,"eligible_region":"FR","episode":"4","episode_air_date":"2024-01-24T22:30:00+09:00","episode_number":4,"extended_maturity_rating":{},"free_available_date":"9998-11-30T08:00:00Z","identifier":"GRVN8MNQY|S3|E4","is_clip":false,"is_dubbed":false,"is_mature":false,"is_premium_only":true,"is_subbed":true,"mature_blocked":false,"maturity_ratings":["TV-14"],"premium_available_date":"2024-01-24T15:00:00Z","premium_date":null,"season_id":"GYNQCJEP2","season_number":3,"season_slug_title":"classroom-of-the-elite-season-3","season_title":"Classroom of the Elite (Saison 3)","sequence_number":4,"series_id":"GRVN8MNQY","series_slug_title":"classroom-of-the-elite","series_title":"Classroom of the Elite","subtitle_locales":["en-US","es-419","es-ES","fr-FR","pt-BR","ar-SA","it-IT","de-DE","ru-RU"],"upload_date":"2024-01-24T22:30:00+09:00","versions":[{"audio_locale":"ja-JP","guid":"GEVUZDW25","is_premium_only":true,"media_guid":"GXMFQW3GN","original":true,"season_guid":"GYNQCJEP2","variant":""}]},"id":"GEVUZDW25","linked_resource_key":"cms:/episodes/GEVUZDW25","__class__":"panel","__links__":{"episode/season":{"href":"/cms/v2/FR/M2/-/seasons/GYNQCJEP2"},"episode/series":{"href":"/cms/v2/FR/M2/-/series/GRVN8MNQY"},"resource":{"href":"/cms/v2/FR/M2/-/episodes/GEVUZDW25"},"resource/channel":{"href":"/cms/v2/FR/M2/-/channels/crunchyroll"}},"images":{"thumbnail":[[{"height":180,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/b0bce631d9ada230bd9082797b50165a.jpe","type":"thumbnail","width":320},{"height":338,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/b0bce631d9ada230bd9082797b50165a.jpe","type":"thumbnail","width":600},{"height":360,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/b0bce631d9ada230bd9082797b50165a.jpe","type":"thumbnail","width":640},{"height":450,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/b0bce631d9ada230bd9082797b50165a.jpe","type":"thumbnail","width":800},{"height":675,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/b0bce631d9ada230bd9082797b50165a.jpe","type":"thumbnail","width":1200},{"height":810,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/b0bce631d9ada230bd9082797b50165a.jpe","type":"thumbnail","width":1440},{"height":900,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/b0bce631d9ada230bd9082797b50165a.jpe","type":"thumbnail","width":1600},{"height":1080,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/b0bce631d9ada230bd9082797b50165a.jpe","type":"thumbnail","width":1920}]]},"last_public":"2024-01-24T15:00:07Z","new":true,"channel_id":"crunchyroll","slug":"","title":"Tu as le droit de remplir les devoirs qui t’échoient, mais pas de jouir du fruit de tes actes.","slug_title":"to-work-you-have-the-right-but-not-to-the-fruits-thereof","__actions__":{},"type":"episode","new_content":false,"__href__":""},{"external_id":"EPI.918736","title":"Sainte","channel_id":"crunchyroll","__actions__":{},"slug":"","type":"episode","__href__":"","episode_metadata":{"ad_breaks":[{"offset_ms":0,"type":"preroll"},{"offset_ms":355021,"type":"midroll"},{"offset_ms":710042,"type":"midroll"},{"offset_ms":1065063,"type":"midroll"}],"audio_locale":"ja-JP","availability_ends":"9998-11-30T08:00:00Z","availability_notes":"","availability_starts":"2024-01-31T14:30:00Z","available_date":"2024-01-31T14:30:00Z","available_offline":true,"closed_captions_available":false,"duration_ms":1420087,"eligible_region":"FR","episode":"3","episode_air_date":"2024-01-24T21:30:00+09:00","episode_number":3,"extended_maturity_rating":{},"free_available_date":"2024-01-31T14:30:00Z","identifier":"","is_clip":false,"is_dubbed":false,"is_mature":false,"is_premium_only":true,"is_subbed":true,"mature_blocked":false,"maturity_ratings":["TV-14"],"premium_available_date":"2024-01-24T14:30:00Z","premium_date":null,"season_id":"G6P8CX777","season_number":1,"season_slug_title":"doctor-elise-the-royal-lady-with-the-lamp","season_title":"Doctor Elise: The Royal Lady with the Lamp","sequence_number":3,"series_id":"GVDHX853V","series_slug_title":"doctor-elise-the-royal-lady-with-the-lamp","series_title":"Doctor Elise: The Royal Lady with the Lamp","subtitle_locales":["en-US","es-419","es-ES","fr-FR","pt-BR","ar-SA","it-IT","de-DE","ru-RU"],"upload_date":"2024-01-24T21:30:00+09:00","versions":null},"slug_title":"the-lady-saint","new":true,"images":{"thumbnail":[[{"height":180,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/5ac23013aa40cedd3936d4a01343c7f3.jpe","type":"thumbnail","width":320},{"height":338,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/5ac23013aa40cedd3936d4a01343c7f3.jpe","type":"thumbnail","width":600},{"height":360,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/5ac23013aa40cedd3936d4a01343c7f3.jpe","type":"thumbnail","width":640},{"height":450,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/5ac23013aa40cedd3936d4a01343c7f3.jpe","type":"thumbnail","width":800},{"height":675,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/5ac23013aa40cedd3936d4a01343c7f3.jpe","type":"thumbnail","width":1200},{"height":810,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/5ac23013aa40cedd3936d4a01343c7f3.jpe","type":"thumbnail","width":1440},{"height":900,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/5ac23013aa40cedd3936d4a01343c7f3.jpe","type":"thumbnail","width":1600},{"height":1080,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/5ac23013aa40cedd3936d4a01343c7f3.jpe","type":"thumbnail","width":1920}]]},"new_content":false,"linked_resource_key":"cms:/episodes/G8WUN1Q7Z","promo_description":"","id":"G8WUN1Q7Z","last_public":"2024-01-24T14:30:06Z","description":"L'empereur a accepté de laisser une chance à Élise de poursuivre sa vocation de médecin, mais elle n'a pas beaucoup de temps. Elle se fait engager incognito à l'hôpital Thérésa pour s'adapter aux connaissances médicales de son monde d'origine et doit composer avec le Dr Fallon qui est loin d'être ravi de devoir former la jeune noble.","__class__":"panel","__links__":{"episode/season":{"href":"/cms/v2/FR/M2/-/seasons/G6P8CX777"},"episode/series":{"href":"/cms/v2/FR/M2/-/series/GVDHX853V"},"resource":{"href":"/cms/v2/FR/M2/-/episodes/G8WUN1Q7Z"},"resource/channel":{"href":"/cms/v2/FR/M2/-/channels/crunchyroll"}},"promo_title":""},{"__class__":"panel","channel_id":"crunchyroll","linked_resource_key":"cms:/episodes/G4VUQVWEZ","last_public":"2024-01-24T13:29:38Z","new":true,"episode_metadata":{"ad_breaks":[{"offset_ms":0,"type":"preroll"},{"offset_ms":355522,"type":"midroll"},{"offset_ms":711044,"type":"midroll"},{"offset_ms":1066566,"type":"midroll"}],"audio_locale":"ja-JP","availability_ends":"9998-11-30T08:00:00Z","availability_notes":"","availability_starts":"9998-11-30T08:00:00Z","available_date":null,"available_offline":true,"closed_captions_available":false,"duration_ms":1422089,"eligible_region":"FR","episode":"4","episode_air_date":"2024-01-24T21:00:00+09:00","episode_number":4,"extended_maturity_rating":{},"free_available_date":"9998-11-30T08:00:00Z","identifier":"GDKHZEWP9|S2|E4","is_clip":false,"is_dubbed":false,"is_mature":false,"is_premium_only":true,"is_subbed":true,"mature_blocked":false,"maturity_ratings":["TV-14"],"premium_available_date":"2024-01-24T13:30:00Z","premium_date":null,"season_id":"G6JQC135E","season_number":2,"season_slug_title":"bottom-tier-character-tomozaki-2nd-stage","season_title":"Bottom-Tier Character Tomozaki","sequence_number":4,"series_id":"GDKHZEWP9","series_slug_title":"bottom-tier-character-tomozaki","series_title":"Bottom-Tier Character Tomozaki","subtitle_locales":["en-US","es-419","es-ES","fr-FR","pt-BR","ar-SA","it-IT","de-DE","ru-RU"],"upload_date":"2024-01-24T21:00:00+09:00","versions":[{"audio_locale":"ja-JP","guid":"G4VUQVWEZ","is_premium_only":true,"media_guid":"GNJFD1NPG","original":true,"season_guid":"G6JQC135E","variant":""}]},"slug":"","__actions__":{},"new_content":false,"title":"Même les roturiers ont une vie à mener","description":"Fumiya continue d’aider Tama pour qu’elle change son comportement et se fasse ainsi plus apprécier des autres. Pour mettre en pratique les leçons, Fumiya fera appel à une personne assez inattendue…","external_id":"EPI.917962","promo_description":"","slug_title":"villagers-have-their-own-way-of-life","id":"G4VUQVWEZ","images":{"thumbnail":[[{"height":180,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/b7c5c6ba8197b2ecce8993952e6dbd05.jpe","type":"thumbnail","width":320},{"height":338,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/b7c5c6ba8197b2ecce8993952e6dbd05.jpe","type":"thumbnail","width":600},{"height":360,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/b7c5c6ba8197b2ecce8993952e6dbd05.jpe","type":"thumbnail","width":640},{"height":450,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/b7c5c6ba8197b2ecce8993952e6dbd05.jpe","type":"thumbnail","width":800},{"height":675,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/b7c5c6ba8197b2ecce8993952e6dbd05.jpe","type":"thumbnail","width":1200},{"height":810,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/b7c5c6ba8197b2ecce8993952e6dbd05.jpe","type":"thumbnail","width":1440},{"height":900,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/b7c5c6ba8197b2ecce8993952e6dbd05.jpe","type":"thumbnail","width":1600},{"height":1080,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/b7c5c6ba8197b2ecce8993952e6dbd05.jpe","type":"thumbnail","width":1920}]]},"type":"episode","__links__":{"episode/season":{"href":"/cms/v2/FR/M2/-/seasons/G6JQC135E"},"episode/series":{"href":"/cms/v2/FR/M2/-/series/GDKHZEWP9"},"resource":{"href":"/cms/v2/FR/M2/-/episodes/G4VUQVWEZ"},"resource/channel":{"href":"/cms/v2/FR/M2/-/channels/crunchyroll"}},"promo_title":"","__href__":""},{"external_id":"EPI.919862","new":true,"slug":"","promo_description":"","__actions__":{},"images":{"thumbnail":[[{"height":180,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe","type":"thumbnail","width":320},{"height":338,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe","type":"thumbnail","width":600},{"height":360,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe","type":"thumbnail","width":640},{"height":450,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe","type":"thumbnail","width":800},{"height":675,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe","type":"thumbnail","width":1200},{"height":810,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe","type":"thumbnail","width":1440},{"height":900,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe","type":"thumbnail","width":1600},{"height":1080,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe","type":"thumbnail","width":1920}]]},"promo_title":"","__links__":{"episode/season":{"href":"/cms/v2/FR/M2/-/seasons/GYK5CNJQK"},"episode/series":{"href":"/cms/v2/FR/M2/-/series/G0XHWM0D3"},"resource":{"href":"/cms/v2/FR/M2/-/episodes/GN7UD1571"},"resource/channel":{"href":"/cms/v2/FR/M2/-/channels/crunchyroll"}},"title":"Je déteste les beaux gosses","id":"GN7UD1571","__href__":"","channel_id":"crunchyroll","slug_title":"we-both-hate-hot-guys","episode_metadata":{"ad_breaks":[{"offset_ms":0,"type":"preroll"},{"offset_ms":355024,"type":"midroll"},{"offset_ms":710048,"type":"midroll"},{"offset_ms":1065072,"type":"midroll"}],"audio_locale":"te-IN","availability_ends":"9998-11-30T08:00:00Z","availability_notes":"","availability_starts":"9998-11-30T08:00:00Z","available_date":null,"available_offline":true,"closed_captions_available":false,"duration_ms":1420097,"eligible_region":"FR","episode":"7","episode_air_date":"2022-05-15T22:00:00+09:00","episode_number":7,"extended_maturity_rating":{},"free_available_date":"9998-11-30T08:00:00Z","identifier":"G0XHWM0D3|S1|E7","is_clip":false,"is_dubbed":true,"is_mature":false,"is_premium_only":true,"is_subbed":true,"mature_blocked":false,"maturity_ratings":["TV-14"],"premium_available_date":"2024-01-24T06:00:00Z","premium_date":null,"season_id":"GYK5CNJQK","season_number":1,"season_slug_title":"trapped-in-a-dating-sim-the-world-of-otome-games-is-tough-for-mobs-telugu-dub","season_title":"Trapped in a Dating Sim: The World of Otome Games is Tough for Mobs","sequence_number":7,"series_id":"G0XHWM0D3","series_slug_title":"trapped-in-a-dating-sim-the-world-of-otome-games-is-tough-for-mobs","series_title":"Trapped in a Dating Sim: The World of Otome Games is Tough for Mobs","subtitle_locales":[],"upload_date":"2022-05-15T22:00:00+09:00","versions":[{"audio_locale":"ja-JP","guid":"GQJUGPZEG","is_premium_only":true,"media_guid":"GGVF23VD2","original":true,"season_guid":"G6X0C4KG7","variant":""},{"audio_locale":"fr-FR","guid":"G9DUE1Q27","is_premium_only":true,"media_guid":"G1QF4W0P2","original":false,"season_guid":"G68VCP2Z4","variant":""},{"audio_locale":"en-US","guid":"G7PU4XZDV","is_premium_only":true,"media_guid":"G4GFQEJ7X","original":false,"season_guid":"GYDQCG25K","variant":""},{"audio_locale":"de-DE","guid":"G14U4WD85","is_premium_only":true,"media_guid":"GKKF35J7W","original":false,"season_guid":"GYZXCMPZ8","variant":""},{"audio_locale":"hi-IN","guid":"G7PU499Q1","is_premium_only":true,"media_guid":"G4GFQ22NV","original":false,"season_guid":"GRQ4CZPED","variant":""},{"audio_locale":"en-IN","guid":"G9DUE3380","is_premium_only":true,"media_guid":"G1QF4MMN7","original":false,"season_guid":"GR5VCD7EE","variant":""},{"audio_locale":"es-419","guid":"GWDU8QKPM","is_premium_only":true,"media_guid":"GEMFZNG83","original":false,"season_guid":"GR2PCVWZ8","variant":""},{"audio_locale":"pt-BR","guid":"G7PU4JVV8","is_premium_only":true,"media_guid":"G4GFQ8XXD","original":false,"season_guid":"GY8VCP898","variant":""},{"audio_locale":"te-IN","guid":"GN7UD1571","is_premium_only":true,"media_guid":"GVMF07DZ7","original":false,"season_guid":"GYK5CNJQK","variant":""},{"audio_locale":"ta-IN","guid":"GJWU204X9","is_premium_only":true,"media_guid":"GM8FXPJ4Q","original":false,"season_guid":"GRNQCJEG2","variant":""}]},"__class__":"panel","description":"Au cours d'une course, Zirc se blesse et doit trouver un remplaçant. Léon accepte de prendre sa place, et découvre les tenants et aboutissants de ce dans quoi il s'est impliqué.","linked_resource_key":"cms:/episodes/GN7UD1571","type":"episode","last_public":"2024-01-24T00:41:05Z","new_content":false},{"new":true,"__href__":"","promo_description":"","promo_title":"","__class__":"panel","new_content":false,"__actions__":{},"slug":"","slug_title":"we-both-hate-hot-guys","linked_resource_key":"cms:/episodes/GJWU204X9","images":{"thumbnail":[[{"height":180,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe","type":"thumbnail","width":320},{"height":338,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe","type":"thumbnail","width":600},{"height":360,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe","type":"thumbnail","width":640},{"height":450,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe","type":"thumbnail","width":800},{"height":675,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe","type":"thumbnail","width":1200},{"height":810,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe","type":"thumbnail","width":1440},{"height":900,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe","type":"thumbnail","width":1600},{"height":1080,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe","type":"thumbnail","width":1920}]]},"title":"Je déteste les beaux gosses","id":"GJWU204X9","last_public":"2024-01-24T00:39:19Z","__links__":{"episode/season":{"href":"/cms/v2/FR/M2/-/seasons/GRNQCJEG2"},"episode/series":{"href":"/cms/v2/FR/M2/-/series/G0XHWM0D3"},"resource":{"href":"/cms/v2/FR/M2/-/episodes/GJWU204X9"},"resource/channel":{"href":"/cms/v2/FR/M2/-/channels/crunchyroll"}},"type":"episode","channel_id":"crunchyroll","episode_metadata":{"ad_breaks":[{"offset_ms":0,"type":"preroll"},{"offset_ms":355024,"type":"midroll"},{"offset_ms":710048,"type":"midroll"},{"offset_ms":1065072,"type":"midroll"}],"audio_locale":"ta-IN","availability_ends":"9998-11-30T08:00:00Z","availability_notes":"","availability_starts":"9998-11-30T08:00:00Z","available_date":null,"available_offline":true,"closed_captions_available":false,"duration_ms":1420097,"eligible_region":"FR","episode":"7","episode_air_date":"2022-05-15T22:00:00+09:00","episode_number":7,"extended_maturity_rating":{},"free_available_date":"9998-11-30T08:00:00Z","identifier":"G0XHWM0D3|S1|E7","is_clip":false,"is_dubbed":true,"is_mature":false,"is_premium_only":true,"is_subbed":true,"mature_blocked":false,"maturity_ratings":["TV-14"],"premium_available_date":"2024-01-24T06:00:00Z","premium_date":null,"season_id":"GRNQCJEG2","season_number":1,"season_slug_title":"trapped-in-a-dating-sim-the-world-of-otome-games-is-tough-for-mobs-tamil-dub","season_title":"Trapped in a Dating Sim: The World of Otome Games is Tough for Mobs","sequence_number":7,"series_id":"G0XHWM0D3","series_slug_title":"trapped-in-a-dating-sim-the-world-of-otome-games-is-tough-for-mobs","series_title":"Trapped in a Dating Sim: The World of Otome Games is Tough for Mobs","subtitle_locales":[],"upload_date":"2022-05-15T22:00:00+09:00","versions":[{"audio_locale":"ja-JP","guid":"GQJUGPZEG","is_premium_only":true,"media_guid":"GGVF23VD2","original":true,"season_guid":"G6X0C4KG7","variant":""},{"audio_locale":"fr-FR","guid":"G9DUE1Q27","is_premium_only":true,"media_guid":"G1QF4W0P2","original":false,"season_guid":"G68VCP2Z4","variant":""},{"audio_locale":"en-US","guid":"G7PU4XZDV","is_premium_only":true,"media_guid":"G4GFQEJ7X","original":false,"season_guid":"GYDQCG25K","variant":""},{"audio_locale":"de-DE","guid":"G14U4WD85","is_premium_only":true,"media_guid":"GKKF35J7W","original":false,"season_guid":"GYZXCMPZ8","variant":""},{"audio_locale":"hi-IN","guid":"G7PU499Q1","is_premium_only":true,"media_guid":"G4GFQ22NV","original":false,"season_guid":"GRQ4CZPED","variant":""},{"audio_locale":"en-IN","guid":"G9DUE3380","is_premium_only":true,"media_guid":"G1QF4MMN7","original":false,"season_guid":"GR5VCD7EE","variant":""},{"audio_locale":"es-419","guid":"GWDU8QKPM","is_premium_only":true,"media_guid":"GEMFZNG83","original":false,"season_guid":"GR2PCVWZ8","variant":""},{"audio_locale":"pt-BR","guid":"G7PU4JVV8","is_premium_only":true,"media_guid":"G4GFQ8XXD","original":false,"season_guid":"GY8VCP898","variant":""},{"audio_locale":"te-IN","guid":"GN7UD1571","is_premium_only":true,"media_guid":"GVMF07DZ7","original":false,"season_guid":"GYK5CNJQK","variant":""},{"audio_locale":"ta-IN","guid":"GJWU204X9","is_premium_only":true,"media_guid":"GM8FXPJ4Q","original":false,"season_guid":"GRNQCJEG2","variant":""}]},"external_id":"EPI.919861","description":"Au cours d'une course, Zirc se blesse et doit trouver un remplaçant. Léon accepte de prendre sa place, et découvre les tenants et aboutissants de ce dans quoi il s'est impliqué."},{"__links__":{"episode/season":{"href":"/cms/v2/FR/M2/-/seasons/G6DQCGKP0"},"episode/series":{"href":"/cms/v2/FR/M2/-/series/GDKHZEP21"},"resource":{"href":"/cms/v2/FR/M2/-/episodes/G14U418EG"},"resource/channel":{"href":"/cms/v2/FR/M2/-/channels/crunchyroll"}},"title":"Le plus puissant sorcier du monde revêt un masque","episode_metadata":{"ad_breaks":[{"offset_ms":0,"type":"preroll"},{"offset_ms":362522,"type":"midroll"},{"offset_ms":725044,"type":"midroll"},{"offset_ms":1087566,"type":"midroll"}],"audio_locale":"hi-IN","availability_ends":"9998-11-30T08:00:00Z","availability_notes":"","availability_starts":"9998-11-30T08:00:00Z","available_date":null,"available_offline":true,"closed_captions_available":false,"duration_ms":1450091,"eligible_region":"FR","episode":"6","episode_air_date":"2023-02-10T01:28:00+09:00","episode_number":6,"extended_maturity_rating":{},"free_available_date":"9998-11-30T08:00:00Z","identifier":"GDKHZEP21|S1|E6","is_clip":false,"is_dubbed":true,"is_mature":false,"is_premium_only":true,"is_subbed":true,"mature_blocked":false,"maturity_ratings":["TV-14"],"premium_available_date":"2024-01-24T04:30:00Z","premium_date":null,"season_id":"G6DQCGKP0","season_number":1,"season_slug_title":"the-iceblade-sorcerer-shall-rule-the-world-hindi-dub","season_title":"The Iceblade Sorcerer Shall Rule the World","sequence_number":6,"series_id":"GDKHZEP21","series_slug_title":"the-iceblade-sorcerer-shall-rule-the-world","series_title":"The Iceblade Sorcerer Shall Rule the World","subtitle_locales":[],"upload_date":"2023-02-10T01:28:00+09:00","versions":[{"audio_locale":"ja-JP","guid":"G2XU0Q9KN","is_premium_only":true,"media_guid":"GDVFVX7KE","original":true,"season_guid":"GYP8CX121","variant":""},{"audio_locale":"en-US","guid":"GWDU8DD58","is_premium_only":true,"media_guid":"GEMFZEE4Z","original":false,"season_guid":"GY2PCV859","variant":""},{"audio_locale":"de-DE","guid":"G7PU499ZG","is_premium_only":true,"media_guid":"G4GFQ22JG","original":false,"season_guid":"GRP8CX108","variant":""},{"audio_locale":"es-419","guid":"GJWU29E5Q","is_premium_only":true,"media_guid":"GM8FXQG8E","original":false,"season_guid":"GRE5CQM57","variant":""},{"audio_locale":"pt-BR","guid":"GVWU0W45D","is_premium_only":true,"media_guid":"G25F04DWZ","original":false,"season_guid":"G675CDE5P","variant":""},{"audio_locale":"hi-IN","guid":"G14U418EG","is_premium_only":true,"media_guid":"GKKF3K74D","original":false,"season_guid":"G6DQCGKP0","variant":""}]},"external_id":"EPI.919860","slug":"","last_public":"2024-01-24T00:38:06Z","type":"episode","__href__":"","channel_id":"crunchyroll","slug_title":"the-boy-who-became-the-worlds-strongest-sorcerer-dons-a-mask","__actions__":{},"new":true,"new_content":false,"id":"G14U418EG","images":{"thumbnail":[[{"height":180,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/7eb22b204d9771c4f99765c451dfffa4.jpe","type":"thumbnail","width":320},{"height":338,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/7eb22b204d9771c4f99765c451dfffa4.jpe","type":"thumbnail","width":600},{"height":360,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/7eb22b204d9771c4f99765c451dfffa4.jpe","type":"thumbnail","width":640},{"height":450,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/7eb22b204d9771c4f99765c451dfffa4.jpe","type":"thumbnail","width":800},{"height":675,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/7eb22b204d9771c4f99765c451dfffa4.jpe","type":"thumbnail","width":1200},{"height":810,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/7eb22b204d9771c4f99765c451dfffa4.jpe","type":"thumbnail","width":1440},{"height":900,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/7eb22b204d9771c4f99765c451dfffa4.jpe","type":"thumbnail","width":1600},{"height":1080,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/7eb22b204d9771c4f99765c451dfffa4.jpe","type":"thumbnail","width":1920}]]},"linked_resource_key":"cms:/episodes/G14U418EG","description":"À l’approche du Magicus Chevalier, Amelia redoute de ne pas être à la hauteur malgré ses compétences. Ray lui propose alors de l’aider en lui faisant suivre l’entraînement auquel il avait été soumis plus jeune.","promo_description":"","promo_title":"","__class__":"panel"},{"title":"On profite de ce moment… toutes ensemble","new":true,"id":"G4VUQVPX2","type":"episode","external_id":"EPI.919859","slug":"","linked_resource_key":"cms:/episodes/G4VUQVPX2","__actions__":{},"__class__":"panel","images":{"thumbnail":[[{"height":180,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe","type":"thumbnail","width":320},{"height":338,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe","type":"thumbnail","width":600},{"height":360,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe","type":"thumbnail","width":640},{"height":450,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe","type":"thumbnail","width":800},{"height":675,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe","type":"thumbnail","width":1200},{"height":810,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe","type":"thumbnail","width":1440},{"height":900,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe","type":"thumbnail","width":1600},{"height":1080,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe","type":"thumbnail","width":1920}]]},"promo_description":"","channel_id":"crunchyroll","episode_metadata":{"ad_breaks":[{"offset_ms":0,"type":"preroll"},{"offset_ms":355024,"type":"midroll"},{"offset_ms":710048,"type":"midroll"},{"offset_ms":1065072,"type":"midroll"}],"audio_locale":"te-IN","availability_ends":"9998-11-30T08:00:00Z","availability_notes":"","availability_starts":"9998-11-30T08:00:00Z","available_date":null,"available_offline":true,"closed_captions_available":false,"duration_ms":1420097,"eligible_region":"FR","episode":"11","episode_air_date":"2022-03-20T00:30:00+09:00","episode_number":11,"extended_maturity_rating":{},"free_available_date":"9998-11-30T08:00:00Z","identifier":"GDKHZEW97|S1|E11","is_clip":false,"is_dubbed":true,"is_mature":false,"is_premium_only":true,"is_subbed":true,"mature_blocked":false,"maturity_ratings":["TV-14"],"premium_available_date":"2024-01-24T04:30:00Z","premium_date":null,"season_id":"G6MGC32ZJ","season_number":1,"season_slug_title":"akebis-sailor-uniform-telugu-dub","season_title":"Akebi's Sailor Uniform","sequence_number":11,"series_id":"GDKHZEW97","series_slug_title":"akebis-sailor-uniform","series_title":"Akebi's Sailor Uniform","subtitle_locales":[],"upload_date":"2022-03-20T00:30:00+09:00","versions":[{"audio_locale":"ja-JP","guid":"G14U427J4","is_premium_only":true,"media_guid":"GKKF3QE23","original":true,"season_guid":"GRK5CNZ5X","variant":""},{"audio_locale":"en-US","guid":"G50UZ7Z7Q","is_premium_only":true,"media_guid":"G07FN5N57","original":false,"season_guid":"G6X0C4DZQ","variant":""},{"audio_locale":"hi-IN","guid":"G0DUN81Z8","is_premium_only":true,"media_guid":"G9XFE3Q43","original":false,"season_guid":"GYE5CQ4J8","variant":""},{"audio_locale":"ta-IN","guid":"GX9UQWN75","is_premium_only":true,"media_guid":"GJKF204XZ","original":false,"season_guid":"G6K5CNJZ9","variant":""},{"audio_locale":"te-IN","guid":"G4VUQVPX2","is_premium_only":true,"media_guid":"GNJFD1574","original":false,"season_guid":"G6MGC32ZJ","variant":""}]},"description":"Akebi et ses amies s'entraînent à présent pour l'épreuve de volley-ball. Malheureusement, certaines d'entre elles rencontrent des difficultés avec ce sport et cherchent un moyen de pouvoir s'entraîner davantage.","promo_title":"","__links__":{"episode/season":{"href":"/cms/v2/FR/M2/-/seasons/G6MGC32ZJ"},"episode/series":{"href":"/cms/v2/FR/M2/-/series/GDKHZEW97"},"resource":{"href":"/cms/v2/FR/M2/-/episodes/G4VUQVPX2"},"resource/channel":{"href":"/cms/v2/FR/M2/-/channels/crunchyroll"}},"__href__":"","slug_title":"sharing-this-time-with-everyone","last_public":"2024-01-24T00:36:06Z","new_content":false},{"promo_title":"","channel_id":"crunchyroll","linked_resource_key":"cms:/episodes/GX9UQWN75","images":{"thumbnail":[[{"height":180,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe","type":"thumbnail","width":320},{"height":338,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe","type":"thumbnail","width":600},{"height":360,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe","type":"thumbnail","width":640},{"height":450,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe","type":"thumbnail","width":800},{"height":675,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe","type":"thumbnail","width":1200},{"height":810,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe","type":"thumbnail","width":1440},{"height":900,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe","type":"thumbnail","width":1600},{"height":1080,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe","type":"thumbnail","width":1920}]]},"slug":"","id":"GX9UQWN75","__href__":"","slug_title":"sharing-this-time-with-everyone","type":"episode","external_id":"EPI.919858","__links__":{"episode/season":{"href":"/cms/v2/FR/M2/-/seasons/G6K5CNJZ9"},"episode/series":{"href":"/cms/v2/FR/M2/-/series/GDKHZEW97"},"resource":{"href":"/cms/v2/FR/M2/-/episodes/GX9UQWN75"},"resource/channel":{"href":"/cms/v2/FR/M2/-/channels/crunchyroll"}},"last_public":"2024-01-24T00:34:06Z","promo_description":"","title":"On profite de ce moment… toutes ensemble","new_content":false,"__class__":"panel","__actions__":{},"episode_metadata":{"ad_breaks":[{"offset_ms":0,"type":"preroll"},{"offset_ms":355024,"type":"midroll"},{"offset_ms":710048,"type":"midroll"},{"offset_ms":1065072,"type":"midroll"}],"audio_locale":"ta-IN","availability_ends":"9998-11-30T08:00:00Z","availability_notes":"","availability_starts":"9998-11-30T08:00:00Z","available_date":null,"available_offline":true,"closed_captions_available":false,"duration_ms":1420097,"eligible_region":"FR","episode":"11","episode_air_date":"2022-03-20T00:30:00+09:00","episode_number":11,"extended_maturity_rating":{},"free_available_date":"9998-11-30T08:00:00Z","identifier":"GDKHZEW97|S1|E11","is_clip":false,"is_dubbed":true,"is_mature":false,"is_premium_only":true,"is_subbed":true,"mature_blocked":false,"maturity_ratings":["TV-14"],"premium_available_date":"2024-01-24T04:30:00Z","premium_date":null,"season_id":"G6K5CNJZ9","season_number":1,"season_slug_title":"akebis-sailor-uniform-tamil-dub","season_title":"Akebi's Sailor Uniform","sequence_number":11,"series_id":"GDKHZEW97","series_slug_title":"akebis-sailor-uniform","series_title":"Akebi's Sailor Uniform","subtitle_locales":[],"upload_date":"2022-03-20T00:30:00+09:00","versions":[{"audio_locale":"ja-JP","guid":"G14U427J4","is_premium_only":true,"media_guid":"GKKF3QE23","original":true,"season_guid":"GRK5CNZ5X","variant":""},{"audio_locale":"en-US","guid":"G50UZ7Z7Q","is_premium_only":true,"media_guid":"G07FN5N57","original":false,"season_guid":"G6X0C4DZQ","variant":""},{"audio_locale":"hi-IN","guid":"G0DUN81Z8","is_premium_only":true,"media_guid":"G9XFE3Q43","original":false,"season_guid":"GYE5CQ4J8","variant":""},{"audio_locale":"ta-IN","guid":"GX9UQWN75","is_premium_only":true,"media_guid":"GJKF204XZ","original":false,"season_guid":"G6K5CNJZ9","variant":""},{"audio_locale":"te-IN","guid":"G4VUQVPX2","is_premium_only":true,"media_guid":"GNJFD1574","original":false,"season_guid":"G6MGC32ZJ","variant":""}]},"description":"Akebi et ses amies s'entraînent à présent pour l'épreuve de volley-ball. Malheureusement, certaines d'entre elles rencontrent des difficultés avec ce sport et cherchent un moyen de pouvoir s'entraîner davantage.","new":true},{"new_content":false,"last_public":"2024-01-24T00:14:40Z","new":true,"promo_title":"","channel_id":"crunchyroll","promo_description":"","linked_resource_key":"cms:/episodes/G9DUEMWPJ","type":"episode","external_id":"EPI.919857","episode_metadata":{"ad_breaks":[{"offset_ms":0,"type":"preroll"},{"offset_ms":367536,"type":"midroll"},{"offset_ms":735072,"type":"midroll"},{"offset_ms":1102608,"type":"midroll"}],"audio_locale":"te-IN","availability_ends":"9998-11-30T08:00:00Z","availability_notes":"","availability_starts":"9998-11-30T08:00:00Z","available_date":null,"available_offline":true,"closed_captions_available":false,"duration_ms":1470145,"eligible_region":"FR","episode":"14","episode_air_date":"2019-01-05T17:35:00+09:00","episode_number":14,"extended_maturity_rating":{},"free_available_date":"9998-11-30T08:00:00Z","identifier":"G6W4MEZ0R|S1|E14","is_clip":false,"is_dubbed":true,"is_mature":false,"is_premium_only":true,"is_subbed":true,"mature_blocked":false,"maturity_ratings":["TV-14"],"premium_available_date":"2024-01-24T05:00:00Z","premium_date":null,"season_id":"GY09CXPVK","season_number":1,"season_slug_title":"radiant-telugu-dub","season_title":"RADIANT","sequence_number":14,"series_id":"G6W4MEZ0R","series_slug_title":"radiant","series_title":"RADIANT","subtitle_locales":[],"upload_date":"2019-01-05T17:35:00+09:00","versions":[{"audio_locale":"ja-JP","guid":"GYG5XK92Y","is_premium_only":true,"media_guid":"GJKF2PP4G","original":true,"season_guid":"G6G5VG426","variant":""},{"audio_locale":"es-419","guid":"G7PU459D5","is_premium_only":true,"media_guid":"G4GFQ3273","original":false,"season_guid":"GYVNC2DV7","variant":""},{"audio_locale":"pt-BR","guid":"G0DUN38XK","is_premium_only":true,"media_guid":"G9XFEX32M","original":false,"season_guid":"GR3VC2MPN","variant":""},{"audio_locale":"en-US","guid":"G31UXQ2VD","is_premium_only":true,"media_guid":"G8MFNEP78","original":false,"season_guid":"GR19CP3M5","variant":""},{"audio_locale":"hi-IN","guid":"GVWU09JPJ","is_premium_only":true,"media_guid":"G25F0QJ5J","original":false,"season_guid":"G675CD0Q1","variant":""},{"audio_locale":"ta-IN","guid":"GEVUZD5G4","is_premium_only":true,"media_guid":"GXMFQWN7P","original":false,"season_guid":"G6GGCV9K4","variant":""},{"audio_locale":"te-IN","guid":"G9DUEMWPJ","is_premium_only":true,"media_guid":"G1QF418ED","original":false,"season_guid":"GY09CXPVK","variant":""}]},"title":"La cloche de l’effondrement","__class__":"panel","__links__":{"episode/season":{"href":"/cms/v2/FR/M2/-/seasons/GY09CXPVK"},"episode/series":{"href":"/cms/v2/FR/M2/-/series/G6W4MEZ0R"},"resource":{"href":"/cms/v2/FR/M2/-/episodes/G9DUEMWPJ"},"resource/channel":{"href":"/cms/v2/FR/M2/-/channels/crunchyroll"}},"id":"G9DUEMWPJ","slug":"","slug_title":"the-bell-tolls-the-sound-of-destruction--catastrophe-","images":{"thumbnail":[[{"height":180,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe","type":"thumbnail","width":320},{"height":338,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe","type":"thumbnail","width":600},{"height":360,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe","type":"thumbnail","width":640},{"height":450,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe","type":"thumbnail","width":800},{"height":675,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe","type":"thumbnail","width":1200},{"height":810,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe","type":"thumbnail","width":1440},{"height":900,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe","type":"thumbnail","width":1600},{"height":1080,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe","type":"thumbnail","width":1920}]]},"__actions__":{},"description":"Le secret qui entoure le plan de Konrad commence à se dévoiler. Seth veut tout mettre en œuvre pour le contrer, mais c’est sans compter l’intervention de Grimm…","__href__":""},{"__class__":"panel","slug":"","__links__":{"episode/season":{"href":"/cms/v2/FR/M2/-/seasons/G6GGCV9K4"},"episode/series":{"href":"/cms/v2/FR/M2/-/series/G6W4MEZ0R"},"resource":{"href":"/cms/v2/FR/M2/-/episodes/GEVUZD5G4"},"resource/channel":{"href":"/cms/v2/FR/M2/-/channels/crunchyroll"}},"__href__":"","episode_metadata":{"ad_breaks":[{"offset_ms":0,"type":"preroll"},{"offset_ms":367536,"type":"midroll"},{"offset_ms":735072,"type":"midroll"},{"offset_ms":1102608,"type":"midroll"}],"audio_locale":"ta-IN","availability_ends":"9998-11-30T08:00:00Z","availability_notes":"","availability_starts":"9998-11-30T08:00:00Z","available_date":null,"available_offline":true,"closed_captions_available":false,"duration_ms":1470145,"eligible_region":"FR","episode":"14","episode_air_date":"2019-01-05T17:35:00+09:00","episode_number":14,"extended_maturity_rating":{},"free_available_date":"9998-11-30T08:00:00Z","identifier":"G6W4MEZ0R|S1|E14","is_clip":false,"is_dubbed":true,"is_mature":false,"is_premium_only":true,"is_subbed":true,"mature_blocked":false,"maturity_ratings":["TV-14"],"premium_available_date":"2024-01-24T05:00:00Z","premium_date":null,"season_id":"G6GGCV9K4","season_number":1,"season_slug_title":"radiant-tamil-dub","season_title":"RADIANT","sequence_number":14,"series_id":"G6W4MEZ0R","series_slug_title":"radiant","series_title":"RADIANT","subtitle_locales":[],"upload_date":"2019-01-05T17:35:00+09:00","versions":[{"audio_locale":"ja-JP","guid":"GYG5XK92Y","is_premium_only":true,"media_guid":"GJKF2PP4G","original":true,"season_guid":"G6G5VG426","variant":""},{"audio_locale":"es-419","guid":"G7PU459D5","is_premium_only":true,"media_guid":"G4GFQ3273","original":false,"season_guid":"GYVNC2DV7","variant":""},{"audio_locale":"pt-BR","guid":"G0DUN38XK","is_premium_only":true,"media_guid":"G9XFEX32M","original":false,"season_guid":"GR3VC2MPN","variant":""},{"audio_locale":"en-US","guid":"G31UXQ2VD","is_premium_only":true,"media_guid":"G8MFNEP78","original":false,"season_guid":"GR19CP3M5","variant":""},{"audio_locale":"hi-IN","guid":"GVWU09JPJ","is_premium_only":true,"media_guid":"G25F0QJ5J","original":false,"season_guid":"G675CD0Q1","variant":""},{"audio_locale":"ta-IN","guid":"GEVUZD5G4","is_premium_only":true,"media_guid":"GXMFQWN7P","original":false,"season_guid":"G6GGCV9K4","variant":""},{"audio_locale":"te-IN","guid":"G9DUEMWPJ","is_premium_only":true,"media_guid":"G1QF418ED","original":false,"season_guid":"GY09CXPVK","variant":""}]},"promo_description":"","slug_title":"the-bell-tolls-the-sound-of-destruction--catastrophe-","type":"episode","promo_title":"","title":"La cloche de l’effondrement","new":true,"new_content":false,"linked_resource_key":"cms:/episodes/GEVUZD5G4","external_id":"EPI.919855","images":{"thumbnail":[[{"height":180,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe","type":"thumbnail","width":320},{"height":338,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe","type":"thumbnail","width":600},{"height":360,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe","type":"thumbnail","width":640},{"height":450,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe","type":"thumbnail","width":800},{"height":675,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe","type":"thumbnail","width":1200},{"height":810,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe","type":"thumbnail","width":1440},{"height":900,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe","type":"thumbnail","width":1600},{"height":1080,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe","type":"thumbnail","width":1920}]]},"channel_id":"crunchyroll","__actions__":{},"last_public":"2024-01-24T00:14:27Z","id":"GEVUZD5G4","description":"Le secret qui entoure le plan de Konrad commence à se dévoiler. Seth veut tout mettre en œuvre pour le contrer, mais c’est sans compter l’intervention de Grimm…"},{"promo_title":"","slug_title":"when-the-sakura-blooms","__links__":{"episode/season":{"href":"/cms/v2/FR/M2/-/seasons/GY19CPDEM"},"episode/series":{"href":"/cms/v2/FR/M2/-/series/GY8VEQ95Y"},"resource":{"href":"/cms/v2/FR/M2/-/episodes/GWDU8JNKP"},"resource/channel":{"href":"/cms/v2/FR/M2/-/channels/crunchyroll"}},"title":"Quand fleurissent les cerisiers","images":{"thumbnail":[[{"height":180,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe","type":"thumbnail","width":320},{"height":338,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe","type":"thumbnail","width":600},{"height":360,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe","type":"thumbnail","width":640},{"height":450,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe","type":"thumbnail","width":800},{"height":675,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe","type":"thumbnail","width":1200},{"height":810,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe","type":"thumbnail","width":1440},{"height":900,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe","type":"thumbnail","width":1600},{"height":1080,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe","type":"thumbnail","width":1920}]]},"external_id":"EPI.919852","slug":"","__href__":"","last_public":"2024-01-24T00:12:40Z","new_content":false,"id":"GWDU8JNKP","promo_description":"","channel_id":"crunchyroll","episode_metadata":{"ad_breaks":[{"offset_ms":0,"type":"preroll"},{"offset_ms":360016,"type":"midroll"},{"offset_ms":720032,"type":"midroll"},{"offset_ms":1080048,"type":"midroll"}],"audio_locale":"te-IN","availability_ends":"9998-11-30T08:00:00Z","availability_notes":"","availability_starts":"9998-11-30T08:00:00Z","available_date":null,"available_offline":true,"closed_captions_available":false,"duration_ms":1440066,"eligible_region":"FR","episode":"18","episode_air_date":"2018-05-19T23:30:00+09:00","episode_number":18,"extended_maturity_rating":{},"free_available_date":"9998-11-30T08:00:00Z","identifier":"GY8VEQ95Y|S1|E18","is_clip":false,"is_dubbed":true,"is_mature":false,"is_premium_only":true,"is_subbed":true,"mature_blocked":false,"maturity_ratings":["TV-14"],"premium_available_date":"2024-01-24T05:30:00Z","premium_date":null,"season_id":"GY19CPDEM","season_number":1,"season_slug_title":"darling-in-the-franxx-telugu-dub","season_title":"DARLING in the FRANXX","sequence_number":18,"series_id":"GY8VEQ95Y","series_slug_title":"darling-in-the-franxx","series_title":"DARLING in the FRANXX","subtitle_locales":[],"upload_date":"2018-05-19T23:30:00+09:00","versions":[{"audio_locale":"ja-JP","guid":"GYQW44EEY","is_premium_only":false,"media_guid":"G07FNEEXN","original":true,"season_guid":"GRZX8KNGY","variant":""},{"audio_locale":"fr-FR","guid":"GYMEXW1V6","is_premium_only":true,"media_guid":"G07FNVKJ7","original":false,"season_guid":"GRDK3JDGY","variant":""},{"audio_locale":"es-419","guid":"GR7931Q36","is_premium_only":true,"media_guid":"G1QF4K7M8","original":false,"season_guid":"GR24J4526","variant":""},{"audio_locale":"pt-BR","guid":"GYMEW8086","is_premium_only":true,"media_guid":"G8MFNKJ0M","original":false,"season_guid":"GRG5M542R","variant":""},{"audio_locale":"de-DE","guid":"GRG5MDW4R","is_premium_only":true,"media_guid":"G1QF48JZE","original":false,"season_guid":"GRZJVPW86","variant":""},{"audio_locale":"en-US","guid":"GN7UD79DJ","is_premium_only":true,"media_guid":"GVMF0Z502","original":false,"season_guid":"GR9PC2XG2","variant":""},{"audio_locale":"hi-IN","guid":"G9DUE35WJ","is_premium_only":true,"media_guid":"G1QF4M98D","original":false,"season_guid":"GY19CP2NE","variant":""},{"audio_locale":"en-IN","guid":"GX9UQ0JN5","is_premium_only":true,"media_guid":"GJKF2V94Z","original":false,"season_guid":"GRJQC18Z8","variant":""},{"audio_locale":"ta-IN","guid":"GZ7UVENX5","is_premium_only":true,"media_guid":"G5JFZVJ43","original":false,"season_guid":"GR49C79XN","variant":""},{"audio_locale":"te-IN","guid":"GWDU8JNKP","is_premium_only":true,"media_guid":"GEMFZD5G8","original":false,"season_guid":"GY19CPDEM","variant":""}]},"new":true,"linked_resource_key":"cms:/episodes/GWDU8JNKP","__actions__":{},"__class__":"panel","type":"episode","description":"Hachi annonce à Ichigo que l'unité 13 va devoir quitter Mistiltein. Avant le grand départ, Hiro a une idée pour célébrer le rapprochement entre Kokoro et Mitsuru."},{"slug":"","description":"Les enfants reçoivent des visiteurs inattendus dans la cage à oiseaux. Leur indépendance fraîchement acquise et les idées qui leur sont venues ne sont peut-être pas du goût de papa…","type":"episode","episode_metadata":{"ad_breaks":[{"offset_ms":0,"type":"preroll"},{"offset_ms":360026,"type":"midroll"},{"offset_ms":720052,"type":"midroll"},{"offset_ms":1080078,"type":"midroll"}],"audio_locale":"te-IN","availability_ends":"9998-11-30T08:00:00Z","availability_notes":"","availability_starts":"9998-11-30T08:00:00Z","available_date":null,"available_offline":true,"closed_captions_available":false,"duration_ms":1440107,"eligible_region":"FR","episode":"17","episode_air_date":"2018-05-12T23:30:00+09:00","episode_number":17,"extended_maturity_rating":{},"free_available_date":"9998-11-30T08:00:00Z","identifier":"GY8VEQ95Y|S1|E17","is_clip":false,"is_dubbed":true,"is_mature":false,"is_premium_only":true,"is_subbed":true,"mature_blocked":false,"maturity_ratings":["TV-14"],"premium_available_date":"2024-01-24T05:30:00Z","premium_date":null,"season_id":"GY19CPDEM","season_number":1,"season_slug_title":"darling-in-the-franxx-telugu-dub","season_title":"DARLING in the FRANXX","sequence_number":17,"series_id":"GY8VEQ95Y","series_slug_title":"darling-in-the-franxx","series_title":"DARLING in the FRANXX","subtitle_locales":[],"upload_date":"2018-05-12T23:30:00+09:00","versions":[{"audio_locale":"ja-JP","guid":"G69VPDJ3Y","is_premium_only":false,"media_guid":"GWMF8ZZ3M","original":true,"season_guid":"GRZX8KNGY","variant":""},{"audio_locale":"fr-FR","guid":"GRNVDG1X6","is_premium_only":true,"media_guid":"GVMF03745","original":false,"season_guid":"GRDK3JDGY","variant":""},{"audio_locale":"es-419","guid":"GR0X4730Y","is_premium_only":true,"media_guid":"GXMFQVE08","original":false,"season_guid":"GR24J4526","variant":""},{"audio_locale":"pt-BR","guid":"G61X1Q8K6","is_premium_only":true,"media_guid":"GPPFK39D7","original":false,"season_guid":"GRG5M542R","variant":""},{"audio_locale":"de-DE","guid":"GY8DP88GY","is_premium_only":true,"media_guid":"GVMF0DX1K","original":false,"season_guid":"GRZJVPW86","variant":""},{"audio_locale":"en-US","guid":"GJWU2XG27","is_premium_only":true,"media_guid":"GM8FX47XM","original":false,"season_guid":"GR9PC2XG2","variant":""},{"audio_locale":"hi-IN","guid":"GMKUXVG05","is_premium_only":true,"media_guid":"GPPFKGDM0","original":false,"season_guid":"GY19CP2NE","variant":""},{"audio_locale":"en-IN","guid":"G31UX9Z8Q","is_premium_only":true,"media_guid":"G8MFNM05E","original":false,"season_guid":"GRJQC18Z8","variant":""},{"audio_locale":"ta-IN","guid":"G8WUN19W5","is_premium_only":true,"media_guid":"GQ9FG349W","original":false,"season_guid":"GR49C79XN","variant":""},{"audio_locale":"te-IN","guid":"G50UZVJ42","is_premium_only":true,"media_guid":"G07FNKQ03","original":false,"season_guid":"GY19CPDEM","variant":""}]},"new":true,"new_content":false,"external_id":"EPI.919851","promo_description":"","__class__":"panel","__href__":"","images":{"thumbnail":[[{"height":180,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe","type":"thumbnail","width":320},{"height":338,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe","type":"thumbnail","width":600},{"height":360,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe","type":"thumbnail","width":640},{"height":450,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe","type":"thumbnail","width":800},{"height":675,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe","type":"thumbnail","width":1200},{"height":810,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe","type":"thumbnail","width":1440},{"height":900,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe","type":"thumbnail","width":1600},{"height":1080,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe","type":"thumbnail","width":1920}]]},"slug_title":"eden","__actions__":{},"__links__":{"episode/season":{"href":"/cms/v2/FR/M2/-/seasons/GY19CPDEM"},"episode/series":{"href":"/cms/v2/FR/M2/-/series/GY8VEQ95Y"},"resource":{"href":"/cms/v2/FR/M2/-/episodes/G50UZVJ42"},"resource/channel":{"href":"/cms/v2/FR/M2/-/channels/crunchyroll"}},"channel_id":"crunchyroll","linked_resource_key":"cms:/episodes/G50UZVJ42","id":"G50UZVJ42","promo_title":"","title":"Paradis","last_public":"2024-01-24T00:12:30Z"},{"external_id":"EPI.919848","__class__":"panel","last_public":"2024-01-24T00:12:17Z","new":true,"new_content":false,"images":{"thumbnail":[[{"height":180,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe","type":"thumbnail","width":320},{"height":338,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe","type":"thumbnail","width":600},{"height":360,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe","type":"thumbnail","width":640},{"height":450,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe","type":"thumbnail","width":800},{"height":675,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe","type":"thumbnail","width":1200},{"height":810,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe","type":"thumbnail","width":1440},{"height":900,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe","type":"thumbnail","width":1600},{"height":1080,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe","type":"thumbnail","width":1920}]]},"__actions__":{},"promo_description":"","slug_title":"when-the-sakura-blooms","id":"GZ7UVENX5","promo_title":"","title":"Quand fleurissent les cerisiers","channel_id":"crunchyroll","episode_metadata":{"ad_breaks":[{"offset_ms":0,"type":"preroll"},{"offset_ms":360016,"type":"midroll"},{"offset_ms":720032,"type":"midroll"},{"offset_ms":1080048,"type":"midroll"}],"audio_locale":"ta-IN","availability_ends":"9998-11-30T08:00:00Z","availability_notes":"","availability_starts":"9998-11-30T08:00:00Z","available_date":null,"available_offline":true,"closed_captions_available":false,"duration_ms":1440066,"eligible_region":"FR","episode":"18","episode_air_date":"2018-05-19T23:30:00+09:00","episode_number":18,"extended_maturity_rating":{},"free_available_date":"9998-11-30T08:00:00Z","identifier":"GY8VEQ95Y|S1|E18","is_clip":false,"is_dubbed":true,"is_mature":false,"is_premium_only":true,"is_subbed":true,"mature_blocked":false,"maturity_ratings":["TV-14"],"premium_available_date":"2024-01-24T05:30:00Z","premium_date":null,"season_id":"GR49C79XN","season_number":1,"season_slug_title":"darling-in-the-franxx-tamil-dub","season_title":"DARLING in the FRANXX","sequence_number":18,"series_id":"GY8VEQ95Y","series_slug_title":"darling-in-the-franxx","series_title":"DARLING in the FRANXX","subtitle_locales":[],"upload_date":"2018-05-19T23:30:00+09:00","versions":[{"audio_locale":"ja-JP","guid":"GYQW44EEY","is_premium_only":false,"media_guid":"G07FNEEXN","original":true,"season_guid":"GRZX8KNGY","variant":""},{"audio_locale":"fr-FR","guid":"GYMEXW1V6","is_premium_only":true,"media_guid":"G07FNVKJ7","original":false,"season_guid":"GRDK3JDGY","variant":""},{"audio_locale":"es-419","guid":"GR7931Q36","is_premium_only":true,"media_guid":"G1QF4K7M8","original":false,"season_guid":"GR24J4526","variant":""},{"audio_locale":"pt-BR","guid":"GYMEW8086","is_premium_only":true,"media_guid":"G8MFNKJ0M","original":false,"season_guid":"GRG5M542R","variant":""},{"audio_locale":"de-DE","guid":"GRG5MDW4R","is_premium_only":true,"media_guid":"G1QF48JZE","original":false,"season_guid":"GRZJVPW86","variant":""},{"audio_locale":"en-US","guid":"GN7UD79DJ","is_premium_only":true,"media_guid":"GVMF0Z502","original":false,"season_guid":"GR9PC2XG2","variant":""},{"audio_locale":"hi-IN","guid":"G9DUE35WJ","is_premium_only":true,"media_guid":"G1QF4M98D","original":false,"season_guid":"GY19CP2NE","variant":""},{"audio_locale":"en-IN","guid":"GX9UQ0JN5","is_premium_only":true,"media_guid":"GJKF2V94Z","original":false,"season_guid":"GRJQC18Z8","variant":""},{"audio_locale":"ta-IN","guid":"GZ7UVENX5","is_premium_only":true,"media_guid":"G5JFZVJ43","original":false,"season_guid":"GR49C79XN","variant":""},{"audio_locale":"te-IN","guid":"GWDU8JNKP","is_premium_only":true,"media_guid":"GEMFZD5G8","original":false,"season_guid":"GY19CPDEM","variant":""}]},"description":"Hachi annonce à Ichigo que l'unité 13 va devoir quitter Mistiltein. Avant le grand départ, Hiro a une idée pour célébrer le rapprochement entre Kokoro et Mitsuru.","type":"episode","__links__":{"episode/season":{"href":"/cms/v2/FR/M2/-/seasons/GR49C79XN"},"episode/series":{"href":"/cms/v2/FR/M2/-/series/GY8VEQ95Y"},"resource":{"href":"/cms/v2/FR/M2/-/episodes/GZ7UVENX5"},"resource/channel":{"href":"/cms/v2/FR/M2/-/channels/crunchyroll"}},"slug":"","__href__":"","linked_resource_key":"cms:/episodes/GZ7UVENX5"},{"episode_metadata":{"ad_breaks":[{"offset_ms":0,"type":"preroll"},{"offset_ms":360026,"type":"midroll"},{"offset_ms":720052,"type":"midroll"},{"offset_ms":1080078,"type":"midroll"}],"audio_locale":"ta-IN","availability_ends":"9998-11-30T08:00:00Z","availability_notes":"","availability_starts":"9998-11-30T08:00:00Z","available_date":null,"available_offline":true,"closed_captions_available":false,"duration_ms":1440107,"eligible_region":"FR","episode":"17","episode_air_date":"2018-05-12T23:30:00+09:00","episode_number":17,"extended_maturity_rating":{},"free_available_date":"9998-11-30T08:00:00Z","identifier":"GY8VEQ95Y|S1|E17","is_clip":false,"is_dubbed":true,"is_mature":false,"is_premium_only":true,"is_subbed":true,"mature_blocked":false,"maturity_ratings":["TV-14"],"premium_available_date":"2024-01-24T05:30:00Z","premium_date":null,"season_id":"GR49C79XN","season_number":1,"season_slug_title":"darling-in-the-franxx-tamil-dub","season_title":"DARLING in the FRANXX","sequence_number":17,"series_id":"GY8VEQ95Y","series_slug_title":"darling-in-the-franxx","series_title":"DARLING in the FRANXX","subtitle_locales":[],"upload_date":"2018-05-12T23:30:00+09:00","versions":[{"audio_locale":"ja-JP","guid":"G69VPDJ3Y","is_premium_only":false,"media_guid":"GWMF8ZZ3M","original":true,"season_guid":"GRZX8KNGY","variant":""},{"audio_locale":"fr-FR","guid":"GRNVDG1X6","is_premium_only":true,"media_guid":"GVMF03745","original":false,"season_guid":"GRDK3JDGY","variant":""},{"audio_locale":"es-419","guid":"GR0X4730Y","is_premium_only":true,"media_guid":"GXMFQVE08","original":false,"season_guid":"GR24J4526","variant":""},{"audio_locale":"pt-BR","guid":"G61X1Q8K6","is_premium_only":true,"media_guid":"GPPFK39D7","original":false,"season_guid":"GRG5M542R","variant":""},{"audio_locale":"de-DE","guid":"GY8DP88GY","is_premium_only":true,"media_guid":"GVMF0DX1K","original":false,"season_guid":"GRZJVPW86","variant":""},{"audio_locale":"en-US","guid":"GJWU2XG27","is_premium_only":true,"media_guid":"GM8FX47XM","original":false,"season_guid":"GR9PC2XG2","variant":""},{"audio_locale":"hi-IN","guid":"GMKUXVG05","is_premium_only":true,"media_guid":"GPPFKGDM0","original":false,"season_guid":"GY19CP2NE","variant":""},{"audio_locale":"en-IN","guid":"G31UX9Z8Q","is_premium_only":true,"media_guid":"G8MFNM05E","original":false,"season_guid":"GRJQC18Z8","variant":""},{"audio_locale":"ta-IN","guid":"G8WUN19W5","is_premium_only":true,"media_guid":"GQ9FG349W","original":false,"season_guid":"GR49C79XN","variant":""},{"audio_locale":"te-IN","guid":"G50UZVJ42","is_premium_only":true,"media_guid":"G07FNKQ03","original":false,"season_guid":"GY19CPDEM","variant":""}]},"last_public":"2024-01-24T00:12:06Z","external_id":"EPI.919847","__links__":{"episode/season":{"href":"/cms/v2/FR/M2/-/seasons/GR49C79XN"},"episode/series":{"href":"/cms/v2/FR/M2/-/series/GY8VEQ95Y"},"resource":{"href":"/cms/v2/FR/M2/-/episodes/G8WUN19W5"},"resource/channel":{"href":"/cms/v2/FR/M2/-/channels/crunchyroll"}},"title":"Paradis","images":{"thumbnail":[[{"height":180,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe","type":"thumbnail","width":320},{"height":338,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe","type":"thumbnail","width":600},{"height":360,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe","type":"thumbnail","width":640},{"height":450,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe","type":"thumbnail","width":800},{"height":675,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe","type":"thumbnail","width":1200},{"height":810,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe","type":"thumbnail","width":1440},{"height":900,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe","type":"thumbnail","width":1600},{"height":1080,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe","type":"thumbnail","width":1920}]]},"__href__":"","new":true,"type":"episode","slug_title":"eden","__class__":"panel","linked_resource_key":"cms:/episodes/G8WUN19W5","description":"Les enfants reçoivent des visiteurs inattendus dans la cage à oiseaux. Leur indépendance fraîchement acquise et les idées qui leur sont venues ne sont peut-être pas du goût de papa…","id":"G8WUN19W5","__actions__":{},"channel_id":"crunchyroll","new_content":false,"promo_title":"","promo_description":"","slug":""},{"promo_title":"","new":true,"title":"Le prélude à la révolte","__actions__":{},"promo_description":"","last_public":"2024-01-24T00:04:55Z","new_content":false,"type":"episode","description":"Faisant porter la responsabilité des récents événements aux sorciers et aux immigrants, le capitaine Konrad chauffe le peuple de sa ville à blanc et l'incite à les traquer. Cela dit, il semble que la réalité soit tout autre, et l'on commence à se demander si Konrad ne dissimule pas un terrible secret…","__href__":"","images":{"thumbnail":[[{"height":180,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/54221e1b560e65309ecccc2169b88771.jpe","type":"thumbnail","width":320},{"height":338,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/54221e1b560e65309ecccc2169b88771.jpe","type":"thumbnail","width":600},{"height":360,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/54221e1b560e65309ecccc2169b88771.jpe","type":"thumbnail","width":640},{"height":450,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/54221e1b560e65309ecccc2169b88771.jpe","type":"thumbnail","width":800},{"height":675,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/54221e1b560e65309ecccc2169b88771.jpe","type":"thumbnail","width":1200},{"height":810,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/54221e1b560e65309ecccc2169b88771.jpe","type":"thumbnail","width":1440},{"height":900,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/54221e1b560e65309ecccc2169b88771.jpe","type":"thumbnail","width":1600},{"height":1080,"source":"https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/54221e1b560e65309ecccc2169b88771.jpe","type":"thumbnail","width":1920}]]},"slug_title":"overture-of-turbulence--storm-","__class__":"panel","linked_resource_key":"cms:/episodes/GEVUZD1XN","external_id":"EPI.919552","__links__":{"episode/season":{"href":"/cms/v2/FR/M2/-/seasons/GY09CXPVK"},"episode/series":{"href":"/cms/v2/FR/M2/-/series/G6W4MEZ0R"},"resource":{"href":"/cms/v2/FR/M2/-/episodes/GEVUZD1XN"},"resource/channel":{"href":"/cms/v2/FR/M2/-/channels/crunchyroll"}},"channel_id":"crunchyroll","slug":"","episode_metadata":{"ad_breaks":[{"offset_ms":0,"type":"preroll"},{"offset_ms":367536,"type":"midroll"},{"offset_ms":735072,"type":"midroll"},{"offset_ms":1102608,"type":"midroll"}],"audio_locale":"te-IN","availability_ends":"9998-11-30T08:00:00Z","availability_notes":"","availability_starts":"9998-11-30T08:00:00Z","available_date":null,"available_offline":true,"closed_captions_available":false,"duration_ms":1470145,"eligible_region":"FR","episode":"13","episode_air_date":"2018-12-29T17:35:00+09:00","episode_number":13,"extended_maturity_rating":{},"free_available_date":"9998-11-30T08:00:00Z","identifier":"G6W4MEZ0R|S1|E13","is_clip":false,"is_dubbed":true,"is_mature":false,"is_premium_only":true,"is_subbed":true,"mature_blocked":false,"maturity_ratings":["TV-14"],"premium_available_date":"2024-01-17T05:00:00Z","premium_date":null,"season_id":"GY09CXPVK","season_number":1,"season_slug_title":"radiant-telugu-dub","season_title":"RADIANT","sequence_number":13,"series_id":"G6W4MEZ0R","series_slug_title":"radiant","series_title":"RADIANT","subtitle_locales":[],"upload_date":"2018-12-29T17:35:00+09:00","versions":[{"audio_locale":"ja-JP","guid":"G65PZN536","is_premium_only":true,"media_guid":"GM8FXNXQK","original":true,"season_guid":"G6G5VG426","variant":""},{"audio_locale":"es-419","guid":"GEVUZPEQ5","is_premium_only":true,"media_guid":"GXMFQD04N","original":false,"season_guid":"GYVNC2DV7","variant":""},{"audio_locale":"pt-BR","guid":"GG1U2MGV4","is_premium_only":true,"media_guid":"G71F459DM","original":false,"season_guid":"GR3VC2MPN","variant":""},{"audio_locale":"en-US","guid":"GMKUXW3EW","is_premium_only":true,"media_guid":"GPPFKEX8E","original":false,"season_guid":"GR19CP3M5","variant":""},{"audio_locale":"hi-IN","guid":"GJWU2VXDE","is_premium_only":true,"media_guid":"GM8FXV4DG","original":false,"season_guid":"G675CD0Q1","variant":""},{"audio_locale":"ta-IN","guid":"GG1U2NK48","is_premium_only":true,"media_guid":"G71F41GMQ","original":false,"season_guid":"G6GGCV9K4","variant":""},{"audio_locale":"te-IN","guid":"GEVUZD1XN","is_premium_only":true,"media_guid":"GXMFQWVJZ","original":false,"season_guid":"GY09CXPVK","variant":""}]},"id":"GEVUZD1XN"}],"__class__":"disc_browse","__href__":"/content/v1/browse?channel_id=crunchyroll\u0026locale=fr-FR\u0026n=25\u0026sort_by=newly_added\u0026start=0\u0026type=episode","__resource_key__":"content:/browse?channel_id=crunchyroll\u0026locale=fr-FR\u0026n=25\u0026sort_by=newly_added\u0026start=0\u0026type=episode","__links__":{"continuation":{"href":"/content/v1/browse?channel_id=crunchyroll\u0026locale=fr-FR\u0026n=25\u0026sort_by=newly_added\u0026start=25\u0026type=episode"}},"__actions__":{}} \ No newline at end of file +{ + "total": 10000, + "items": [ + { + "external_id": "EPI.918881", + "__class__": "panel", + "__links__": { + "episode/season": { + "href": "/cms/v2/FR/M2/-/seasons/GR09CXP7X" + }, + "episode/series": { + "href": "/cms/v2/FR/M2/-/series/G24H1NWMJ" + }, + "resource": { + "href": "/cms/v2/FR/M2/-/episodes/G8WUN1QWK" + }, + "resource/channel": { + "href": "/cms/v2/FR/M2/-/channels/crunchyroll" + } + }, + "__actions__": {}, + "slug_title": "", + "channel_id": "crunchyroll", + "id": "G8WUN1QWK", + "last_public": "2024-01-24T18:40:08Z", + "__href__": "", + "promo_title": "", + "promo_description": "", + "new": true, + "type": "episode", + "episode_metadata": { + "ad_breaks": [ + { + "offset_ms": 0, + "type": "preroll" + }, + { + "offset_ms": 342511, + "type": "midroll" + }, + { + "offset_ms": 685022, + "type": "midroll" + }, + { + "offset_ms": 1027533, + "type": "midroll" + } + ], + "audio_locale": "it-IT", + "availability_ends": "9998-11-30T08:00:00Z", + "availability_notes": "", + "availability_starts": "9998-11-30T08:00:00Z", + "available_date": null, + "available_offline": true, + "closed_captions_available": false, + "duration_ms": 1370047, + "eligible_region": "FR", + "episode": "3", + "episode_air_date": "2024-01-25T00:55:00+09:00", + "episode_number": 3, + "extended_maturity_rating": {}, + "free_available_date": "9998-11-30T08:00:00Z", + "identifier": "G24H1NWMJ|S1|E3", + "is_clip": false, + "is_dubbed": true, + "is_mature": false, + "is_premium_only": true, + "is_subbed": true, + "mature_blocked": false, + "maturity_ratings": [ + "TV-14" + ], + "premium_available_date": "2024-01-24T18:40:00Z", + "premium_date": null, + "season_id": "GR09CXP7X", + "season_number": 1, + "season_slug_title": "metallic-rouge-italian-dub", + "season_title": "Metallic Rouge", + "sequence_number": 3, + "series_id": "G24H1NWMJ", + "series_slug_title": "metallic-rouge", + "series_title": "Metallic Rouge", + "subtitle_locales": [ + "it-IT" + ], + "upload_date": "2024-01-25T00:55:00+09:00", + "versions": [ + { + "audio_locale": "ja-JP", + "guid": "G9DUEMVK3", + "is_premium_only": true, + "media_guid": "G1QF41ZKM", + "original": true, + "season_guid": "GRDQCGKKQ", + "variant": "" + }, + { + "audio_locale": "en-US", + "guid": "GZ7UVE5NN", + "is_premium_only": true, + "media_guid": "G5JFZV3JJ", + "original": false, + "season_guid": "GR49C79NG", + "variant": "" + }, + { + "audio_locale": "es-419", + "guid": "GJWU20D4W", + "is_premium_only": true, + "media_guid": "GM8FXPDJ1", + "original": false, + "season_guid": "G6Q4CZJJ3", + "variant": "" + }, + { + "audio_locale": "es-ES", + "guid": "G14U41ZE1", + "is_premium_only": true, + "media_guid": "GKKF3KP4K", + "original": false, + "season_guid": "GYE5CQM9Z", + "variant": "" + }, + { + "audio_locale": "pt-BR", + "guid": "GWDU8JZ9G", + "is_premium_only": true, + "media_guid": "GEMFZDVPK", + "original": false, + "season_guid": "G65VCDPP0", + "variant": "" + }, + { + "audio_locale": "fr-FR", + "guid": "GVWU07GP0", + "is_premium_only": true, + "media_guid": "G25F0GP50", + "original": false, + "season_guid": "GYWEC3X1V", + "variant": "" + }, + { + "audio_locale": "de-DE", + "guid": "G7PU41NWQ", + "is_premium_only": true, + "media_guid": "G4GFQV4MN", + "original": false, + "season_guid": "GYGGCV985", + "variant": "" + }, + { + "audio_locale": "it-IT", + "guid": "G8WUN1QWK", + "is_premium_only": true, + "media_guid": "GQ9FG389X", + "original": false, + "season_guid": "GR09CXP7X", + "variant": "" + } + ] + }, + "images": { + "thumbnail": [ + [ + { + "height": 180, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/2cce5287ba5c2b00a57669e4b57c4bd9.jpe", + "type": "thumbnail", + "width": 320 + }, + { + "height": 338, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/2cce5287ba5c2b00a57669e4b57c4bd9.jpe", + "type": "thumbnail", + "width": 600 + }, + { + "height": 360, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/2cce5287ba5c2b00a57669e4b57c4bd9.jpe", + "type": "thumbnail", + "width": 640 + }, + { + "height": 450, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/2cce5287ba5c2b00a57669e4b57c4bd9.jpe", + "type": "thumbnail", + "width": 800 + }, + { + "height": 675, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/2cce5287ba5c2b00a57669e4b57c4bd9.jpe", + "type": "thumbnail", + "width": 1200 + }, + { + "height": 810, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/2cce5287ba5c2b00a57669e4b57c4bd9.jpe", + "type": "thumbnail", + "width": 1440 + }, + { + "height": 900, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/2cce5287ba5c2b00a57669e4b57c4bd9.jpe", + "type": "thumbnail", + "width": 1600 + }, + { + "height": 1080, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/2cce5287ba5c2b00a57669e4b57c4bd9.jpe", + "type": "thumbnail", + "width": 1920 + } + ] + ] + }, + "linked_resource_key": "cms:/episodes/G8WUN1QWK", + "title": "", + "description": "", + "slug": "", + "new_content": false + }, + { + "slug_title": "", + "__class__": "panel", + "last_public": "2024-01-24T18:40:06Z", + "new_content": false, + "description": "", + "episode_metadata": { + "ad_breaks": [ + { + "offset_ms": 0, + "type": "preroll" + }, + { + "offset_ms": 342512, + "type": "midroll" + }, + { + "offset_ms": 685024, + "type": "midroll" + }, + { + "offset_ms": 1027536, + "type": "midroll" + } + ], + "audio_locale": "es-ES", + "availability_ends": "9998-11-30T08:00:00Z", + "availability_notes": "", + "availability_starts": "9998-11-30T08:00:00Z", + "available_date": null, + "available_offline": true, + "closed_captions_available": false, + "duration_ms": 1370049, + "eligible_region": "FR", + "episode": "3", + "episode_air_date": "2024-01-25T00:55:00+09:00", + "episode_number": 3, + "extended_maturity_rating": {}, + "free_available_date": "9998-11-30T08:00:00Z", + "identifier": "G24H1NWMJ|S1|E3", + "is_clip": false, + "is_dubbed": true, + "is_mature": false, + "is_premium_only": true, + "is_subbed": true, + "mature_blocked": false, + "maturity_ratings": [ + "TV-14" + ], + "premium_available_date": "2024-01-24T18:40:00Z", + "premium_date": null, + "season_id": "GYE5CQM9Z", + "season_number": 1, + "season_slug_title": "metallic-rouge-castilian-dub", + "season_title": "Metallic Rouge", + "sequence_number": 3, + "series_id": "G24H1NWMJ", + "series_slug_title": "metallic-rouge", + "series_title": "Metallic Rouge", + "subtitle_locales": [ + "es-ES" + ], + "upload_date": "2024-01-25T00:55:00+09:00", + "versions": [ + { + "audio_locale": "ja-JP", + "guid": "G9DUEMVK3", + "is_premium_only": true, + "media_guid": "G1QF41ZKM", + "original": true, + "season_guid": "GRDQCGKKQ", + "variant": "" + }, + { + "audio_locale": "en-US", + "guid": "GZ7UVE5NN", + "is_premium_only": true, + "media_guid": "G5JFZV3JJ", + "original": false, + "season_guid": "GR49C79NG", + "variant": "" + }, + { + "audio_locale": "es-419", + "guid": "GJWU20D4W", + "is_premium_only": true, + "media_guid": "GM8FXPDJ1", + "original": false, + "season_guid": "G6Q4CZJJ3", + "variant": "" + }, + { + "audio_locale": "es-ES", + "guid": "G14U41ZE1", + "is_premium_only": true, + "media_guid": "GKKF3KP4K", + "original": false, + "season_guid": "GYE5CQM9Z", + "variant": "" + }, + { + "audio_locale": "pt-BR", + "guid": "GWDU8JZ9G", + "is_premium_only": true, + "media_guid": "GEMFZDVPK", + "original": false, + "season_guid": "G65VCDPP0", + "variant": "" + }, + { + "audio_locale": "fr-FR", + "guid": "GVWU07GP0", + "is_premium_only": true, + "media_guid": "G25F0GP50", + "original": false, + "season_guid": "GYWEC3X1V", + "variant": "" + }, + { + "audio_locale": "de-DE", + "guid": "G7PU41NWQ", + "is_premium_only": true, + "media_guid": "G4GFQV4MN", + "original": false, + "season_guid": "GYGGCV985", + "variant": "" + }, + { + "audio_locale": "it-IT", + "guid": "G8WUN1QWK", + "is_premium_only": true, + "media_guid": "GQ9FG389X", + "original": false, + "season_guid": "GR09CXP7X", + "variant": "" + } + ] + }, + "id": "G14U41ZE1", + "slug": "", + "promo_title": "", + "new": true, + "external_id": "EPI.918894", + "__href__": "", + "__links__": { + "episode/season": { + "href": "/cms/v2/FR/M2/-/seasons/GYE5CQM9Z" + }, + "episode/series": { + "href": "/cms/v2/FR/M2/-/series/G24H1NWMJ" + }, + "resource": { + "href": "/cms/v2/FR/M2/-/episodes/G14U41ZE1" + }, + "resource/channel": { + "href": "/cms/v2/FR/M2/-/channels/crunchyroll" + } + }, + "__actions__": {}, + "title": "", + "channel_id": "crunchyroll", + "type": "episode", + "linked_resource_key": "cms:/episodes/G14U41ZE1", + "promo_description": "", + "images": { + "thumbnail": [ + [ + { + "height": 180, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/d45533e8839255ed89cce5ada13555f8.jpe", + "type": "thumbnail", + "width": 320 + }, + { + "height": 338, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/d45533e8839255ed89cce5ada13555f8.jpe", + "type": "thumbnail", + "width": 600 + }, + { + "height": 360, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/d45533e8839255ed89cce5ada13555f8.jpe", + "type": "thumbnail", + "width": 640 + }, + { + "height": 450, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/d45533e8839255ed89cce5ada13555f8.jpe", + "type": "thumbnail", + "width": 800 + }, + { + "height": 675, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/d45533e8839255ed89cce5ada13555f8.jpe", + "type": "thumbnail", + "width": 1200 + }, + { + "height": 810, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/d45533e8839255ed89cce5ada13555f8.jpe", + "type": "thumbnail", + "width": 1440 + }, + { + "height": 900, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/d45533e8839255ed89cce5ada13555f8.jpe", + "type": "thumbnail", + "width": 1600 + }, + { + "height": 1080, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/d45533e8839255ed89cce5ada13555f8.jpe", + "type": "thumbnail", + "width": 1920 + } + ] + ] + } + }, + { + "promo_description": "", + "new": true, + "__actions__": {}, + "__class__": "panel", + "type": "episode", + "images": { + "thumbnail": [ + [ + { + "height": 180, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/cd45b9c3ac84f2a100241801b519f57e.jpe", + "type": "thumbnail", + "width": 320 + }, + { + "height": 338, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/cd45b9c3ac84f2a100241801b519f57e.jpe", + "type": "thumbnail", + "width": 600 + }, + { + "height": 360, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/cd45b9c3ac84f2a100241801b519f57e.jpe", + "type": "thumbnail", + "width": 640 + }, + { + "height": 450, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/cd45b9c3ac84f2a100241801b519f57e.jpe", + "type": "thumbnail", + "width": 800 + }, + { + "height": 675, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/cd45b9c3ac84f2a100241801b519f57e.jpe", + "type": "thumbnail", + "width": 1200 + }, + { + "height": 810, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/cd45b9c3ac84f2a100241801b519f57e.jpe", + "type": "thumbnail", + "width": 1440 + }, + { + "height": 900, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/cd45b9c3ac84f2a100241801b519f57e.jpe", + "type": "thumbnail", + "width": 1600 + }, + { + "height": 1080, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/cd45b9c3ac84f2a100241801b519f57e.jpe", + "type": "thumbnail", + "width": 1920 + } + ] + ] + }, + "last_public": "2024-01-24T18:35:08Z", + "new_content": false, + "slug_title": "", + "episode_metadata": { + "ad_breaks": [ + { + "offset_ms": 0, + "type": "preroll" + }, + { + "offset_ms": 342512, + "type": "midroll" + }, + { + "offset_ms": 685024, + "type": "midroll" + }, + { + "offset_ms": 1027536, + "type": "midroll" + } + ], + "audio_locale": "fr-FR", + "availability_ends": "9998-11-30T08:00:00Z", + "availability_notes": "", + "availability_starts": "9998-11-30T08:00:00Z", + "available_date": null, + "available_offline": true, + "closed_captions_available": false, + "duration_ms": 1370049, + "eligible_region": "FR", + "episode": "3", + "episode_air_date": "2024-01-25T00:55:00+09:00", + "episode_number": 3, + "extended_maturity_rating": {}, + "free_available_date": "9998-11-30T08:00:00Z", + "identifier": "G24H1NWMJ|S1|E3", + "is_clip": false, + "is_dubbed": true, + "is_mature": false, + "is_premium_only": true, + "is_subbed": true, + "mature_blocked": false, + "maturity_ratings": [ + "TV-14" + ], + "premium_available_date": "2024-01-24T18:35:00Z", + "premium_date": null, + "season_id": "GYWEC3X1V", + "season_number": 1, + "season_slug_title": "metallic-rouge-french-dub", + "season_title": "Metallic Rouge (VF)", + "sequence_number": 3, + "series_id": "G24H1NWMJ", + "series_slug_title": "metallic-rouge", + "series_title": "Metallic Rouge", + "subtitle_locales": [ + "fr-FR" + ], + "upload_date": "2024-01-25T00:55:00+09:00", + "versions": [ + { + "audio_locale": "ja-JP", + "guid": "G9DUEMVK3", + "is_premium_only": true, + "media_guid": "G1QF41ZKM", + "original": true, + "season_guid": "GRDQCGKKQ", + "variant": "" + }, + { + "audio_locale": "en-US", + "guid": "GZ7UVE5NN", + "is_premium_only": true, + "media_guid": "G5JFZV3JJ", + "original": false, + "season_guid": "GR49C79NG", + "variant": "" + }, + { + "audio_locale": "es-419", + "guid": "GJWU20D4W", + "is_premium_only": true, + "media_guid": "GM8FXPDJ1", + "original": false, + "season_guid": "G6Q4CZJJ3", + "variant": "" + }, + { + "audio_locale": "pt-BR", + "guid": "GWDU8JZ9G", + "is_premium_only": true, + "media_guid": "GEMFZDVPK", + "original": false, + "season_guid": "G65VCDPP0", + "variant": "" + }, + { + "audio_locale": "fr-FR", + "guid": "GVWU07GP0", + "is_premium_only": true, + "media_guid": "G25F0GP50", + "original": false, + "season_guid": "GYWEC3X1V", + "variant": "" + }, + { + "audio_locale": "de-DE", + "guid": "G7PU41NWQ", + "is_premium_only": true, + "media_guid": "G4GFQV4MN", + "original": false, + "season_guid": "GYGGCV985", + "variant": "" + } + ] + }, + "description": "Rouge et Naomi arrivent dans une ville où se trouve un campement Nean. Leur prochaine cible semble s’y trouver, mais l’entrée du camp est étroitement surveillée. Un certain docteur Afdal pourrait bien servir de laissez-passer à Rouge.", + "__links__": { + "episode/season": { + "href": "/cms/v2/FR/M2/-/seasons/GYWEC3X1V" + }, + "episode/series": { + "href": "/cms/v2/FR/M2/-/series/G24H1NWMJ" + }, + "resource": { + "href": "/cms/v2/FR/M2/-/episodes/GVWU07GP0" + }, + "resource/channel": { + "href": "/cms/v2/FR/M2/-/channels/crunchyroll" + } + }, + "id": "GVWU07GP0", + "title": "Ville marginale", + "linked_resource_key": "cms:/episodes/GVWU07GP0", + "__href__": "", + "promo_title": "", + "slug": "", + "external_id": "EPI.918855", + "channel_id": "crunchyroll" + }, + { + "new_content": false, + "external_id": "EPI.918868", + "id": "G7PU41NWQ", + "__actions__": {}, + "__links__": { + "episode/season": { + "href": "/cms/v2/FR/M2/-/seasons/GYGGCV985" + }, + "episode/series": { + "href": "/cms/v2/FR/M2/-/series/G24H1NWMJ" + }, + "resource": { + "href": "/cms/v2/FR/M2/-/episodes/G7PU41NWQ" + }, + "resource/channel": { + "href": "/cms/v2/FR/M2/-/channels/crunchyroll" + } + }, + "last_public": "2024-01-24T18:35:05Z", + "new": true, + "slug": "", + "__href__": "", + "channel_id": "crunchyroll", + "description": "", + "episode_metadata": { + "ad_breaks": [ + { + "offset_ms": 0, + "type": "preroll" + }, + { + "offset_ms": 342512, + "type": "midroll" + }, + { + "offset_ms": 685024, + "type": "midroll" + }, + { + "offset_ms": 1027536, + "type": "midroll" + } + ], + "audio_locale": "de-DE", + "availability_ends": "9998-11-30T08:00:00Z", + "availability_notes": "", + "availability_starts": "9998-11-30T08:00:00Z", + "available_date": null, + "available_offline": true, + "closed_captions_available": false, + "duration_ms": 1370049, + "eligible_region": "FR", + "episode": "3", + "episode_air_date": "2024-01-25T00:55:00+09:00", + "episode_number": 3, + "extended_maturity_rating": {}, + "free_available_date": "9998-11-30T08:00:00Z", + "identifier": "G24H1NWMJ|S1|E3", + "is_clip": false, + "is_dubbed": true, + "is_mature": false, + "is_premium_only": true, + "is_subbed": true, + "mature_blocked": false, + "maturity_ratings": [ + "TV-14" + ], + "premium_available_date": "2024-01-24T18:35:00Z", + "premium_date": null, + "season_id": "GYGGCV985", + "season_number": 1, + "season_slug_title": "metallic-rouge-german-dub", + "season_title": "Metallic Rouge", + "sequence_number": 3, + "series_id": "G24H1NWMJ", + "series_slug_title": "metallic-rouge", + "series_title": "Metallic Rouge", + "subtitle_locales": [ + "de-DE" + ], + "upload_date": "2024-01-25T00:55:00+09:00", + "versions": [ + { + "audio_locale": "ja-JP", + "guid": "G9DUEMVK3", + "is_premium_only": true, + "media_guid": "G1QF41ZKM", + "original": true, + "season_guid": "GRDQCGKKQ", + "variant": "" + }, + { + "audio_locale": "en-US", + "guid": "GZ7UVE5NN", + "is_premium_only": true, + "media_guid": "G5JFZV3JJ", + "original": false, + "season_guid": "GR49C79NG", + "variant": "" + }, + { + "audio_locale": "es-419", + "guid": "GJWU20D4W", + "is_premium_only": true, + "media_guid": "GM8FXPDJ1", + "original": false, + "season_guid": "G6Q4CZJJ3", + "variant": "" + }, + { + "audio_locale": "pt-BR", + "guid": "GWDU8JZ9G", + "is_premium_only": true, + "media_guid": "GEMFZDVPK", + "original": false, + "season_guid": "G65VCDPP0", + "variant": "" + }, + { + "audio_locale": "fr-FR", + "guid": "GVWU07GP0", + "is_premium_only": true, + "media_guid": "G25F0GP50", + "original": false, + "season_guid": "GYWEC3X1V", + "variant": "" + }, + { + "audio_locale": "de-DE", + "guid": "G7PU41NWQ", + "is_premium_only": true, + "media_guid": "G4GFQV4MN", + "original": false, + "season_guid": "GYGGCV985", + "variant": "" + } + ] + }, + "linked_resource_key": "cms:/episodes/G7PU41NWQ", + "__class__": "panel", + "images": { + "thumbnail": [ + [ + { + "height": 180, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/2e82dfd8d20dc35f3a4b9bfe31841f7d.jpe", + "type": "thumbnail", + "width": 320 + }, + { + "height": 338, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/2e82dfd8d20dc35f3a4b9bfe31841f7d.jpe", + "type": "thumbnail", + "width": 600 + }, + { + "height": 360, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/2e82dfd8d20dc35f3a4b9bfe31841f7d.jpe", + "type": "thumbnail", + "width": 640 + }, + { + "height": 450, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/2e82dfd8d20dc35f3a4b9bfe31841f7d.jpe", + "type": "thumbnail", + "width": 800 + }, + { + "height": 675, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/2e82dfd8d20dc35f3a4b9bfe31841f7d.jpe", + "type": "thumbnail", + "width": 1200 + }, + { + "height": 810, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/2e82dfd8d20dc35f3a4b9bfe31841f7d.jpe", + "type": "thumbnail", + "width": 1440 + }, + { + "height": 900, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/2e82dfd8d20dc35f3a4b9bfe31841f7d.jpe", + "type": "thumbnail", + "width": 1600 + }, + { + "height": 1080, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/2e82dfd8d20dc35f3a4b9bfe31841f7d.jpe", + "type": "thumbnail", + "width": 1920 + } + ] + ] + }, + "promo_description": "", + "title": "", + "type": "episode", + "promo_title": "", + "slug_title": "" + }, + { + "external_id": "EPI.918842", + "id": "GWDU8JZ9G", + "new_content": false, + "type": "episode", + "__actions__": {}, + "title": "", + "new": true, + "promo_description": "", + "slug": "", + "channel_id": "crunchyroll", + "linked_resource_key": "cms:/episodes/GWDU8JZ9G", + "slug_title": "", + "description": "", + "episode_metadata": { + "ad_breaks": [ + { + "offset_ms": 0, + "type": "preroll" + }, + { + "offset_ms": 342509, + "type": "midroll" + }, + { + "offset_ms": 685018, + "type": "midroll" + }, + { + "offset_ms": 1027527, + "type": "midroll" + } + ], + "audio_locale": "pt-BR", + "availability_ends": "9998-11-30T08:00:00Z", + "availability_notes": "", + "availability_starts": "9998-11-30T08:00:00Z", + "available_date": null, + "available_offline": true, + "closed_captions_available": false, + "duration_ms": 1370037, + "eligible_region": "FR", + "episode": "3", + "episode_air_date": "2024-01-25T00:55:00+09:00", + "episode_number": 3, + "extended_maturity_rating": {}, + "free_available_date": "9998-11-30T08:00:00Z", + "identifier": "G24H1NWMJ|S1|E3", + "is_clip": false, + "is_dubbed": true, + "is_mature": false, + "is_premium_only": true, + "is_subbed": true, + "mature_blocked": false, + "maturity_ratings": [ + "TV-14" + ], + "premium_available_date": "2024-01-24T18:30:00Z", + "premium_date": null, + "season_id": "G65VCDPP0", + "season_number": 1, + "season_slug_title": "metallic-rouge-portuguese-dub", + "season_title": "Metallic Rouge", + "sequence_number": 3, + "series_id": "G24H1NWMJ", + "series_slug_title": "metallic-rouge", + "series_title": "Metallic Rouge", + "subtitle_locales": [ + "pt-BR" + ], + "upload_date": "2024-01-25T00:55:00+09:00", + "versions": [ + { + "audio_locale": "ja-JP", + "guid": "G9DUEMVK3", + "is_premium_only": true, + "media_guid": "G1QF41ZKM", + "original": true, + "season_guid": "GRDQCGKKQ", + "variant": "" + }, + { + "audio_locale": "en-US", + "guid": "GZ7UVE5NN", + "is_premium_only": true, + "media_guid": "G5JFZV3JJ", + "original": false, + "season_guid": "GR49C79NG", + "variant": "" + }, + { + "audio_locale": "es-419", + "guid": "GJWU20D4W", + "is_premium_only": true, + "media_guid": "GM8FXPDJ1", + "original": false, + "season_guid": "G6Q4CZJJ3", + "variant": "" + }, + { + "audio_locale": "es-ES", + "guid": "G14U41ZE1", + "is_premium_only": true, + "media_guid": "GKKF3KP4K", + "original": false, + "season_guid": "GYE5CQM9Z", + "variant": "" + }, + { + "audio_locale": "pt-BR", + "guid": "GWDU8JZ9G", + "is_premium_only": true, + "media_guid": "GEMFZDVPK", + "original": false, + "season_guid": "G65VCDPP0", + "variant": "" + }, + { + "audio_locale": "fr-FR", + "guid": "GVWU07GP0", + "is_premium_only": true, + "media_guid": "G25F0GP50", + "original": false, + "season_guid": "GYWEC3X1V", + "variant": "" + }, + { + "audio_locale": "de-DE", + "guid": "G7PU41NWQ", + "is_premium_only": true, + "media_guid": "G4GFQV4MN", + "original": false, + "season_guid": "GYGGCV985", + "variant": "" + }, + { + "audio_locale": "it-IT", + "guid": "G8WUN1QWK", + "is_premium_only": true, + "media_guid": "GQ9FG389X", + "original": false, + "season_guid": "GR09CXP7X", + "variant": "" + } + ] + }, + "images": { + "thumbnail": [ + [ + { + "height": 180, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/693870912b71b88e6aaabc9f5df1018a.jpe", + "type": "thumbnail", + "width": 320 + }, + { + "height": 338, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/693870912b71b88e6aaabc9f5df1018a.jpe", + "type": "thumbnail", + "width": 600 + }, + { + "height": 360, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/693870912b71b88e6aaabc9f5df1018a.jpe", + "type": "thumbnail", + "width": 640 + }, + { + "height": 450, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/693870912b71b88e6aaabc9f5df1018a.jpe", + "type": "thumbnail", + "width": 800 + }, + { + "height": 675, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/693870912b71b88e6aaabc9f5df1018a.jpe", + "type": "thumbnail", + "width": 1200 + }, + { + "height": 810, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/693870912b71b88e6aaabc9f5df1018a.jpe", + "type": "thumbnail", + "width": 1440 + }, + { + "height": 900, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/693870912b71b88e6aaabc9f5df1018a.jpe", + "type": "thumbnail", + "width": 1600 + }, + { + "height": 1080, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/693870912b71b88e6aaabc9f5df1018a.jpe", + "type": "thumbnail", + "width": 1920 + } + ] + ] + }, + "promo_title": "", + "__href__": "", + "__links__": { + "episode/season": { + "href": "/cms/v2/FR/M2/-/seasons/G65VCDPP0" + }, + "episode/series": { + "href": "/cms/v2/FR/M2/-/series/G24H1NWMJ" + }, + "resource": { + "href": "/cms/v2/FR/M2/-/episodes/GWDU8JZ9G" + }, + "resource/channel": { + "href": "/cms/v2/FR/M2/-/channels/crunchyroll" + } + }, + "__class__": "panel", + "last_public": "2024-01-24T18:30:08Z" + }, + { + "__href__": "", + "linked_resource_key": "cms:/episodes/GJWU20D4W", + "__class__": "panel", + "promo_description": "", + "last_public": "2024-01-24T18:30:06Z", + "new_content": false, + "__links__": { + "episode/season": { + "href": "/cms/v2/FR/M2/-/seasons/G6Q4CZJJ3" + }, + "episode/series": { + "href": "/cms/v2/FR/M2/-/series/G24H1NWMJ" + }, + "resource": { + "href": "/cms/v2/FR/M2/-/episodes/GJWU20D4W" + }, + "resource/channel": { + "href": "/cms/v2/FR/M2/-/channels/crunchyroll" + } + }, + "__actions__": {}, + "slug_title": "", + "promo_title": "", + "new": true, + "type": "episode", + "episode_metadata": { + "ad_breaks": [ + { + "offset_ms": 0, + "type": "preroll" + }, + { + "offset_ms": 342517, + "type": "midroll" + }, + { + "offset_ms": 685034, + "type": "midroll" + }, + { + "offset_ms": 1027551, + "type": "midroll" + } + ], + "audio_locale": "es-419", + "availability_ends": "9998-11-30T08:00:00Z", + "availability_notes": "", + "availability_starts": "9998-11-30T08:00:00Z", + "available_date": null, + "available_offline": true, + "closed_captions_available": false, + "duration_ms": 1370070, + "eligible_region": "FR", + "episode": "3", + "episode_air_date": "2024-01-25T00:55:00+09:00", + "episode_number": 3, + "extended_maturity_rating": {}, + "free_available_date": "9998-11-30T08:00:00Z", + "identifier": "G24H1NWMJ|S1|E3", + "is_clip": false, + "is_dubbed": true, + "is_mature": false, + "is_premium_only": true, + "is_subbed": true, + "mature_blocked": false, + "maturity_ratings": [ + "TV-14" + ], + "premium_available_date": "2024-01-24T18:30:00Z", + "premium_date": null, + "season_id": "G6Q4CZJJ3", + "season_number": 1, + "season_slug_title": "metallic-rouge-spanish-dub", + "season_title": "Metallic Rouge", + "sequence_number": 3, + "series_id": "G24H1NWMJ", + "series_slug_title": "metallic-rouge", + "series_title": "Metallic Rouge", + "subtitle_locales": [ + "es-419" + ], + "upload_date": "2024-01-25T00:55:00+09:00", + "versions": [ + { + "audio_locale": "ja-JP", + "guid": "G9DUEMVK3", + "is_premium_only": true, + "media_guid": "G1QF41ZKM", + "original": true, + "season_guid": "GRDQCGKKQ", + "variant": "" + }, + { + "audio_locale": "en-US", + "guid": "GZ7UVE5NN", + "is_premium_only": true, + "media_guid": "G5JFZV3JJ", + "original": false, + "season_guid": "GR49C79NG", + "variant": "" + }, + { + "audio_locale": "es-419", + "guid": "GJWU20D4W", + "is_premium_only": true, + "media_guid": "GM8FXPDJ1", + "original": false, + "season_guid": "G6Q4CZJJ3", + "variant": "" + }, + { + "audio_locale": "pt-BR", + "guid": "GWDU8JZ9G", + "is_premium_only": true, + "media_guid": "GEMFZDVPK", + "original": false, + "season_guid": "G65VCDPP0", + "variant": "" + }, + { + "audio_locale": "fr-FR", + "guid": "GVWU07GP0", + "is_premium_only": true, + "media_guid": "G25F0GP50", + "original": false, + "season_guid": "GYWEC3X1V", + "variant": "" + }, + { + "audio_locale": "de-DE", + "guid": "G7PU41NWQ", + "is_premium_only": true, + "media_guid": "G4GFQV4MN", + "original": false, + "season_guid": "GYGGCV985", + "variant": "" + } + ] + }, + "id": "GJWU20D4W", + "images": { + "thumbnail": [ + [ + { + "height": 180, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/c3e7ae585c59219031cec1909a5d60f2.jpe", + "type": "thumbnail", + "width": 320 + }, + { + "height": 338, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/c3e7ae585c59219031cec1909a5d60f2.jpe", + "type": "thumbnail", + "width": 600 + }, + { + "height": 360, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/c3e7ae585c59219031cec1909a5d60f2.jpe", + "type": "thumbnail", + "width": 640 + }, + { + "height": 450, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/c3e7ae585c59219031cec1909a5d60f2.jpe", + "type": "thumbnail", + "width": 800 + }, + { + "height": 675, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/c3e7ae585c59219031cec1909a5d60f2.jpe", + "type": "thumbnail", + "width": 1200 + }, + { + "height": 810, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/c3e7ae585c59219031cec1909a5d60f2.jpe", + "type": "thumbnail", + "width": 1440 + }, + { + "height": 900, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/c3e7ae585c59219031cec1909a5d60f2.jpe", + "type": "thumbnail", + "width": 1600 + }, + { + "height": 1080, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/c3e7ae585c59219031cec1909a5d60f2.jpe", + "type": "thumbnail", + "width": 1920 + } + ] + ] + }, + "title": "", + "channel_id": "crunchyroll", + "description": "", + "external_id": "EPI.918829", + "slug": "" + }, + { + "external_id": "EPI.918803", + "episode_metadata": { + "ad_breaks": [ + { + "offset_ms": 0, + "type": "preroll" + }, + { + "offset_ms": 342509, + "type": "midroll" + }, + { + "offset_ms": 685018, + "type": "midroll" + }, + { + "offset_ms": 1027527, + "type": "midroll" + } + ], + "audio_locale": "ja-JP", + "availability_ends": "9998-11-30T08:00:00Z", + "availability_notes": "", + "availability_starts": "2024-01-31T18:25:00Z", + "available_date": "2024-01-31T18:25:00Z", + "available_offline": true, + "closed_captions_available": false, + "duration_ms": 1370037, + "eligible_region": "FR", + "episode": "3", + "episode_air_date": "2024-01-25T00:55:00+09:00", + "episode_number": 3, + "extended_maturity_rating": {}, + "free_available_date": "2024-01-31T18:25:00Z", + "identifier": "G24H1NWMJ|S1|E3", + "is_clip": false, + "is_dubbed": true, + "is_mature": false, + "is_premium_only": true, + "is_subbed": true, + "mature_blocked": false, + "maturity_ratings": [ + "TV-14" + ], + "premium_available_date": "2024-01-24T18:25:00Z", + "premium_date": null, + "season_id": "GRDQCGKKQ", + "season_number": 1, + "season_slug_title": "metallic-rouge", + "season_title": "Metallic Rouge", + "sequence_number": 3, + "series_id": "G24H1NWMJ", + "series_slug_title": "metallic-rouge", + "series_title": "Metallic Rouge", + "subtitle_locales": [ + "en-US", + "es-419", + "es-ES", + "fr-FR", + "pt-BR", + "ar-SA", + "it-IT", + "de-DE", + "ru-RU" + ], + "upload_date": "2024-01-25T00:55:00+09:00", + "versions": [ + { + "audio_locale": "ja-JP", + "guid": "G9DUEMVK3", + "is_premium_only": true, + "media_guid": "G1QF41ZKM", + "original": true, + "season_guid": "GRDQCGKKQ", + "variant": "" + }, + { + "audio_locale": "en-US", + "guid": "GZ7UVE5NN", + "is_premium_only": true, + "media_guid": "G5JFZV3JJ", + "original": false, + "season_guid": "GR49C79NG", + "variant": "" + }, + { + "audio_locale": "es-419", + "guid": "GJWU20D4W", + "is_premium_only": true, + "media_guid": "GM8FXPDJ1", + "original": false, + "season_guid": "G6Q4CZJJ3", + "variant": "" + }, + { + "audio_locale": "es-ES", + "guid": "G14U41ZE1", + "is_premium_only": true, + "media_guid": "GKKF3KP4K", + "original": false, + "season_guid": "GYE5CQM9Z", + "variant": "" + }, + { + "audio_locale": "pt-BR", + "guid": "GWDU8JZ9G", + "is_premium_only": true, + "media_guid": "GEMFZDVPK", + "original": false, + "season_guid": "G65VCDPP0", + "variant": "" + }, + { + "audio_locale": "fr-FR", + "guid": "GVWU07GP0", + "is_premium_only": true, + "media_guid": "G25F0GP50", + "original": false, + "season_guid": "GYWEC3X1V", + "variant": "" + }, + { + "audio_locale": "de-DE", + "guid": "G7PU41NWQ", + "is_premium_only": true, + "media_guid": "G4GFQV4MN", + "original": false, + "season_guid": "GYGGCV985", + "variant": "" + }, + { + "audio_locale": "it-IT", + "guid": "G8WUN1QWK", + "is_premium_only": true, + "media_guid": "GQ9FG389X", + "original": false, + "season_guid": "GR09CXP7X", + "variant": "" + } + ] + }, + "new": true, + "last_public": "2024-01-24T18:25:09Z", + "images": { + "thumbnail": [ + [ + { + "height": 180, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/41dcc458d322d9891505d304d7fc0c09.jpe", + "type": "thumbnail", + "width": 320 + }, + { + "height": 338, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/41dcc458d322d9891505d304d7fc0c09.jpe", + "type": "thumbnail", + "width": 600 + }, + { + "height": 360, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/41dcc458d322d9891505d304d7fc0c09.jpe", + "type": "thumbnail", + "width": 640 + }, + { + "height": 450, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/41dcc458d322d9891505d304d7fc0c09.jpe", + "type": "thumbnail", + "width": 800 + }, + { + "height": 675, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/41dcc458d322d9891505d304d7fc0c09.jpe", + "type": "thumbnail", + "width": 1200 + }, + { + "height": 810, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/41dcc458d322d9891505d304d7fc0c09.jpe", + "type": "thumbnail", + "width": 1440 + }, + { + "height": 900, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/41dcc458d322d9891505d304d7fc0c09.jpe", + "type": "thumbnail", + "width": 1600 + }, + { + "height": 1080, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/41dcc458d322d9891505d304d7fc0c09.jpe", + "type": "thumbnail", + "width": 1920 + } + ] + ] + }, + "description": "Rouge et Naomi arrivent dans une ville où se trouve un campement Nean. Leur prochaine cible semble s’y trouver, mais l’entrée du camp est étroitement surveillée. Un certain docteur Afdal pourrait bien servir de laissez-passer à Rouge.", + "promo_description": "", + "title": "Ville marginale", + "id": "G9DUEMVK3", + "promo_title": "", + "__class__": "panel", + "__href__": "", + "channel_id": "crunchyroll", + "linked_resource_key": "cms:/episodes/G9DUEMVK3", + "__links__": { + "episode/season": { + "href": "/cms/v2/FR/M2/-/seasons/GRDQCGKKQ" + }, + "episode/series": { + "href": "/cms/v2/FR/M2/-/series/G24H1NWMJ" + }, + "resource": { + "href": "/cms/v2/FR/M2/-/episodes/G9DUEMVK3" + }, + "resource/channel": { + "href": "/cms/v2/FR/M2/-/channels/crunchyroll" + } + }, + "new_content": false, + "slug_title": "marginal-city", + "slug": "", + "type": "episode", + "__actions__": {} + }, + { + "last_public": "2024-01-24T18:25:06Z", + "new_content": false, + "slug": "", + "title": "Marginal City", + "channel_id": "crunchyroll", + "description": "", + "type": "episode", + "linked_resource_key": "cms:/episodes/GZ7UVE5NN", + "__actions__": {}, + "__href__": "", + "id": "GZ7UVE5NN", + "images": { + "thumbnail": [ + [ + { + "height": 180, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/9a0cf2e601aace50379e092a84bb84da.jpe", + "type": "thumbnail", + "width": 320 + }, + { + "height": 338, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/9a0cf2e601aace50379e092a84bb84da.jpe", + "type": "thumbnail", + "width": 600 + }, + { + "height": 360, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/9a0cf2e601aace50379e092a84bb84da.jpe", + "type": "thumbnail", + "width": 640 + }, + { + "height": 450, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/9a0cf2e601aace50379e092a84bb84da.jpe", + "type": "thumbnail", + "width": 800 + }, + { + "height": 675, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/9a0cf2e601aace50379e092a84bb84da.jpe", + "type": "thumbnail", + "width": 1200 + }, + { + "height": 810, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/9a0cf2e601aace50379e092a84bb84da.jpe", + "type": "thumbnail", + "width": 1440 + }, + { + "height": 900, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/9a0cf2e601aace50379e092a84bb84da.jpe", + "type": "thumbnail", + "width": 1600 + }, + { + "height": 1080, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/9a0cf2e601aace50379e092a84bb84da.jpe", + "type": "thumbnail", + "width": 1920 + } + ] + ] + }, + "slug_title": "marginal-city", + "episode_metadata": { + "ad_breaks": [ + { + "offset_ms": 0, + "type": "preroll" + }, + { + "offset_ms": 342519, + "type": "midroll" + }, + { + "offset_ms": 685038, + "type": "midroll" + }, + { + "offset_ms": 1027557, + "type": "midroll" + } + ], + "audio_locale": "en-US", + "availability_ends": "9998-11-30T08:00:00Z", + "availability_notes": "", + "availability_starts": "9998-11-30T08:00:00Z", + "available_date": null, + "available_offline": true, + "closed_captions_available": false, + "duration_ms": 1370079, + "eligible_region": "FR", + "episode": "3", + "episode_air_date": "2024-01-25T00:55:00+09:00", + "episode_number": 3, + "extended_maturity_rating": {}, + "free_available_date": "9998-11-30T08:00:00Z", + "identifier": "G24H1NWMJ|S1|E3", + "is_clip": false, + "is_dubbed": true, + "is_mature": false, + "is_premium_only": true, + "is_subbed": true, + "mature_blocked": false, + "maturity_ratings": [ + "TV-14" + ], + "premium_available_date": "2024-01-24T18:25:00Z", + "premium_date": null, + "season_id": "GR49C79NG", + "season_number": 1, + "season_slug_title": "metallic-rouge-english-dub", + "season_title": "Metallic Rouge", + "sequence_number": 3, + "series_id": "G24H1NWMJ", + "series_slug_title": "metallic-rouge", + "series_title": "Metallic Rouge", + "subtitle_locales": [], + "upload_date": "2024-01-25T00:55:00+09:00", + "versions": [ + { + "audio_locale": "ja-JP", + "guid": "G9DUEMVK3", + "is_premium_only": true, + "media_guid": "G1QF41ZKM", + "original": true, + "season_guid": "GRDQCGKKQ", + "variant": "" + }, + { + "audio_locale": "en-US", + "guid": "GZ7UVE5NN", + "is_premium_only": true, + "media_guid": "G5JFZV3JJ", + "original": false, + "season_guid": "GR49C79NG", + "variant": "" + }, + { + "audio_locale": "es-419", + "guid": "GJWU20D4W", + "is_premium_only": true, + "media_guid": "GM8FXPDJ1", + "original": false, + "season_guid": "G6Q4CZJJ3", + "variant": "" + }, + { + "audio_locale": "pt-BR", + "guid": "GWDU8JZ9G", + "is_premium_only": true, + "media_guid": "GEMFZDVPK", + "original": false, + "season_guid": "G65VCDPP0", + "variant": "" + }, + { + "audio_locale": "fr-FR", + "guid": "GVWU07GP0", + "is_premium_only": true, + "media_guid": "G25F0GP50", + "original": false, + "season_guid": "GYWEC3X1V", + "variant": "" + }, + { + "audio_locale": "de-DE", + "guid": "G7PU41NWQ", + "is_premium_only": true, + "media_guid": "G4GFQV4MN", + "original": false, + "season_guid": "GYGGCV985", + "variant": "" + } + ] + }, + "promo_title": "", + "__links__": { + "episode/season": { + "href": "/cms/v2/FR/M2/-/seasons/GR49C79NG" + }, + "episode/series": { + "href": "/cms/v2/FR/M2/-/series/G24H1NWMJ" + }, + "resource": { + "href": "/cms/v2/FR/M2/-/episodes/GZ7UVE5NN" + }, + "resource/channel": { + "href": "/cms/v2/FR/M2/-/channels/crunchyroll" + } + }, + "external_id": "EPI.918816", + "promo_description": "", + "__class__": "panel", + "new": true + }, + { + "description": "Adachi se retrouve contre son plein gré dans une soirée karaoké avec ses collègues de travail, ce qu'il a du mal à supporter. Heureusement, Kurosawa est là pour le soutenir.", + "last_public": "2024-01-24T17:30:06Z", + "__actions__": {}, + "episode_metadata": { + "ad_breaks": [ + { + "offset_ms": 0, + "type": "preroll" + }, + { + "offset_ms": 355001, + "type": "midroll" + }, + { + "offset_ms": 710002, + "type": "midroll" + }, + { + "offset_ms": 1065003, + "type": "midroll" + } + ], + "audio_locale": "ja-JP", + "availability_ends": "9998-11-30T08:00:00Z", + "availability_notes": "", + "availability_starts": "9998-11-30T08:00:00Z", + "available_date": null, + "available_offline": true, + "closed_captions_available": false, + "duration_ms": 1420004, + "eligible_region": "FR", + "episode": "3", + "episode_air_date": "2024-01-25T00:00:00+09:00", + "episode_number": 3, + "extended_maturity_rating": {}, + "free_available_date": "9998-11-30T08:00:00Z", + "identifier": "", + "is_clip": false, + "is_dubbed": false, + "is_mature": false, + "is_premium_only": true, + "is_subbed": true, + "mature_blocked": false, + "maturity_ratings": [ + "TV-14" + ], + "premium_available_date": "2024-01-24T17:30:00Z", + "premium_date": null, + "season_id": "GRZXCMKK1", + "season_number": 1, + "season_slug_title": "cherry-magic-thirty-years-of-virginity-can-make-you-a-wizard", + "season_title": "Cherry Magic! Thirty Years of Virginity Can Make You a Wizard?!", + "sequence_number": 3, + "series_id": "GP5HJ8435", + "series_slug_title": "cherry-magic-thirty-years-of-virginity-can-make-you-a-wizard", + "series_title": "Cherry Magic! Thirty Years of Virginity Can Make You a Wizard?!", + "subtitle_locales": [ + "en-US", + "es-419", + "es-ES", + "fr-FR", + "pt-BR", + "it-IT", + "de-DE", + "ru-RU" + ], + "upload_date": "2024-01-25T00:00:00+09:00", + "versions": null + }, + "__class__": "panel", + "external_id": "EPI.918788", + "new": true, + "__href__": "", + "id": "GEVUZDV1Q", + "new_content": false, + "title": "Épisode 3", + "__links__": { + "episode/season": { + "href": "/cms/v2/FR/M2/-/seasons/GRZXCMKK1" + }, + "episode/series": { + "href": "/cms/v2/FR/M2/-/series/GP5HJ8435" + }, + "resource": { + "href": "/cms/v2/FR/M2/-/episodes/GEVUZDV1Q" + }, + "resource/channel": { + "href": "/cms/v2/FR/M2/-/channels/crunchyroll" + } + }, + "channel_id": "crunchyroll", + "slug_title": "episode-03", + "slug": "", + "promo_description": "", + "type": "episode", + "images": { + "thumbnail": [ + [ + { + "height": 180, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/03063d787138a89cec6d9aab1d23ac90.jpe", + "type": "thumbnail", + "width": 320 + }, + { + "height": 338, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/03063d787138a89cec6d9aab1d23ac90.jpe", + "type": "thumbnail", + "width": 600 + }, + { + "height": 360, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/03063d787138a89cec6d9aab1d23ac90.jpe", + "type": "thumbnail", + "width": 640 + }, + { + "height": 450, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/03063d787138a89cec6d9aab1d23ac90.jpe", + "type": "thumbnail", + "width": 800 + }, + { + "height": 675, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/03063d787138a89cec6d9aab1d23ac90.jpe", + "type": "thumbnail", + "width": 1200 + }, + { + "height": 810, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/03063d787138a89cec6d9aab1d23ac90.jpe", + "type": "thumbnail", + "width": 1440 + }, + { + "height": 900, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/03063d787138a89cec6d9aab1d23ac90.jpe", + "type": "thumbnail", + "width": 1600 + }, + { + "height": 1080, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/03063d787138a89cec6d9aab1d23ac90.jpe", + "type": "thumbnail", + "width": 1920 + } + ] + ] + }, + "linked_resource_key": "cms:/episodes/GEVUZDV1Q", + "promo_title": "" + }, + { + "linked_resource_key": "cms:/episodes/G14U41Z5K", + "promo_description": "", + "__class__": "panel", + "external_id": "EPI.918749", + "new": true, + "promo_title": "", + "title": "An 7 de l'ère Eiroku", + "episode_metadata": { + "ad_breaks": [ + { + "offset_ms": 0, + "type": "preroll" + }, + { + "offset_ms": 354980, + "type": "midroll" + }, + { + "offset_ms": 709960, + "type": "midroll" + }, + { + "offset_ms": 1064940, + "type": "midroll" + } + ], + "audio_locale": "ja-JP", + "availability_ends": "9998-11-30T08:00:00Z", + "availability_notes": "", + "availability_starts": "2024-01-31T16:30:00Z", + "available_date": "2024-01-31T16:30:00Z", + "available_offline": true, + "closed_captions_available": false, + "duration_ms": 1419920, + "eligible_region": "FR", + "episode": "3", + "episode_air_date": "2024-01-25T00:00:00+09:00", + "episode_number": 3, + "extended_maturity_rating": {}, + "free_available_date": "2024-01-31T16:30:00Z", + "identifier": "", + "is_clip": false, + "is_dubbed": false, + "is_mature": false, + "is_premium_only": true, + "is_subbed": true, + "mature_blocked": false, + "maturity_ratings": [ + "TV-14" + ], + "premium_available_date": "2024-01-24T16:30:00Z", + "premium_date": null, + "season_id": "GR2PCVKKE", + "season_number": 1, + "season_slug_title": "sengoku-youko", + "season_title": "Sengoku Youko", + "sequence_number": 3, + "series_id": "G3KHEVD57", + "series_slug_title": "sengoku-youko", + "series_title": "Sengoku Youko", + "subtitle_locales": [ + "en-US", + "es-419", + "es-ES", + "fr-FR", + "pt-BR", + "ar-SA", + "it-IT", + "de-DE", + "ru-RU" + ], + "upload_date": "2024-01-25T00:00:00+09:00", + "versions": null + }, + "last_public": "2024-01-24T16:30:07Z", + "images": { + "thumbnail": [ + [ + { + "height": 180, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/c7cc4192798bd332944ad97d413be89d.jpe", + "type": "thumbnail", + "width": 320 + }, + { + "height": 338, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/c7cc4192798bd332944ad97d413be89d.jpe", + "type": "thumbnail", + "width": 600 + }, + { + "height": 360, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/c7cc4192798bd332944ad97d413be89d.jpe", + "type": "thumbnail", + "width": 640 + }, + { + "height": 450, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/c7cc4192798bd332944ad97d413be89d.jpe", + "type": "thumbnail", + "width": 800 + }, + { + "height": 675, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/c7cc4192798bd332944ad97d413be89d.jpe", + "type": "thumbnail", + "width": 1200 + }, + { + "height": 810, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/c7cc4192798bd332944ad97d413be89d.jpe", + "type": "thumbnail", + "width": 1440 + }, + { + "height": 900, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/c7cc4192798bd332944ad97d413be89d.jpe", + "type": "thumbnail", + "width": 1600 + }, + { + "height": 1080, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/c7cc4192798bd332944ad97d413be89d.jpe", + "type": "thumbnail", + "width": 1920 + } + ] + ] + }, + "description": "En défendant Tama et Shinsuke lors d'un affrontement, Shakugan retrouve sa mémoire jusque-là enfouie, datant de sa forme de chimère. Pendant ce temps, Jinka cherche comment perdre son humanité définitivement, et se rappelle douloureusement l'époque où il était disciple de Kokugetsusai.", + "type": "episode", + "new_content": false, + "channel_id": "crunchyroll", + "id": "G14U41Z5K", + "slug_title": "year-seven-of-the-eiroku-period", + "__links__": { + "episode/season": { + "href": "/cms/v2/FR/M2/-/seasons/GR2PCVKKE" + }, + "episode/series": { + "href": "/cms/v2/FR/M2/-/series/G3KHEVD57" + }, + "resource": { + "href": "/cms/v2/FR/M2/-/episodes/G14U41Z5K" + }, + "resource/channel": { + "href": "/cms/v2/FR/M2/-/channels/crunchyroll" + } + }, + "__actions__": {}, + "__href__": "", + "slug": "" + }, + { + "promo_title": "", + "external_id": "EPI.917980", + "promo_description": "", + "description": "C'est la Saint-Valentin, et toutes les rumeurs vont bon train au sein du lycée. Les ragots portent sur le couple Karuizawa-Hirata qui s'est récemment séparé, ou encore sur Ichinose qui est absente depuis plusieurs jours. Et si la calomnie était une nouvelle arme pour que certains élèves arrivent à leurs fins ?", + "episode_metadata": { + "ad_breaks": [ + { + "offset_ms": 0, + "type": "preroll" + }, + { + "offset_ms": 355032, + "type": "midroll" + }, + { + "offset_ms": 710064, + "type": "midroll" + }, + { + "offset_ms": 1065096, + "type": "midroll" + } + ], + "audio_locale": "ja-JP", + "availability_ends": "9998-11-30T08:00:00Z", + "availability_notes": "", + "availability_starts": "9998-11-30T08:00:00Z", + "available_date": null, + "available_offline": true, + "closed_captions_available": false, + "duration_ms": 1420129, + "eligible_region": "FR", + "episode": "4", + "episode_air_date": "2024-01-24T22:30:00+09:00", + "episode_number": 4, + "extended_maturity_rating": {}, + "free_available_date": "9998-11-30T08:00:00Z", + "identifier": "GRVN8MNQY|S3|E4", + "is_clip": false, + "is_dubbed": false, + "is_mature": false, + "is_premium_only": true, + "is_subbed": true, + "mature_blocked": false, + "maturity_ratings": [ + "TV-14" + ], + "premium_available_date": "2024-01-24T15:00:00Z", + "premium_date": null, + "season_id": "GYNQCJEP2", + "season_number": 3, + "season_slug_title": "classroom-of-the-elite-season-3", + "season_title": "Classroom of the Elite (Saison 3)", + "sequence_number": 4, + "series_id": "GRVN8MNQY", + "series_slug_title": "classroom-of-the-elite", + "series_title": "Classroom of the Elite", + "subtitle_locales": [ + "en-US", + "es-419", + "es-ES", + "fr-FR", + "pt-BR", + "ar-SA", + "it-IT", + "de-DE", + "ru-RU" + ], + "upload_date": "2024-01-24T22:30:00+09:00", + "versions": [ + { + "audio_locale": "ja-JP", + "guid": "GEVUZDW25", + "is_premium_only": true, + "media_guid": "GXMFQW3GN", + "original": true, + "season_guid": "GYNQCJEP2", + "variant": "" + } + ] + }, + "id": "GEVUZDW25", + "linked_resource_key": "cms:/episodes/GEVUZDW25", + "__class__": "panel", + "__links__": { + "episode/season": { + "href": "/cms/v2/FR/M2/-/seasons/GYNQCJEP2" + }, + "episode/series": { + "href": "/cms/v2/FR/M2/-/series/GRVN8MNQY" + }, + "resource": { + "href": "/cms/v2/FR/M2/-/episodes/GEVUZDW25" + }, + "resource/channel": { + "href": "/cms/v2/FR/M2/-/channels/crunchyroll" + } + }, + "images": { + "thumbnail": [ + [ + { + "height": 180, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/b0bce631d9ada230bd9082797b50165a.jpe", + "type": "thumbnail", + "width": 320 + }, + { + "height": 338, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/b0bce631d9ada230bd9082797b50165a.jpe", + "type": "thumbnail", + "width": 600 + }, + { + "height": 360, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/b0bce631d9ada230bd9082797b50165a.jpe", + "type": "thumbnail", + "width": 640 + }, + { + "height": 450, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/b0bce631d9ada230bd9082797b50165a.jpe", + "type": "thumbnail", + "width": 800 + }, + { + "height": 675, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/b0bce631d9ada230bd9082797b50165a.jpe", + "type": "thumbnail", + "width": 1200 + }, + { + "height": 810, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/b0bce631d9ada230bd9082797b50165a.jpe", + "type": "thumbnail", + "width": 1440 + }, + { + "height": 900, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/b0bce631d9ada230bd9082797b50165a.jpe", + "type": "thumbnail", + "width": 1600 + }, + { + "height": 1080, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/b0bce631d9ada230bd9082797b50165a.jpe", + "type": "thumbnail", + "width": 1920 + } + ] + ] + }, + "last_public": "2024-01-24T15:00:07Z", + "new": true, + "channel_id": "crunchyroll", + "slug": "", + "title": "Tu as le droit de remplir les devoirs qui t’échoient, mais pas de jouir du fruit de tes actes.", + "slug_title": "to-work-you-have-the-right-but-not-to-the-fruits-thereof", + "__actions__": {}, + "type": "episode", + "new_content": false, + "__href__": "" + }, + { + "external_id": "EPI.918736", + "title": "Sainte", + "channel_id": "crunchyroll", + "__actions__": {}, + "slug": "", + "type": "episode", + "__href__": "", + "episode_metadata": { + "ad_breaks": [ + { + "offset_ms": 0, + "type": "preroll" + }, + { + "offset_ms": 355021, + "type": "midroll" + }, + { + "offset_ms": 710042, + "type": "midroll" + }, + { + "offset_ms": 1065063, + "type": "midroll" + } + ], + "audio_locale": "ja-JP", + "availability_ends": "9998-11-30T08:00:00Z", + "availability_notes": "", + "availability_starts": "2024-01-31T14:30:00Z", + "available_date": "2024-01-31T14:30:00Z", + "available_offline": true, + "closed_captions_available": false, + "duration_ms": 1420087, + "eligible_region": "FR", + "episode": "3", + "episode_air_date": "2024-01-24T21:30:00+09:00", + "episode_number": 3, + "extended_maturity_rating": {}, + "free_available_date": "2024-01-31T14:30:00Z", + "identifier": "", + "is_clip": false, + "is_dubbed": false, + "is_mature": false, + "is_premium_only": true, + "is_subbed": true, + "mature_blocked": false, + "maturity_ratings": [ + "TV-14" + ], + "premium_available_date": "2024-01-24T14:30:00Z", + "premium_date": null, + "season_id": "G6P8CX777", + "season_number": 1, + "season_slug_title": "doctor-elise-the-royal-lady-with-the-lamp", + "season_title": "Doctor Elise: The Royal Lady with the Lamp", + "sequence_number": 3, + "series_id": "GVDHX853V", + "series_slug_title": "doctor-elise-the-royal-lady-with-the-lamp", + "series_title": "Doctor Elise: The Royal Lady with the Lamp", + "subtitle_locales": [ + "en-US", + "es-419", + "es-ES", + "fr-FR", + "pt-BR", + "ar-SA", + "it-IT", + "de-DE", + "ru-RU" + ], + "upload_date": "2024-01-24T21:30:00+09:00", + "versions": null + }, + "slug_title": "the-lady-saint", + "new": true, + "images": { + "thumbnail": [ + [ + { + "height": 180, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/5ac23013aa40cedd3936d4a01343c7f3.jpe", + "type": "thumbnail", + "width": 320 + }, + { + "height": 338, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/5ac23013aa40cedd3936d4a01343c7f3.jpe", + "type": "thumbnail", + "width": 600 + }, + { + "height": 360, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/5ac23013aa40cedd3936d4a01343c7f3.jpe", + "type": "thumbnail", + "width": 640 + }, + { + "height": 450, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/5ac23013aa40cedd3936d4a01343c7f3.jpe", + "type": "thumbnail", + "width": 800 + }, + { + "height": 675, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/5ac23013aa40cedd3936d4a01343c7f3.jpe", + "type": "thumbnail", + "width": 1200 + }, + { + "height": 810, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/5ac23013aa40cedd3936d4a01343c7f3.jpe", + "type": "thumbnail", + "width": 1440 + }, + { + "height": 900, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/5ac23013aa40cedd3936d4a01343c7f3.jpe", + "type": "thumbnail", + "width": 1600 + }, + { + "height": 1080, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/5ac23013aa40cedd3936d4a01343c7f3.jpe", + "type": "thumbnail", + "width": 1920 + } + ] + ] + }, + "new_content": false, + "linked_resource_key": "cms:/episodes/G8WUN1Q7Z", + "promo_description": "", + "id": "G8WUN1Q7Z", + "last_public": "2024-01-24T14:30:06Z", + "description": "L'empereur a accepté de laisser une chance à Élise de poursuivre sa vocation de médecin, mais elle n'a pas beaucoup de temps. Elle se fait engager incognito à l'hôpital Thérésa pour s'adapter aux connaissances médicales de son monde d'origine et doit composer avec le Dr Fallon qui est loin d'être ravi de devoir former la jeune noble.", + "__class__": "panel", + "__links__": { + "episode/season": { + "href": "/cms/v2/FR/M2/-/seasons/G6P8CX777" + }, + "episode/series": { + "href": "/cms/v2/FR/M2/-/series/GVDHX853V" + }, + "resource": { + "href": "/cms/v2/FR/M2/-/episodes/G8WUN1Q7Z" + }, + "resource/channel": { + "href": "/cms/v2/FR/M2/-/channels/crunchyroll" + } + }, + "promo_title": "" + }, + { + "__class__": "panel", + "channel_id": "crunchyroll", + "linked_resource_key": "cms:/episodes/G4VUQVWEZ", + "last_public": "2024-01-24T13:29:38Z", + "new": true, + "episode_metadata": { + "ad_breaks": [ + { + "offset_ms": 0, + "type": "preroll" + }, + { + "offset_ms": 355522, + "type": "midroll" + }, + { + "offset_ms": 711044, + "type": "midroll" + }, + { + "offset_ms": 1066566, + "type": "midroll" + } + ], + "audio_locale": "ja-JP", + "availability_ends": "9998-11-30T08:00:00Z", + "availability_notes": "", + "availability_starts": "9998-11-30T08:00:00Z", + "available_date": null, + "available_offline": true, + "closed_captions_available": false, + "duration_ms": 1422089, + "eligible_region": "FR", + "episode": "4", + "episode_air_date": "2024-01-24T21:00:00+09:00", + "episode_number": 4, + "extended_maturity_rating": {}, + "free_available_date": "9998-11-30T08:00:00Z", + "identifier": "GDKHZEWP9|S2|E4", + "is_clip": false, + "is_dubbed": false, + "is_mature": false, + "is_premium_only": true, + "is_subbed": true, + "mature_blocked": false, + "maturity_ratings": [ + "TV-14" + ], + "premium_available_date": "2024-01-24T13:30:00Z", + "premium_date": null, + "season_id": "G6JQC135E", + "season_number": 2, + "season_slug_title": "bottom-tier-character-tomozaki-2nd-stage", + "season_title": "Bottom-Tier Character Tomozaki", + "sequence_number": 4, + "series_id": "GDKHZEWP9", + "series_slug_title": "bottom-tier-character-tomozaki", + "series_title": "Bottom-Tier Character Tomozaki", + "subtitle_locales": [ + "en-US", + "es-419", + "es-ES", + "fr-FR", + "pt-BR", + "ar-SA", + "it-IT", + "de-DE", + "ru-RU" + ], + "upload_date": "2024-01-24T21:00:00+09:00", + "versions": [ + { + "audio_locale": "ja-JP", + "guid": "G4VUQVWEZ", + "is_premium_only": true, + "media_guid": "GNJFD1NPG", + "original": true, + "season_guid": "G6JQC135E", + "variant": "" + } + ] + }, + "slug": "", + "__actions__": {}, + "new_content": false, + "title": "Même les roturiers ont une vie à mener", + "description": "Fumiya continue d’aider Tama pour qu’elle change son comportement et se fasse ainsi plus apprécier des autres. Pour mettre en pratique les leçons, Fumiya fera appel à une personne assez inattendue…", + "external_id": "EPI.917962", + "promo_description": "", + "slug_title": "villagers-have-their-own-way-of-life", + "id": "G4VUQVWEZ", + "images": { + "thumbnail": [ + [ + { + "height": 180, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/b7c5c6ba8197b2ecce8993952e6dbd05.jpe", + "type": "thumbnail", + "width": 320 + }, + { + "height": 338, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/b7c5c6ba8197b2ecce8993952e6dbd05.jpe", + "type": "thumbnail", + "width": 600 + }, + { + "height": 360, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/b7c5c6ba8197b2ecce8993952e6dbd05.jpe", + "type": "thumbnail", + "width": 640 + }, + { + "height": 450, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/b7c5c6ba8197b2ecce8993952e6dbd05.jpe", + "type": "thumbnail", + "width": 800 + }, + { + "height": 675, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/b7c5c6ba8197b2ecce8993952e6dbd05.jpe", + "type": "thumbnail", + "width": 1200 + }, + { + "height": 810, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/b7c5c6ba8197b2ecce8993952e6dbd05.jpe", + "type": "thumbnail", + "width": 1440 + }, + { + "height": 900, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/b7c5c6ba8197b2ecce8993952e6dbd05.jpe", + "type": "thumbnail", + "width": 1600 + }, + { + "height": 1080, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/b7c5c6ba8197b2ecce8993952e6dbd05.jpe", + "type": "thumbnail", + "width": 1920 + } + ] + ] + }, + "type": "episode", + "__links__": { + "episode/season": { + "href": "/cms/v2/FR/M2/-/seasons/G6JQC135E" + }, + "episode/series": { + "href": "/cms/v2/FR/M2/-/series/GDKHZEWP9" + }, + "resource": { + "href": "/cms/v2/FR/M2/-/episodes/G4VUQVWEZ" + }, + "resource/channel": { + "href": "/cms/v2/FR/M2/-/channels/crunchyroll" + } + }, + "promo_title": "", + "__href__": "" + }, + { + "external_id": "EPI.919862", + "new": true, + "slug": "", + "promo_description": "", + "__actions__": {}, + "images": { + "thumbnail": [ + [ + { + "height": 180, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe", + "type": "thumbnail", + "width": 320 + }, + { + "height": 338, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe", + "type": "thumbnail", + "width": 600 + }, + { + "height": 360, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe", + "type": "thumbnail", + "width": 640 + }, + { + "height": 450, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe", + "type": "thumbnail", + "width": 800 + }, + { + "height": 675, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe", + "type": "thumbnail", + "width": 1200 + }, + { + "height": 810, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe", + "type": "thumbnail", + "width": 1440 + }, + { + "height": 900, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe", + "type": "thumbnail", + "width": 1600 + }, + { + "height": 1080, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe", + "type": "thumbnail", + "width": 1920 + } + ] + ] + }, + "promo_title": "", + "__links__": { + "episode/season": { + "href": "/cms/v2/FR/M2/-/seasons/GYK5CNJQK" + }, + "episode/series": { + "href": "/cms/v2/FR/M2/-/series/G0XHWM0D3" + }, + "resource": { + "href": "/cms/v2/FR/M2/-/episodes/GN7UD1571" + }, + "resource/channel": { + "href": "/cms/v2/FR/M2/-/channels/crunchyroll" + } + }, + "title": "Je déteste les beaux gosses", + "id": "GN7UD1571", + "__href__": "", + "channel_id": "crunchyroll", + "slug_title": "we-both-hate-hot-guys", + "episode_metadata": { + "ad_breaks": [ + { + "offset_ms": 0, + "type": "preroll" + }, + { + "offset_ms": 355024, + "type": "midroll" + }, + { + "offset_ms": 710048, + "type": "midroll" + }, + { + "offset_ms": 1065072, + "type": "midroll" + } + ], + "audio_locale": "te-IN", + "availability_ends": "9998-11-30T08:00:00Z", + "availability_notes": "", + "availability_starts": "9998-11-30T08:00:00Z", + "available_date": null, + "available_offline": true, + "closed_captions_available": false, + "duration_ms": 1420097, + "eligible_region": "FR", + "episode": "7", + "episode_air_date": "2022-05-15T22:00:00+09:00", + "episode_number": 7, + "extended_maturity_rating": {}, + "free_available_date": "9998-11-30T08:00:00Z", + "identifier": "G0XHWM0D3|S1|E7", + "is_clip": false, + "is_dubbed": true, + "is_mature": false, + "is_premium_only": true, + "is_subbed": true, + "mature_blocked": false, + "maturity_ratings": [ + "TV-14" + ], + "premium_available_date": "2024-01-24T06:00:00Z", + "premium_date": null, + "season_id": "GYK5CNJQK", + "season_number": 1, + "season_slug_title": "trapped-in-a-dating-sim-the-world-of-otome-games-is-tough-for-mobs-telugu-dub", + "season_title": "Trapped in a Dating Sim: The World of Otome Games is Tough for Mobs", + "sequence_number": 7, + "series_id": "G0XHWM0D3", + "series_slug_title": "trapped-in-a-dating-sim-the-world-of-otome-games-is-tough-for-mobs", + "series_title": "Trapped in a Dating Sim: The World of Otome Games is Tough for Mobs", + "subtitle_locales": [], + "upload_date": "2022-05-15T22:00:00+09:00", + "versions": [ + { + "audio_locale": "ja-JP", + "guid": "GQJUGPZEG", + "is_premium_only": true, + "media_guid": "GGVF23VD2", + "original": true, + "season_guid": "G6X0C4KG7", + "variant": "" + }, + { + "audio_locale": "fr-FR", + "guid": "G9DUE1Q27", + "is_premium_only": true, + "media_guid": "G1QF4W0P2", + "original": false, + "season_guid": "G68VCP2Z4", + "variant": "" + }, + { + "audio_locale": "en-US", + "guid": "G7PU4XZDV", + "is_premium_only": true, + "media_guid": "G4GFQEJ7X", + "original": false, + "season_guid": "GYDQCG25K", + "variant": "" + }, + { + "audio_locale": "de-DE", + "guid": "G14U4WD85", + "is_premium_only": true, + "media_guid": "GKKF35J7W", + "original": false, + "season_guid": "GYZXCMPZ8", + "variant": "" + }, + { + "audio_locale": "hi-IN", + "guid": "G7PU499Q1", + "is_premium_only": true, + "media_guid": "G4GFQ22NV", + "original": false, + "season_guid": "GRQ4CZPED", + "variant": "" + }, + { + "audio_locale": "en-IN", + "guid": "G9DUE3380", + "is_premium_only": true, + "media_guid": "G1QF4MMN7", + "original": false, + "season_guid": "GR5VCD7EE", + "variant": "" + }, + { + "audio_locale": "es-419", + "guid": "GWDU8QKPM", + "is_premium_only": true, + "media_guid": "GEMFZNG83", + "original": false, + "season_guid": "GR2PCVWZ8", + "variant": "" + }, + { + "audio_locale": "pt-BR", + "guid": "G7PU4JVV8", + "is_premium_only": true, + "media_guid": "G4GFQ8XXD", + "original": false, + "season_guid": "GY8VCP898", + "variant": "" + }, + { + "audio_locale": "te-IN", + "guid": "GN7UD1571", + "is_premium_only": true, + "media_guid": "GVMF07DZ7", + "original": false, + "season_guid": "GYK5CNJQK", + "variant": "" + }, + { + "audio_locale": "ta-IN", + "guid": "GJWU204X9", + "is_premium_only": true, + "media_guid": "GM8FXPJ4Q", + "original": false, + "season_guid": "GRNQCJEG2", + "variant": "" + } + ] + }, + "__class__": "panel", + "description": "Au cours d'une course, Zirc se blesse et doit trouver un remplaçant. Léon accepte de prendre sa place, et découvre les tenants et aboutissants de ce dans quoi il s'est impliqué.", + "linked_resource_key": "cms:/episodes/GN7UD1571", + "type": "episode", + "last_public": "2024-01-24T00:41:05Z", + "new_content": false + }, + { + "new": true, + "__href__": "", + "promo_description": "", + "promo_title": "", + "__class__": "panel", + "new_content": false, + "__actions__": {}, + "slug": "", + "slug_title": "we-both-hate-hot-guys", + "linked_resource_key": "cms:/episodes/GJWU204X9", + "images": { + "thumbnail": [ + [ + { + "height": 180, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe", + "type": "thumbnail", + "width": 320 + }, + { + "height": 338, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe", + "type": "thumbnail", + "width": 600 + }, + { + "height": 360, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe", + "type": "thumbnail", + "width": 640 + }, + { + "height": 450, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe", + "type": "thumbnail", + "width": 800 + }, + { + "height": 675, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe", + "type": "thumbnail", + "width": 1200 + }, + { + "height": 810, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe", + "type": "thumbnail", + "width": 1440 + }, + { + "height": 900, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe", + "type": "thumbnail", + "width": 1600 + }, + { + "height": 1080, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/667f3f54e35a3944863f638be3d7b6f9.jpe", + "type": "thumbnail", + "width": 1920 + } + ] + ] + }, + "title": "Je déteste les beaux gosses", + "id": "GJWU204X9", + "last_public": "2024-01-24T00:39:19Z", + "__links__": { + "episode/season": { + "href": "/cms/v2/FR/M2/-/seasons/GRNQCJEG2" + }, + "episode/series": { + "href": "/cms/v2/FR/M2/-/series/G0XHWM0D3" + }, + "resource": { + "href": "/cms/v2/FR/M2/-/episodes/GJWU204X9" + }, + "resource/channel": { + "href": "/cms/v2/FR/M2/-/channels/crunchyroll" + } + }, + "type": "episode", + "channel_id": "crunchyroll", + "episode_metadata": { + "ad_breaks": [ + { + "offset_ms": 0, + "type": "preroll" + }, + { + "offset_ms": 355024, + "type": "midroll" + }, + { + "offset_ms": 710048, + "type": "midroll" + }, + { + "offset_ms": 1065072, + "type": "midroll" + } + ], + "audio_locale": "ta-IN", + "availability_ends": "9998-11-30T08:00:00Z", + "availability_notes": "", + "availability_starts": "9998-11-30T08:00:00Z", + "available_date": null, + "available_offline": true, + "closed_captions_available": false, + "duration_ms": 1420097, + "eligible_region": "FR", + "episode": "7", + "episode_air_date": "2022-05-15T22:00:00+09:00", + "episode_number": 7, + "extended_maturity_rating": {}, + "free_available_date": "9998-11-30T08:00:00Z", + "identifier": "G0XHWM0D3|S1|E7", + "is_clip": false, + "is_dubbed": true, + "is_mature": false, + "is_premium_only": true, + "is_subbed": true, + "mature_blocked": false, + "maturity_ratings": [ + "TV-14" + ], + "premium_available_date": "2024-01-24T06:00:00Z", + "premium_date": null, + "season_id": "GRNQCJEG2", + "season_number": 1, + "season_slug_title": "trapped-in-a-dating-sim-the-world-of-otome-games-is-tough-for-mobs-tamil-dub", + "season_title": "Trapped in a Dating Sim: The World of Otome Games is Tough for Mobs", + "sequence_number": 7, + "series_id": "G0XHWM0D3", + "series_slug_title": "trapped-in-a-dating-sim-the-world-of-otome-games-is-tough-for-mobs", + "series_title": "Trapped in a Dating Sim: The World of Otome Games is Tough for Mobs", + "subtitle_locales": [], + "upload_date": "2022-05-15T22:00:00+09:00", + "versions": [ + { + "audio_locale": "ja-JP", + "guid": "GQJUGPZEG", + "is_premium_only": true, + "media_guid": "GGVF23VD2", + "original": true, + "season_guid": "G6X0C4KG7", + "variant": "" + }, + { + "audio_locale": "fr-FR", + "guid": "G9DUE1Q27", + "is_premium_only": true, + "media_guid": "G1QF4W0P2", + "original": false, + "season_guid": "G68VCP2Z4", + "variant": "" + }, + { + "audio_locale": "en-US", + "guid": "G7PU4XZDV", + "is_premium_only": true, + "media_guid": "G4GFQEJ7X", + "original": false, + "season_guid": "GYDQCG25K", + "variant": "" + }, + { + "audio_locale": "de-DE", + "guid": "G14U4WD85", + "is_premium_only": true, + "media_guid": "GKKF35J7W", + "original": false, + "season_guid": "GYZXCMPZ8", + "variant": "" + }, + { + "audio_locale": "hi-IN", + "guid": "G7PU499Q1", + "is_premium_only": true, + "media_guid": "G4GFQ22NV", + "original": false, + "season_guid": "GRQ4CZPED", + "variant": "" + }, + { + "audio_locale": "en-IN", + "guid": "G9DUE3380", + "is_premium_only": true, + "media_guid": "G1QF4MMN7", + "original": false, + "season_guid": "GR5VCD7EE", + "variant": "" + }, + { + "audio_locale": "es-419", + "guid": "GWDU8QKPM", + "is_premium_only": true, + "media_guid": "GEMFZNG83", + "original": false, + "season_guid": "GR2PCVWZ8", + "variant": "" + }, + { + "audio_locale": "pt-BR", + "guid": "G7PU4JVV8", + "is_premium_only": true, + "media_guid": "G4GFQ8XXD", + "original": false, + "season_guid": "GY8VCP898", + "variant": "" + }, + { + "audio_locale": "te-IN", + "guid": "GN7UD1571", + "is_premium_only": true, + "media_guid": "GVMF07DZ7", + "original": false, + "season_guid": "GYK5CNJQK", + "variant": "" + }, + { + "audio_locale": "ta-IN", + "guid": "GJWU204X9", + "is_premium_only": true, + "media_guid": "GM8FXPJ4Q", + "original": false, + "season_guid": "GRNQCJEG2", + "variant": "" + } + ] + }, + "external_id": "EPI.919861", + "description": "Au cours d'une course, Zirc se blesse et doit trouver un remplaçant. Léon accepte de prendre sa place, et découvre les tenants et aboutissants de ce dans quoi il s'est impliqué." + }, + { + "__links__": { + "episode/season": { + "href": "/cms/v2/FR/M2/-/seasons/G6DQCGKP0" + }, + "episode/series": { + "href": "/cms/v2/FR/M2/-/series/GDKHZEP21" + }, + "resource": { + "href": "/cms/v2/FR/M2/-/episodes/G14U418EG" + }, + "resource/channel": { + "href": "/cms/v2/FR/M2/-/channels/crunchyroll" + } + }, + "title": "Le plus puissant sorcier du monde revêt un masque", + "episode_metadata": { + "ad_breaks": [ + { + "offset_ms": 0, + "type": "preroll" + }, + { + "offset_ms": 362522, + "type": "midroll" + }, + { + "offset_ms": 725044, + "type": "midroll" + }, + { + "offset_ms": 1087566, + "type": "midroll" + } + ], + "audio_locale": "hi-IN", + "availability_ends": "9998-11-30T08:00:00Z", + "availability_notes": "", + "availability_starts": "9998-11-30T08:00:00Z", + "available_date": null, + "available_offline": true, + "closed_captions_available": false, + "duration_ms": 1450091, + "eligible_region": "FR", + "episode": "6", + "episode_air_date": "2023-02-10T01:28:00+09:00", + "episode_number": 6, + "extended_maturity_rating": {}, + "free_available_date": "9998-11-30T08:00:00Z", + "identifier": "GDKHZEP21|S1|E6", + "is_clip": false, + "is_dubbed": true, + "is_mature": false, + "is_premium_only": true, + "is_subbed": true, + "mature_blocked": false, + "maturity_ratings": [ + "TV-14" + ], + "premium_available_date": "2024-01-24T04:30:00Z", + "premium_date": null, + "season_id": "G6DQCGKP0", + "season_number": 1, + "season_slug_title": "the-iceblade-sorcerer-shall-rule-the-world-hindi-dub", + "season_title": "The Iceblade Sorcerer Shall Rule the World", + "sequence_number": 6, + "series_id": "GDKHZEP21", + "series_slug_title": "the-iceblade-sorcerer-shall-rule-the-world", + "series_title": "The Iceblade Sorcerer Shall Rule the World", + "subtitle_locales": [], + "upload_date": "2023-02-10T01:28:00+09:00", + "versions": [ + { + "audio_locale": "ja-JP", + "guid": "G2XU0Q9KN", + "is_premium_only": true, + "media_guid": "GDVFVX7KE", + "original": true, + "season_guid": "GYP8CX121", + "variant": "" + }, + { + "audio_locale": "en-US", + "guid": "GWDU8DD58", + "is_premium_only": true, + "media_guid": "GEMFZEE4Z", + "original": false, + "season_guid": "GY2PCV859", + "variant": "" + }, + { + "audio_locale": "de-DE", + "guid": "G7PU499ZG", + "is_premium_only": true, + "media_guid": "G4GFQ22JG", + "original": false, + "season_guid": "GRP8CX108", + "variant": "" + }, + { + "audio_locale": "es-419", + "guid": "GJWU29E5Q", + "is_premium_only": true, + "media_guid": "GM8FXQG8E", + "original": false, + "season_guid": "GRE5CQM57", + "variant": "" + }, + { + "audio_locale": "pt-BR", + "guid": "GVWU0W45D", + "is_premium_only": true, + "media_guid": "G25F04DWZ", + "original": false, + "season_guid": "G675CDE5P", + "variant": "" + }, + { + "audio_locale": "hi-IN", + "guid": "G14U418EG", + "is_premium_only": true, + "media_guid": "GKKF3K74D", + "original": false, + "season_guid": "G6DQCGKP0", + "variant": "" + } + ] + }, + "external_id": "EPI.919860", + "slug": "", + "last_public": "2024-01-24T00:38:06Z", + "type": "episode", + "__href__": "", + "channel_id": "crunchyroll", + "slug_title": "the-boy-who-became-the-worlds-strongest-sorcerer-dons-a-mask", + "__actions__": {}, + "new": true, + "new_content": false, + "id": "G14U418EG", + "images": { + "thumbnail": [ + [ + { + "height": 180, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/7eb22b204d9771c4f99765c451dfffa4.jpe", + "type": "thumbnail", + "width": 320 + }, + { + "height": 338, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/7eb22b204d9771c4f99765c451dfffa4.jpe", + "type": "thumbnail", + "width": 600 + }, + { + "height": 360, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/7eb22b204d9771c4f99765c451dfffa4.jpe", + "type": "thumbnail", + "width": 640 + }, + { + "height": 450, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/7eb22b204d9771c4f99765c451dfffa4.jpe", + "type": "thumbnail", + "width": 800 + }, + { + "height": 675, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/7eb22b204d9771c4f99765c451dfffa4.jpe", + "type": "thumbnail", + "width": 1200 + }, + { + "height": 810, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/7eb22b204d9771c4f99765c451dfffa4.jpe", + "type": "thumbnail", + "width": 1440 + }, + { + "height": 900, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/7eb22b204d9771c4f99765c451dfffa4.jpe", + "type": "thumbnail", + "width": 1600 + }, + { + "height": 1080, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/7eb22b204d9771c4f99765c451dfffa4.jpe", + "type": "thumbnail", + "width": 1920 + } + ] + ] + }, + "linked_resource_key": "cms:/episodes/G14U418EG", + "description": "À l’approche du Magicus Chevalier, Amelia redoute de ne pas être à la hauteur malgré ses compétences. Ray lui propose alors de l’aider en lui faisant suivre l’entraînement auquel il avait été soumis plus jeune.", + "promo_description": "", + "promo_title": "", + "__class__": "panel" + }, + { + "title": "On profite de ce moment… toutes ensemble", + "new": true, + "id": "G4VUQVPX2", + "type": "episode", + "external_id": "EPI.919859", + "slug": "", + "linked_resource_key": "cms:/episodes/G4VUQVPX2", + "__actions__": {}, + "__class__": "panel", + "images": { + "thumbnail": [ + [ + { + "height": 180, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe", + "type": "thumbnail", + "width": 320 + }, + { + "height": 338, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe", + "type": "thumbnail", + "width": 600 + }, + { + "height": 360, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe", + "type": "thumbnail", + "width": 640 + }, + { + "height": 450, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe", + "type": "thumbnail", + "width": 800 + }, + { + "height": 675, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe", + "type": "thumbnail", + "width": 1200 + }, + { + "height": 810, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe", + "type": "thumbnail", + "width": 1440 + }, + { + "height": 900, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe", + "type": "thumbnail", + "width": 1600 + }, + { + "height": 1080, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe", + "type": "thumbnail", + "width": 1920 + } + ] + ] + }, + "promo_description": "", + "channel_id": "crunchyroll", + "episode_metadata": { + "ad_breaks": [ + { + "offset_ms": 0, + "type": "preroll" + }, + { + "offset_ms": 355024, + "type": "midroll" + }, + { + "offset_ms": 710048, + "type": "midroll" + }, + { + "offset_ms": 1065072, + "type": "midroll" + } + ], + "audio_locale": "te-IN", + "availability_ends": "9998-11-30T08:00:00Z", + "availability_notes": "", + "availability_starts": "9998-11-30T08:00:00Z", + "available_date": null, + "available_offline": true, + "closed_captions_available": false, + "duration_ms": 1420097, + "eligible_region": "FR", + "episode": "11", + "episode_air_date": "2022-03-20T00:30:00+09:00", + "episode_number": 11, + "extended_maturity_rating": {}, + "free_available_date": "9998-11-30T08:00:00Z", + "identifier": "GDKHZEW97|S1|E11", + "is_clip": false, + "is_dubbed": true, + "is_mature": false, + "is_premium_only": true, + "is_subbed": true, + "mature_blocked": false, + "maturity_ratings": [ + "TV-14" + ], + "premium_available_date": "2024-01-24T04:30:00Z", + "premium_date": null, + "season_id": "G6MGC32ZJ", + "season_number": 1, + "season_slug_title": "akebis-sailor-uniform-telugu-dub", + "season_title": "Akebi's Sailor Uniform", + "sequence_number": 11, + "series_id": "GDKHZEW97", + "series_slug_title": "akebis-sailor-uniform", + "series_title": "Akebi's Sailor Uniform", + "subtitle_locales": [], + "upload_date": "2022-03-20T00:30:00+09:00", + "versions": [ + { + "audio_locale": "ja-JP", + "guid": "G14U427J4", + "is_premium_only": true, + "media_guid": "GKKF3QE23", + "original": true, + "season_guid": "GRK5CNZ5X", + "variant": "" + }, + { + "audio_locale": "en-US", + "guid": "G50UZ7Z7Q", + "is_premium_only": true, + "media_guid": "G07FN5N57", + "original": false, + "season_guid": "G6X0C4DZQ", + "variant": "" + }, + { + "audio_locale": "hi-IN", + "guid": "G0DUN81Z8", + "is_premium_only": true, + "media_guid": "G9XFE3Q43", + "original": false, + "season_guid": "GYE5CQ4J8", + "variant": "" + }, + { + "audio_locale": "ta-IN", + "guid": "GX9UQWN75", + "is_premium_only": true, + "media_guid": "GJKF204XZ", + "original": false, + "season_guid": "G6K5CNJZ9", + "variant": "" + }, + { + "audio_locale": "te-IN", + "guid": "G4VUQVPX2", + "is_premium_only": true, + "media_guid": "GNJFD1574", + "original": false, + "season_guid": "G6MGC32ZJ", + "variant": "" + } + ] + }, + "description": "Akebi et ses amies s'entraînent à présent pour l'épreuve de volley-ball. Malheureusement, certaines d'entre elles rencontrent des difficultés avec ce sport et cherchent un moyen de pouvoir s'entraîner davantage.", + "promo_title": "", + "__links__": { + "episode/season": { + "href": "/cms/v2/FR/M2/-/seasons/G6MGC32ZJ" + }, + "episode/series": { + "href": "/cms/v2/FR/M2/-/series/GDKHZEW97" + }, + "resource": { + "href": "/cms/v2/FR/M2/-/episodes/G4VUQVPX2" + }, + "resource/channel": { + "href": "/cms/v2/FR/M2/-/channels/crunchyroll" + } + }, + "__href__": "", + "slug_title": "sharing-this-time-with-everyone", + "last_public": "2024-01-24T00:36:06Z", + "new_content": false + }, + { + "promo_title": "", + "channel_id": "crunchyroll", + "linked_resource_key": "cms:/episodes/GX9UQWN75", + "images": { + "thumbnail": [ + [ + { + "height": 180, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe", + "type": "thumbnail", + "width": 320 + }, + { + "height": 338, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe", + "type": "thumbnail", + "width": 600 + }, + { + "height": 360, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe", + "type": "thumbnail", + "width": 640 + }, + { + "height": 450, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe", + "type": "thumbnail", + "width": 800 + }, + { + "height": 675, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe", + "type": "thumbnail", + "width": 1200 + }, + { + "height": 810, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe", + "type": "thumbnail", + "width": 1440 + }, + { + "height": 900, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe", + "type": "thumbnail", + "width": 1600 + }, + { + "height": 1080, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/018bd324e883024f1d38e4ca197ddbfe.jpe", + "type": "thumbnail", + "width": 1920 + } + ] + ] + }, + "slug": "", + "id": "GX9UQWN75", + "__href__": "", + "slug_title": "sharing-this-time-with-everyone", + "type": "episode", + "external_id": "EPI.919858", + "__links__": { + "episode/season": { + "href": "/cms/v2/FR/M2/-/seasons/G6K5CNJZ9" + }, + "episode/series": { + "href": "/cms/v2/FR/M2/-/series/GDKHZEW97" + }, + "resource": { + "href": "/cms/v2/FR/M2/-/episodes/GX9UQWN75" + }, + "resource/channel": { + "href": "/cms/v2/FR/M2/-/channels/crunchyroll" + } + }, + "last_public": "2024-01-24T00:34:06Z", + "promo_description": "", + "title": "On profite de ce moment… toutes ensemble", + "new_content": false, + "__class__": "panel", + "__actions__": {}, + "episode_metadata": { + "ad_breaks": [ + { + "offset_ms": 0, + "type": "preroll" + }, + { + "offset_ms": 355024, + "type": "midroll" + }, + { + "offset_ms": 710048, + "type": "midroll" + }, + { + "offset_ms": 1065072, + "type": "midroll" + } + ], + "audio_locale": "ta-IN", + "availability_ends": "9998-11-30T08:00:00Z", + "availability_notes": "", + "availability_starts": "9998-11-30T08:00:00Z", + "available_date": null, + "available_offline": true, + "closed_captions_available": false, + "duration_ms": 1420097, + "eligible_region": "FR", + "episode": "11", + "episode_air_date": "2022-03-20T00:30:00+09:00", + "episode_number": 11, + "extended_maturity_rating": {}, + "free_available_date": "9998-11-30T08:00:00Z", + "identifier": "GDKHZEW97|S1|E11", + "is_clip": false, + "is_dubbed": true, + "is_mature": false, + "is_premium_only": true, + "is_subbed": true, + "mature_blocked": false, + "maturity_ratings": [ + "TV-14" + ], + "premium_available_date": "2024-01-24T04:30:00Z", + "premium_date": null, + "season_id": "G6K5CNJZ9", + "season_number": 1, + "season_slug_title": "akebis-sailor-uniform-tamil-dub", + "season_title": "Akebi's Sailor Uniform", + "sequence_number": 11, + "series_id": "GDKHZEW97", + "series_slug_title": "akebis-sailor-uniform", + "series_title": "Akebi's Sailor Uniform", + "subtitle_locales": [], + "upload_date": "2022-03-20T00:30:00+09:00", + "versions": [ + { + "audio_locale": "ja-JP", + "guid": "G14U427J4", + "is_premium_only": true, + "media_guid": "GKKF3QE23", + "original": true, + "season_guid": "GRK5CNZ5X", + "variant": "" + }, + { + "audio_locale": "en-US", + "guid": "G50UZ7Z7Q", + "is_premium_only": true, + "media_guid": "G07FN5N57", + "original": false, + "season_guid": "G6X0C4DZQ", + "variant": "" + }, + { + "audio_locale": "hi-IN", + "guid": "G0DUN81Z8", + "is_premium_only": true, + "media_guid": "G9XFE3Q43", + "original": false, + "season_guid": "GYE5CQ4J8", + "variant": "" + }, + { + "audio_locale": "ta-IN", + "guid": "GX9UQWN75", + "is_premium_only": true, + "media_guid": "GJKF204XZ", + "original": false, + "season_guid": "G6K5CNJZ9", + "variant": "" + }, + { + "audio_locale": "te-IN", + "guid": "G4VUQVPX2", + "is_premium_only": true, + "media_guid": "GNJFD1574", + "original": false, + "season_guid": "G6MGC32ZJ", + "variant": "" + } + ] + }, + "description": "Akebi et ses amies s'entraînent à présent pour l'épreuve de volley-ball. Malheureusement, certaines d'entre elles rencontrent des difficultés avec ce sport et cherchent un moyen de pouvoir s'entraîner davantage.", + "new": true + }, + { + "new_content": false, + "last_public": "2024-01-24T00:14:40Z", + "new": true, + "promo_title": "", + "channel_id": "crunchyroll", + "promo_description": "", + "linked_resource_key": "cms:/episodes/G9DUEMWPJ", + "type": "episode", + "external_id": "EPI.919857", + "episode_metadata": { + "ad_breaks": [ + { + "offset_ms": 0, + "type": "preroll" + }, + { + "offset_ms": 367536, + "type": "midroll" + }, + { + "offset_ms": 735072, + "type": "midroll" + }, + { + "offset_ms": 1102608, + "type": "midroll" + } + ], + "audio_locale": "te-IN", + "availability_ends": "9998-11-30T08:00:00Z", + "availability_notes": "", + "availability_starts": "9998-11-30T08:00:00Z", + "available_date": null, + "available_offline": true, + "closed_captions_available": false, + "duration_ms": 1470145, + "eligible_region": "FR", + "episode": "14", + "episode_air_date": "2019-01-05T17:35:00+09:00", + "episode_number": 14, + "extended_maturity_rating": {}, + "free_available_date": "9998-11-30T08:00:00Z", + "identifier": "G6W4MEZ0R|S1|E14", + "is_clip": false, + "is_dubbed": true, + "is_mature": false, + "is_premium_only": true, + "is_subbed": true, + "mature_blocked": false, + "maturity_ratings": [ + "TV-14" + ], + "premium_available_date": "2024-01-24T05:00:00Z", + "premium_date": null, + "season_id": "GY09CXPVK", + "season_number": 1, + "season_slug_title": "radiant-telugu-dub", + "season_title": "RADIANT", + "sequence_number": 14, + "series_id": "G6W4MEZ0R", + "series_slug_title": "radiant", + "series_title": "RADIANT", + "subtitle_locales": [], + "upload_date": "2019-01-05T17:35:00+09:00", + "versions": [ + { + "audio_locale": "ja-JP", + "guid": "GYG5XK92Y", + "is_premium_only": true, + "media_guid": "GJKF2PP4G", + "original": true, + "season_guid": "G6G5VG426", + "variant": "" + }, + { + "audio_locale": "es-419", + "guid": "G7PU459D5", + "is_premium_only": true, + "media_guid": "G4GFQ3273", + "original": false, + "season_guid": "GYVNC2DV7", + "variant": "" + }, + { + "audio_locale": "pt-BR", + "guid": "G0DUN38XK", + "is_premium_only": true, + "media_guid": "G9XFEX32M", + "original": false, + "season_guid": "GR3VC2MPN", + "variant": "" + }, + { + "audio_locale": "en-US", + "guid": "G31UXQ2VD", + "is_premium_only": true, + "media_guid": "G8MFNEP78", + "original": false, + "season_guid": "GR19CP3M5", + "variant": "" + }, + { + "audio_locale": "hi-IN", + "guid": "GVWU09JPJ", + "is_premium_only": true, + "media_guid": "G25F0QJ5J", + "original": false, + "season_guid": "G675CD0Q1", + "variant": "" + }, + { + "audio_locale": "ta-IN", + "guid": "GEVUZD5G4", + "is_premium_only": true, + "media_guid": "GXMFQWN7P", + "original": false, + "season_guid": "G6GGCV9K4", + "variant": "" + }, + { + "audio_locale": "te-IN", + "guid": "G9DUEMWPJ", + "is_premium_only": true, + "media_guid": "G1QF418ED", + "original": false, + "season_guid": "GY09CXPVK", + "variant": "" + } + ] + }, + "title": "La cloche de l’effondrement", + "__class__": "panel", + "__links__": { + "episode/season": { + "href": "/cms/v2/FR/M2/-/seasons/GY09CXPVK" + }, + "episode/series": { + "href": "/cms/v2/FR/M2/-/series/G6W4MEZ0R" + }, + "resource": { + "href": "/cms/v2/FR/M2/-/episodes/G9DUEMWPJ" + }, + "resource/channel": { + "href": "/cms/v2/FR/M2/-/channels/crunchyroll" + } + }, + "id": "G9DUEMWPJ", + "slug": "", + "slug_title": "the-bell-tolls-the-sound-of-destruction--catastrophe-", + "images": { + "thumbnail": [ + [ + { + "height": 180, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe", + "type": "thumbnail", + "width": 320 + }, + { + "height": 338, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe", + "type": "thumbnail", + "width": 600 + }, + { + "height": 360, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe", + "type": "thumbnail", + "width": 640 + }, + { + "height": 450, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe", + "type": "thumbnail", + "width": 800 + }, + { + "height": 675, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe", + "type": "thumbnail", + "width": 1200 + }, + { + "height": 810, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe", + "type": "thumbnail", + "width": 1440 + }, + { + "height": 900, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe", + "type": "thumbnail", + "width": 1600 + }, + { + "height": 1080, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe", + "type": "thumbnail", + "width": 1920 + } + ] + ] + }, + "__actions__": {}, + "description": "Le secret qui entoure le plan de Konrad commence à se dévoiler. Seth veut tout mettre en œuvre pour le contrer, mais c’est sans compter l’intervention de Grimm…", + "__href__": "" + }, + { + "__class__": "panel", + "slug": "", + "__links__": { + "episode/season": { + "href": "/cms/v2/FR/M2/-/seasons/G6GGCV9K4" + }, + "episode/series": { + "href": "/cms/v2/FR/M2/-/series/G6W4MEZ0R" + }, + "resource": { + "href": "/cms/v2/FR/M2/-/episodes/GEVUZD5G4" + }, + "resource/channel": { + "href": "/cms/v2/FR/M2/-/channels/crunchyroll" + } + }, + "__href__": "", + "episode_metadata": { + "ad_breaks": [ + { + "offset_ms": 0, + "type": "preroll" + }, + { + "offset_ms": 367536, + "type": "midroll" + }, + { + "offset_ms": 735072, + "type": "midroll" + }, + { + "offset_ms": 1102608, + "type": "midroll" + } + ], + "audio_locale": "ta-IN", + "availability_ends": "9998-11-30T08:00:00Z", + "availability_notes": "", + "availability_starts": "9998-11-30T08:00:00Z", + "available_date": null, + "available_offline": true, + "closed_captions_available": false, + "duration_ms": 1470145, + "eligible_region": "FR", + "episode": "14", + "episode_air_date": "2019-01-05T17:35:00+09:00", + "episode_number": 14, + "extended_maturity_rating": {}, + "free_available_date": "9998-11-30T08:00:00Z", + "identifier": "G6W4MEZ0R|S1|E14", + "is_clip": false, + "is_dubbed": true, + "is_mature": false, + "is_premium_only": true, + "is_subbed": true, + "mature_blocked": false, + "maturity_ratings": [ + "TV-14" + ], + "premium_available_date": "2024-01-24T05:00:00Z", + "premium_date": null, + "season_id": "G6GGCV9K4", + "season_number": 1, + "season_slug_title": "radiant-tamil-dub", + "season_title": "RADIANT", + "sequence_number": 14, + "series_id": "G6W4MEZ0R", + "series_slug_title": "radiant", + "series_title": "RADIANT", + "subtitle_locales": [], + "upload_date": "2019-01-05T17:35:00+09:00", + "versions": [ + { + "audio_locale": "ja-JP", + "guid": "GYG5XK92Y", + "is_premium_only": true, + "media_guid": "GJKF2PP4G", + "original": true, + "season_guid": "G6G5VG426", + "variant": "" + }, + { + "audio_locale": "es-419", + "guid": "G7PU459D5", + "is_premium_only": true, + "media_guid": "G4GFQ3273", + "original": false, + "season_guid": "GYVNC2DV7", + "variant": "" + }, + { + "audio_locale": "pt-BR", + "guid": "G0DUN38XK", + "is_premium_only": true, + "media_guid": "G9XFEX32M", + "original": false, + "season_guid": "GR3VC2MPN", + "variant": "" + }, + { + "audio_locale": "en-US", + "guid": "G31UXQ2VD", + "is_premium_only": true, + "media_guid": "G8MFNEP78", + "original": false, + "season_guid": "GR19CP3M5", + "variant": "" + }, + { + "audio_locale": "hi-IN", + "guid": "GVWU09JPJ", + "is_premium_only": true, + "media_guid": "G25F0QJ5J", + "original": false, + "season_guid": "G675CD0Q1", + "variant": "" + }, + { + "audio_locale": "ta-IN", + "guid": "GEVUZD5G4", + "is_premium_only": true, + "media_guid": "GXMFQWN7P", + "original": false, + "season_guid": "G6GGCV9K4", + "variant": "" + }, + { + "audio_locale": "te-IN", + "guid": "G9DUEMWPJ", + "is_premium_only": true, + "media_guid": "G1QF418ED", + "original": false, + "season_guid": "GY09CXPVK", + "variant": "" + } + ] + }, + "promo_description": "", + "slug_title": "the-bell-tolls-the-sound-of-destruction--catastrophe-", + "type": "episode", + "promo_title": "", + "title": "La cloche de l’effondrement", + "new": true, + "new_content": false, + "linked_resource_key": "cms:/episodes/GEVUZD5G4", + "external_id": "EPI.919855", + "images": { + "thumbnail": [ + [ + { + "height": 180, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe", + "type": "thumbnail", + "width": 320 + }, + { + "height": 338, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe", + "type": "thumbnail", + "width": 600 + }, + { + "height": 360, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe", + "type": "thumbnail", + "width": 640 + }, + { + "height": 450, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe", + "type": "thumbnail", + "width": 800 + }, + { + "height": 675, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe", + "type": "thumbnail", + "width": 1200 + }, + { + "height": 810, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe", + "type": "thumbnail", + "width": 1440 + }, + { + "height": 900, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe", + "type": "thumbnail", + "width": 1600 + }, + { + "height": 1080, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/249dac292c414fb00bc2c0d45e4fc09c.jpe", + "type": "thumbnail", + "width": 1920 + } + ] + ] + }, + "channel_id": "crunchyroll", + "__actions__": {}, + "last_public": "2024-01-24T00:14:27Z", + "id": "GEVUZD5G4", + "description": "Le secret qui entoure le plan de Konrad commence à se dévoiler. Seth veut tout mettre en œuvre pour le contrer, mais c’est sans compter l’intervention de Grimm…" + }, + { + "promo_title": "", + "slug_title": "when-the-sakura-blooms", + "__links__": { + "episode/season": { + "href": "/cms/v2/FR/M2/-/seasons/GY19CPDEM" + }, + "episode/series": { + "href": "/cms/v2/FR/M2/-/series/GY8VEQ95Y" + }, + "resource": { + "href": "/cms/v2/FR/M2/-/episodes/GWDU8JNKP" + }, + "resource/channel": { + "href": "/cms/v2/FR/M2/-/channels/crunchyroll" + } + }, + "title": "Quand fleurissent les cerisiers", + "images": { + "thumbnail": [ + [ + { + "height": 180, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe", + "type": "thumbnail", + "width": 320 + }, + { + "height": 338, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe", + "type": "thumbnail", + "width": 600 + }, + { + "height": 360, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe", + "type": "thumbnail", + "width": 640 + }, + { + "height": 450, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe", + "type": "thumbnail", + "width": 800 + }, + { + "height": 675, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe", + "type": "thumbnail", + "width": 1200 + }, + { + "height": 810, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe", + "type": "thumbnail", + "width": 1440 + }, + { + "height": 900, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe", + "type": "thumbnail", + "width": 1600 + }, + { + "height": 1080, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe", + "type": "thumbnail", + "width": 1920 + } + ] + ] + }, + "external_id": "EPI.919852", + "slug": "", + "__href__": "", + "last_public": "2024-01-24T00:12:40Z", + "new_content": false, + "id": "GWDU8JNKP", + "promo_description": "", + "channel_id": "crunchyroll", + "episode_metadata": { + "ad_breaks": [ + { + "offset_ms": 0, + "type": "preroll" + }, + { + "offset_ms": 360016, + "type": "midroll" + }, + { + "offset_ms": 720032, + "type": "midroll" + }, + { + "offset_ms": 1080048, + "type": "midroll" + } + ], + "audio_locale": "te-IN", + "availability_ends": "9998-11-30T08:00:00Z", + "availability_notes": "", + "availability_starts": "9998-11-30T08:00:00Z", + "available_date": null, + "available_offline": true, + "closed_captions_available": false, + "duration_ms": 1440066, + "eligible_region": "FR", + "episode": "18", + "episode_air_date": "2018-05-19T23:30:00+09:00", + "episode_number": 18, + "extended_maturity_rating": {}, + "free_available_date": "9998-11-30T08:00:00Z", + "identifier": "GY8VEQ95Y|S1|E18", + "is_clip": false, + "is_dubbed": true, + "is_mature": false, + "is_premium_only": true, + "is_subbed": true, + "mature_blocked": false, + "maturity_ratings": [ + "TV-14" + ], + "premium_available_date": "2024-01-24T05:30:00Z", + "premium_date": null, + "season_id": "GY19CPDEM", + "season_number": 1, + "season_slug_title": "darling-in-the-franxx-telugu-dub", + "season_title": "DARLING in the FRANXX", + "sequence_number": 18, + "series_id": "GY8VEQ95Y", + "series_slug_title": "darling-in-the-franxx", + "series_title": "DARLING in the FRANXX", + "subtitle_locales": [], + "upload_date": "2018-05-19T23:30:00+09:00", + "versions": [ + { + "audio_locale": "ja-JP", + "guid": "GYQW44EEY", + "is_premium_only": false, + "media_guid": "G07FNEEXN", + "original": true, + "season_guid": "GRZX8KNGY", + "variant": "" + }, + { + "audio_locale": "fr-FR", + "guid": "GYMEXW1V6", + "is_premium_only": true, + "media_guid": "G07FNVKJ7", + "original": false, + "season_guid": "GRDK3JDGY", + "variant": "" + }, + { + "audio_locale": "es-419", + "guid": "GR7931Q36", + "is_premium_only": true, + "media_guid": "G1QF4K7M8", + "original": false, + "season_guid": "GR24J4526", + "variant": "" + }, + { + "audio_locale": "pt-BR", + "guid": "GYMEW8086", + "is_premium_only": true, + "media_guid": "G8MFNKJ0M", + "original": false, + "season_guid": "GRG5M542R", + "variant": "" + }, + { + "audio_locale": "de-DE", + "guid": "GRG5MDW4R", + "is_premium_only": true, + "media_guid": "G1QF48JZE", + "original": false, + "season_guid": "GRZJVPW86", + "variant": "" + }, + { + "audio_locale": "en-US", + "guid": "GN7UD79DJ", + "is_premium_only": true, + "media_guid": "GVMF0Z502", + "original": false, + "season_guid": "GR9PC2XG2", + "variant": "" + }, + { + "audio_locale": "hi-IN", + "guid": "G9DUE35WJ", + "is_premium_only": true, + "media_guid": "G1QF4M98D", + "original": false, + "season_guid": "GY19CP2NE", + "variant": "" + }, + { + "audio_locale": "en-IN", + "guid": "GX9UQ0JN5", + "is_premium_only": true, + "media_guid": "GJKF2V94Z", + "original": false, + "season_guid": "GRJQC18Z8", + "variant": "" + }, + { + "audio_locale": "ta-IN", + "guid": "GZ7UVENX5", + "is_premium_only": true, + "media_guid": "G5JFZVJ43", + "original": false, + "season_guid": "GR49C79XN", + "variant": "" + }, + { + "audio_locale": "te-IN", + "guid": "GWDU8JNKP", + "is_premium_only": true, + "media_guid": "GEMFZD5G8", + "original": false, + "season_guid": "GY19CPDEM", + "variant": "" + } + ] + }, + "new": true, + "linked_resource_key": "cms:/episodes/GWDU8JNKP", + "__actions__": {}, + "__class__": "panel", + "type": "episode", + "description": "Hachi annonce à Ichigo que l'unité 13 va devoir quitter Mistiltein. Avant le grand départ, Hiro a une idée pour célébrer le rapprochement entre Kokoro et Mitsuru." + }, + { + "slug": "", + "description": "Les enfants reçoivent des visiteurs inattendus dans la cage à oiseaux. Leur indépendance fraîchement acquise et les idées qui leur sont venues ne sont peut-être pas du goût de papa…", + "type": "episode", + "episode_metadata": { + "ad_breaks": [ + { + "offset_ms": 0, + "type": "preroll" + }, + { + "offset_ms": 360026, + "type": "midroll" + }, + { + "offset_ms": 720052, + "type": "midroll" + }, + { + "offset_ms": 1080078, + "type": "midroll" + } + ], + "audio_locale": "te-IN", + "availability_ends": "9998-11-30T08:00:00Z", + "availability_notes": "", + "availability_starts": "9998-11-30T08:00:00Z", + "available_date": null, + "available_offline": true, + "closed_captions_available": false, + "duration_ms": 1440107, + "eligible_region": "FR", + "episode": "17", + "episode_air_date": "2018-05-12T23:30:00+09:00", + "episode_number": 17, + "extended_maturity_rating": {}, + "free_available_date": "9998-11-30T08:00:00Z", + "identifier": "GY8VEQ95Y|S1|E17", + "is_clip": false, + "is_dubbed": true, + "is_mature": false, + "is_premium_only": true, + "is_subbed": true, + "mature_blocked": false, + "maturity_ratings": [ + "TV-14" + ], + "premium_available_date": "2024-01-24T05:30:00Z", + "premium_date": null, + "season_id": "GY19CPDEM", + "season_number": 1, + "season_slug_title": "darling-in-the-franxx-telugu-dub", + "season_title": "DARLING in the FRANXX", + "sequence_number": 17, + "series_id": "GY8VEQ95Y", + "series_slug_title": "darling-in-the-franxx", + "series_title": "DARLING in the FRANXX", + "subtitle_locales": [], + "upload_date": "2018-05-12T23:30:00+09:00", + "versions": [ + { + "audio_locale": "ja-JP", + "guid": "G69VPDJ3Y", + "is_premium_only": false, + "media_guid": "GWMF8ZZ3M", + "original": true, + "season_guid": "GRZX8KNGY", + "variant": "" + }, + { + "audio_locale": "fr-FR", + "guid": "GRNVDG1X6", + "is_premium_only": true, + "media_guid": "GVMF03745", + "original": false, + "season_guid": "GRDK3JDGY", + "variant": "" + }, + { + "audio_locale": "es-419", + "guid": "GR0X4730Y", + "is_premium_only": true, + "media_guid": "GXMFQVE08", + "original": false, + "season_guid": "GR24J4526", + "variant": "" + }, + { + "audio_locale": "pt-BR", + "guid": "G61X1Q8K6", + "is_premium_only": true, + "media_guid": "GPPFK39D7", + "original": false, + "season_guid": "GRG5M542R", + "variant": "" + }, + { + "audio_locale": "de-DE", + "guid": "GY8DP88GY", + "is_premium_only": true, + "media_guid": "GVMF0DX1K", + "original": false, + "season_guid": "GRZJVPW86", + "variant": "" + }, + { + "audio_locale": "en-US", + "guid": "GJWU2XG27", + "is_premium_only": true, + "media_guid": "GM8FX47XM", + "original": false, + "season_guid": "GR9PC2XG2", + "variant": "" + }, + { + "audio_locale": "hi-IN", + "guid": "GMKUXVG05", + "is_premium_only": true, + "media_guid": "GPPFKGDM0", + "original": false, + "season_guid": "GY19CP2NE", + "variant": "" + }, + { + "audio_locale": "en-IN", + "guid": "G31UX9Z8Q", + "is_premium_only": true, + "media_guid": "G8MFNM05E", + "original": false, + "season_guid": "GRJQC18Z8", + "variant": "" + }, + { + "audio_locale": "ta-IN", + "guid": "G8WUN19W5", + "is_premium_only": true, + "media_guid": "GQ9FG349W", + "original": false, + "season_guid": "GR49C79XN", + "variant": "" + }, + { + "audio_locale": "te-IN", + "guid": "G50UZVJ42", + "is_premium_only": true, + "media_guid": "G07FNKQ03", + "original": false, + "season_guid": "GY19CPDEM", + "variant": "" + } + ] + }, + "new": true, + "new_content": false, + "external_id": "EPI.919851", + "promo_description": "", + "__class__": "panel", + "__href__": "", + "images": { + "thumbnail": [ + [ + { + "height": 180, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe", + "type": "thumbnail", + "width": 320 + }, + { + "height": 338, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe", + "type": "thumbnail", + "width": 600 + }, + { + "height": 360, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe", + "type": "thumbnail", + "width": 640 + }, + { + "height": 450, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe", + "type": "thumbnail", + "width": 800 + }, + { + "height": 675, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe", + "type": "thumbnail", + "width": 1200 + }, + { + "height": 810, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe", + "type": "thumbnail", + "width": 1440 + }, + { + "height": 900, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe", + "type": "thumbnail", + "width": 1600 + }, + { + "height": 1080, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe", + "type": "thumbnail", + "width": 1920 + } + ] + ] + }, + "slug_title": "eden", + "__actions__": {}, + "__links__": { + "episode/season": { + "href": "/cms/v2/FR/M2/-/seasons/GY19CPDEM" + }, + "episode/series": { + "href": "/cms/v2/FR/M2/-/series/GY8VEQ95Y" + }, + "resource": { + "href": "/cms/v2/FR/M2/-/episodes/G50UZVJ42" + }, + "resource/channel": { + "href": "/cms/v2/FR/M2/-/channels/crunchyroll" + } + }, + "channel_id": "crunchyroll", + "linked_resource_key": "cms:/episodes/G50UZVJ42", + "id": "G50UZVJ42", + "promo_title": "", + "title": "Paradis", + "last_public": "2024-01-24T00:12:30Z" + }, + { + "external_id": "EPI.919848", + "__class__": "panel", + "last_public": "2024-01-24T00:12:17Z", + "new": true, + "new_content": false, + "images": { + "thumbnail": [ + [ + { + "height": 180, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe", + "type": "thumbnail", + "width": 320 + }, + { + "height": 338, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe", + "type": "thumbnail", + "width": 600 + }, + { + "height": 360, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe", + "type": "thumbnail", + "width": 640 + }, + { + "height": 450, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe", + "type": "thumbnail", + "width": 800 + }, + { + "height": 675, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe", + "type": "thumbnail", + "width": 1200 + }, + { + "height": 810, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe", + "type": "thumbnail", + "width": 1440 + }, + { + "height": 900, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe", + "type": "thumbnail", + "width": 1600 + }, + { + "height": 1080, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/76fafc1ca9fc72457cc493dbc222dade.jpe", + "type": "thumbnail", + "width": 1920 + } + ] + ] + }, + "__actions__": {}, + "promo_description": "", + "slug_title": "when-the-sakura-blooms", + "id": "GZ7UVENX5", + "promo_title": "", + "title": "Quand fleurissent les cerisiers", + "channel_id": "crunchyroll", + "episode_metadata": { + "ad_breaks": [ + { + "offset_ms": 0, + "type": "preroll" + }, + { + "offset_ms": 360016, + "type": "midroll" + }, + { + "offset_ms": 720032, + "type": "midroll" + }, + { + "offset_ms": 1080048, + "type": "midroll" + } + ], + "audio_locale": "ta-IN", + "availability_ends": "9998-11-30T08:00:00Z", + "availability_notes": "", + "availability_starts": "9998-11-30T08:00:00Z", + "available_date": null, + "available_offline": true, + "closed_captions_available": false, + "duration_ms": 1440066, + "eligible_region": "FR", + "episode": "18", + "episode_air_date": "2018-05-19T23:30:00+09:00", + "episode_number": 18, + "extended_maturity_rating": {}, + "free_available_date": "9998-11-30T08:00:00Z", + "identifier": "GY8VEQ95Y|S1|E18", + "is_clip": false, + "is_dubbed": true, + "is_mature": false, + "is_premium_only": true, + "is_subbed": true, + "mature_blocked": false, + "maturity_ratings": [ + "TV-14" + ], + "premium_available_date": "2024-01-24T05:30:00Z", + "premium_date": null, + "season_id": "GR49C79XN", + "season_number": 1, + "season_slug_title": "darling-in-the-franxx-tamil-dub", + "season_title": "DARLING in the FRANXX", + "sequence_number": 18, + "series_id": "GY8VEQ95Y", + "series_slug_title": "darling-in-the-franxx", + "series_title": "DARLING in the FRANXX", + "subtitle_locales": [], + "upload_date": "2018-05-19T23:30:00+09:00", + "versions": [ + { + "audio_locale": "ja-JP", + "guid": "GYQW44EEY", + "is_premium_only": false, + "media_guid": "G07FNEEXN", + "original": true, + "season_guid": "GRZX8KNGY", + "variant": "" + }, + { + "audio_locale": "fr-FR", + "guid": "GYMEXW1V6", + "is_premium_only": true, + "media_guid": "G07FNVKJ7", + "original": false, + "season_guid": "GRDK3JDGY", + "variant": "" + }, + { + "audio_locale": "es-419", + "guid": "GR7931Q36", + "is_premium_only": true, + "media_guid": "G1QF4K7M8", + "original": false, + "season_guid": "GR24J4526", + "variant": "" + }, + { + "audio_locale": "pt-BR", + "guid": "GYMEW8086", + "is_premium_only": true, + "media_guid": "G8MFNKJ0M", + "original": false, + "season_guid": "GRG5M542R", + "variant": "" + }, + { + "audio_locale": "de-DE", + "guid": "GRG5MDW4R", + "is_premium_only": true, + "media_guid": "G1QF48JZE", + "original": false, + "season_guid": "GRZJVPW86", + "variant": "" + }, + { + "audio_locale": "en-US", + "guid": "GN7UD79DJ", + "is_premium_only": true, + "media_guid": "GVMF0Z502", + "original": false, + "season_guid": "GR9PC2XG2", + "variant": "" + }, + { + "audio_locale": "hi-IN", + "guid": "G9DUE35WJ", + "is_premium_only": true, + "media_guid": "G1QF4M98D", + "original": false, + "season_guid": "GY19CP2NE", + "variant": "" + }, + { + "audio_locale": "en-IN", + "guid": "GX9UQ0JN5", + "is_premium_only": true, + "media_guid": "GJKF2V94Z", + "original": false, + "season_guid": "GRJQC18Z8", + "variant": "" + }, + { + "audio_locale": "ta-IN", + "guid": "GZ7UVENX5", + "is_premium_only": true, + "media_guid": "G5JFZVJ43", + "original": false, + "season_guid": "GR49C79XN", + "variant": "" + }, + { + "audio_locale": "te-IN", + "guid": "GWDU8JNKP", + "is_premium_only": true, + "media_guid": "GEMFZD5G8", + "original": false, + "season_guid": "GY19CPDEM", + "variant": "" + } + ] + }, + "description": "Hachi annonce à Ichigo que l'unité 13 va devoir quitter Mistiltein. Avant le grand départ, Hiro a une idée pour célébrer le rapprochement entre Kokoro et Mitsuru.", + "type": "episode", + "__links__": { + "episode/season": { + "href": "/cms/v2/FR/M2/-/seasons/GR49C79XN" + }, + "episode/series": { + "href": "/cms/v2/FR/M2/-/series/GY8VEQ95Y" + }, + "resource": { + "href": "/cms/v2/FR/M2/-/episodes/GZ7UVENX5" + }, + "resource/channel": { + "href": "/cms/v2/FR/M2/-/channels/crunchyroll" + } + }, + "slug": "", + "__href__": "", + "linked_resource_key": "cms:/episodes/GZ7UVENX5" + }, + { + "episode_metadata": { + "ad_breaks": [ + { + "offset_ms": 0, + "type": "preroll" + }, + { + "offset_ms": 360026, + "type": "midroll" + }, + { + "offset_ms": 720052, + "type": "midroll" + }, + { + "offset_ms": 1080078, + "type": "midroll" + } + ], + "audio_locale": "ta-IN", + "availability_ends": "9998-11-30T08:00:00Z", + "availability_notes": "", + "availability_starts": "9998-11-30T08:00:00Z", + "available_date": null, + "available_offline": true, + "closed_captions_available": false, + "duration_ms": 1440107, + "eligible_region": "FR", + "episode": "17", + "episode_air_date": "2018-05-12T23:30:00+09:00", + "episode_number": 17, + "extended_maturity_rating": {}, + "free_available_date": "9998-11-30T08:00:00Z", + "identifier": "GY8VEQ95Y|S1|E17", + "is_clip": false, + "is_dubbed": true, + "is_mature": false, + "is_premium_only": true, + "is_subbed": true, + "mature_blocked": false, + "maturity_ratings": [ + "TV-14" + ], + "premium_available_date": "2024-01-24T05:30:00Z", + "premium_date": null, + "season_id": "GR49C79XN", + "season_number": 1, + "season_slug_title": "darling-in-the-franxx-tamil-dub", + "season_title": "DARLING in the FRANXX", + "sequence_number": 17, + "series_id": "GY8VEQ95Y", + "series_slug_title": "darling-in-the-franxx", + "series_title": "DARLING in the FRANXX", + "subtitle_locales": [], + "upload_date": "2018-05-12T23:30:00+09:00", + "versions": [ + { + "audio_locale": "ja-JP", + "guid": "G69VPDJ3Y", + "is_premium_only": false, + "media_guid": "GWMF8ZZ3M", + "original": true, + "season_guid": "GRZX8KNGY", + "variant": "" + }, + { + "audio_locale": "fr-FR", + "guid": "GRNVDG1X6", + "is_premium_only": true, + "media_guid": "GVMF03745", + "original": false, + "season_guid": "GRDK3JDGY", + "variant": "" + }, + { + "audio_locale": "es-419", + "guid": "GR0X4730Y", + "is_premium_only": true, + "media_guid": "GXMFQVE08", + "original": false, + "season_guid": "GR24J4526", + "variant": "" + }, + { + "audio_locale": "pt-BR", + "guid": "G61X1Q8K6", + "is_premium_only": true, + "media_guid": "GPPFK39D7", + "original": false, + "season_guid": "GRG5M542R", + "variant": "" + }, + { + "audio_locale": "de-DE", + "guid": "GY8DP88GY", + "is_premium_only": true, + "media_guid": "GVMF0DX1K", + "original": false, + "season_guid": "GRZJVPW86", + "variant": "" + }, + { + "audio_locale": "en-US", + "guid": "GJWU2XG27", + "is_premium_only": true, + "media_guid": "GM8FX47XM", + "original": false, + "season_guid": "GR9PC2XG2", + "variant": "" + }, + { + "audio_locale": "hi-IN", + "guid": "GMKUXVG05", + "is_premium_only": true, + "media_guid": "GPPFKGDM0", + "original": false, + "season_guid": "GY19CP2NE", + "variant": "" + }, + { + "audio_locale": "en-IN", + "guid": "G31UX9Z8Q", + "is_premium_only": true, + "media_guid": "G8MFNM05E", + "original": false, + "season_guid": "GRJQC18Z8", + "variant": "" + }, + { + "audio_locale": "ta-IN", + "guid": "G8WUN19W5", + "is_premium_only": true, + "media_guid": "GQ9FG349W", + "original": false, + "season_guid": "GR49C79XN", + "variant": "" + }, + { + "audio_locale": "te-IN", + "guid": "G50UZVJ42", + "is_premium_only": true, + "media_guid": "G07FNKQ03", + "original": false, + "season_guid": "GY19CPDEM", + "variant": "" + } + ] + }, + "last_public": "2024-01-24T00:12:06Z", + "external_id": "EPI.919847", + "__links__": { + "episode/season": { + "href": "/cms/v2/FR/M2/-/seasons/GR49C79XN" + }, + "episode/series": { + "href": "/cms/v2/FR/M2/-/series/GY8VEQ95Y" + }, + "resource": { + "href": "/cms/v2/FR/M2/-/episodes/G8WUN19W5" + }, + "resource/channel": { + "href": "/cms/v2/FR/M2/-/channels/crunchyroll" + } + }, + "title": "Paradis", + "images": { + "thumbnail": [ + [ + { + "height": 180, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe", + "type": "thumbnail", + "width": 320 + }, + { + "height": 338, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe", + "type": "thumbnail", + "width": 600 + }, + { + "height": 360, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe", + "type": "thumbnail", + "width": 640 + }, + { + "height": 450, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe", + "type": "thumbnail", + "width": 800 + }, + { + "height": 675, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe", + "type": "thumbnail", + "width": 1200 + }, + { + "height": 810, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe", + "type": "thumbnail", + "width": 1440 + }, + { + "height": 900, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe", + "type": "thumbnail", + "width": 1600 + }, + { + "height": 1080, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/5d7937a156756c011b6e9263ff8fb145.jpe", + "type": "thumbnail", + "width": 1920 + } + ] + ] + }, + "__href__": "", + "new": true, + "type": "episode", + "slug_title": "eden", + "__class__": "panel", + "linked_resource_key": "cms:/episodes/G8WUN19W5", + "description": "Les enfants reçoivent des visiteurs inattendus dans la cage à oiseaux. Leur indépendance fraîchement acquise et les idées qui leur sont venues ne sont peut-être pas du goût de papa…", + "id": "G8WUN19W5", + "__actions__": {}, + "channel_id": "crunchyroll", + "new_content": false, + "promo_title": "", + "promo_description": "", + "slug": "" + }, + { + "promo_title": "", + "new": true, + "title": "Le prélude à la révolte", + "__actions__": {}, + "promo_description": "", + "last_public": "2024-01-24T00:04:55Z", + "new_content": false, + "type": "episode", + "description": "Faisant porter la responsabilité des récents événements aux sorciers et aux immigrants, le capitaine Konrad chauffe le peuple de sa ville à blanc et l'incite à les traquer. Cela dit, il semble que la réalité soit tout autre, et l'on commence à se demander si Konrad ne dissimule pas un terrible secret…", + "__href__": "", + "images": { + "thumbnail": [ + [ + { + "height": 180, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/320x180/catalog/crunchyroll/54221e1b560e65309ecccc2169b88771.jpe", + "type": "thumbnail", + "width": 320 + }, + { + "height": 338, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/600x338/catalog/crunchyroll/54221e1b560e65309ecccc2169b88771.jpe", + "type": "thumbnail", + "width": 600 + }, + { + "height": 360, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/640x360/catalog/crunchyroll/54221e1b560e65309ecccc2169b88771.jpe", + "type": "thumbnail", + "width": 640 + }, + { + "height": 450, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/800x450/catalog/crunchyroll/54221e1b560e65309ecccc2169b88771.jpe", + "type": "thumbnail", + "width": 800 + }, + { + "height": 675, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1200x675/catalog/crunchyroll/54221e1b560e65309ecccc2169b88771.jpe", + "type": "thumbnail", + "width": 1200 + }, + { + "height": 810, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1440x810/catalog/crunchyroll/54221e1b560e65309ecccc2169b88771.jpe", + "type": "thumbnail", + "width": 1440 + }, + { + "height": 900, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1600x900/catalog/crunchyroll/54221e1b560e65309ecccc2169b88771.jpe", + "type": "thumbnail", + "width": 1600 + }, + { + "height": 1080, + "source": "https://www.crunchyroll.com/imgsrv/display/thumbnail/1920x1080/catalog/crunchyroll/54221e1b560e65309ecccc2169b88771.jpe", + "type": "thumbnail", + "width": 1920 + } + ] + ] + }, + "slug_title": "overture-of-turbulence--storm-", + "__class__": "panel", + "linked_resource_key": "cms:/episodes/GEVUZD1XN", + "external_id": "EPI.919552", + "__links__": { + "episode/season": { + "href": "/cms/v2/FR/M2/-/seasons/GY09CXPVK" + }, + "episode/series": { + "href": "/cms/v2/FR/M2/-/series/G6W4MEZ0R" + }, + "resource": { + "href": "/cms/v2/FR/M2/-/episodes/GEVUZD1XN" + }, + "resource/channel": { + "href": "/cms/v2/FR/M2/-/channels/crunchyroll" + } + }, + "channel_id": "crunchyroll", + "slug": "", + "episode_metadata": { + "ad_breaks": [ + { + "offset_ms": 0, + "type": "preroll" + }, + { + "offset_ms": 367536, + "type": "midroll" + }, + { + "offset_ms": 735072, + "type": "midroll" + }, + { + "offset_ms": 1102608, + "type": "midroll" + } + ], + "audio_locale": "te-IN", + "availability_ends": "9998-11-30T08:00:00Z", + "availability_notes": "", + "availability_starts": "9998-11-30T08:00:00Z", + "available_date": null, + "available_offline": true, + "closed_captions_available": false, + "duration_ms": 1470145, + "eligible_region": "FR", + "episode": "13", + "episode_air_date": "2018-12-29T17:35:00+09:00", + "episode_number": 13, + "extended_maturity_rating": {}, + "free_available_date": "9998-11-30T08:00:00Z", + "identifier": "G6W4MEZ0R|S1|E13", + "is_clip": false, + "is_dubbed": true, + "is_mature": false, + "is_premium_only": true, + "is_subbed": true, + "mature_blocked": false, + "maturity_ratings": [ + "TV-14" + ], + "premium_available_date": "2024-01-17T05:00:00Z", + "premium_date": null, + "season_id": "GY09CXPVK", + "season_number": 1, + "season_slug_title": "radiant-telugu-dub", + "season_title": "RADIANT", + "sequence_number": 13, + "series_id": "G6W4MEZ0R", + "series_slug_title": "radiant", + "series_title": "RADIANT", + "subtitle_locales": [], + "upload_date": "2018-12-29T17:35:00+09:00", + "versions": [ + { + "audio_locale": "ja-JP", + "guid": "G65PZN536", + "is_premium_only": true, + "media_guid": "GM8FXNXQK", + "original": true, + "season_guid": "G6G5VG426", + "variant": "" + }, + { + "audio_locale": "es-419", + "guid": "GEVUZPEQ5", + "is_premium_only": true, + "media_guid": "GXMFQD04N", + "original": false, + "season_guid": "GYVNC2DV7", + "variant": "" + }, + { + "audio_locale": "pt-BR", + "guid": "GG1U2MGV4", + "is_premium_only": true, + "media_guid": "G71F459DM", + "original": false, + "season_guid": "GR3VC2MPN", + "variant": "" + }, + { + "audio_locale": "en-US", + "guid": "GMKUXW3EW", + "is_premium_only": true, + "media_guid": "GPPFKEX8E", + "original": false, + "season_guid": "GR19CP3M5", + "variant": "" + }, + { + "audio_locale": "hi-IN", + "guid": "GJWU2VXDE", + "is_premium_only": true, + "media_guid": "GM8FXV4DG", + "original": false, + "season_guid": "G675CD0Q1", + "variant": "" + }, + { + "audio_locale": "ta-IN", + "guid": "GG1U2NK48", + "is_premium_only": true, + "media_guid": "G71F41GMQ", + "original": false, + "season_guid": "G6GGCV9K4", + "variant": "" + }, + { + "audio_locale": "te-IN", + "guid": "GEVUZD1XN", + "is_premium_only": true, + "media_guid": "GXMFQWVJZ", + "original": false, + "season_guid": "GY09CXPVK", + "variant": "" + } + ] + }, + "id": "GEVUZD1XN" + } + ], + "__class__": "disc_browse", + "__href__": "/content/v1/browse?channel_id=crunchyroll\u0026locale=fr-FR\u0026n=25\u0026sort_by=newly_added\u0026start=0\u0026type=episode", + "__resource_key__": "content:/browse?channel_id=crunchyroll\u0026locale=fr-FR\u0026n=25\u0026sort_by=newly_added\u0026start=0\u0026type=episode", + "__links__": { + "continuation": { + "href": "/content/v1/browse?channel_id=crunchyroll\u0026locale=fr-FR\u0026n=25\u0026sort_by=newly_added\u0026start=25\u0026type=episode" + } + }, + "__actions__": {} +} \ No newline at end of file