mirror of
https://github.com/Benexl/FastAnime.git
synced 2025-12-12 15:50:01 -08:00
cleaned up the codebase plus did some minor optimizations
This commit is contained in:
@@ -9,15 +9,17 @@ class AnimeScreenController:
|
||||
def __init__(self, model:AnimeScreenModel):
|
||||
self.model = model
|
||||
self.view = AnimeScreenView(controller=self, model=self.model)
|
||||
# self.update_anime_view()
|
||||
|
||||
def get_view(self) -> AnimeScreenView:
|
||||
return self.view
|
||||
|
||||
def update_anime_view(self,id):
|
||||
def update_anime_view(self,id:int):
|
||||
if self.model.anime_id != id:
|
||||
data = self.model.get_anime_data(id)
|
||||
if data[0]:
|
||||
self.model.anime_id = id
|
||||
Clock.schedule_once(lambda _:self.view.update_layout(data[1]["data"]["Page"]["media"][0]))
|
||||
|
||||
def update_my_list(self,*args):
|
||||
self.model.update_user_anime_list(*args)
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ from View.components.media_card.media_card import MediaCardsContainer
|
||||
from Utility import show_notification
|
||||
from kivy.clock import Clock
|
||||
|
||||
# TODO:Move the update home screen to homescreen.py
|
||||
class HomeScreenController:
|
||||
"""
|
||||
The `MainScreenController` class represents a controller implementation.
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import json
|
||||
import os
|
||||
from Model.base_model import BaseScreenModel
|
||||
from Utility import show_notification
|
||||
from libs.anilist import AniList
|
||||
from Utility.media_card_loader import MediaCardLoader
|
||||
from kivy.storage.jsonstore import JsonStore
|
||||
@@ -9,7 +8,7 @@ from kivy.storage.jsonstore import JsonStore
|
||||
user_data= JsonStore("user_data.json")
|
||||
class AnimeScreenModel(BaseScreenModel):
|
||||
data = {}
|
||||
id = 0
|
||||
anime_id = 0
|
||||
|
||||
def media_card_generator(self):
|
||||
for anime_item in self.data["data"]["Page"]["media"]:
|
||||
@@ -19,8 +18,4 @@ class AnimeScreenModel(BaseScreenModel):
|
||||
def get_anime_data(self,id:int):
|
||||
return AniList.get_anime(id)
|
||||
|
||||
def get_anime_data_(self):
|
||||
with open("anime.json","r") as file:
|
||||
|
||||
return json.load(file)
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import os
|
||||
from Model.base_model import BaseScreenModel
|
||||
from libs.anilist import AniList
|
||||
from Utility.media_card_loader import MediaCardLoader
|
||||
from kivy.storage.jsonstore import JsonStore
|
||||
|
||||
user_data= JsonStore("user_data.json")
|
||||
class HomeScreenModel(BaseScreenModel):
|
||||
|
||||
|
||||
class HomeScreenModel(BaseScreenModel):
|
||||
def get_trending_anime(self):
|
||||
success,data = AniList.get_trending()
|
||||
if success:
|
||||
|
||||
20
app/Utility/anilist_data_helper.py
Normal file
20
app/Utility/anilist_data_helper.py
Normal file
@@ -0,0 +1,20 @@
|
||||
from datetime import datetime
|
||||
|
||||
# TODO: Add formating options for the final date
|
||||
def format_anilist_date_object(anilist_date_object:dict|None):
|
||||
if anilist_date_object:
|
||||
return f"{anilist_date_object['day']}/{anilist_date_object['month']}/{anilist_date_object['year']}"
|
||||
else:
|
||||
return "Unknown"
|
||||
|
||||
def format_anilist_timestamp(anilist_timestamp:int|None):
|
||||
if anilist_timestamp:
|
||||
return datetime.fromtimestamp(anilist_timestamp).strftime("%d/%m/%Y %H:%M:%S")
|
||||
else:
|
||||
return "Unknown"
|
||||
|
||||
def format_list_data_with_comma(data:list|None):
|
||||
if data:
|
||||
return ", ".join(data)
|
||||
else:
|
||||
return "None"
|
||||
@@ -1,33 +1,28 @@
|
||||
from html.parser import HTMLParser
|
||||
import os
|
||||
from kivy.storage.jsonstore import JsonStore
|
||||
from collections import deque
|
||||
import threading
|
||||
from time import sleep
|
||||
from View.components import MediaCard
|
||||
import threading
|
||||
|
||||
from pytube import YouTube
|
||||
from kivy.loader import _ThreadPool
|
||||
|
||||
from kivy.clock import Clock
|
||||
from kivy.cache import Cache
|
||||
from datetime import date,datetime
|
||||
from kivy.loader import _ThreadPool
|
||||
from kivy.logger import Logger
|
||||
|
||||
from View.components import MediaCard
|
||||
from Utility import anilist_data_helper, user_data_helper
|
||||
|
||||
|
||||
# Register anime cache in memory
|
||||
Cache.register("anime")
|
||||
today = date.today()
|
||||
now = datetime.now()
|
||||
|
||||
user_data = JsonStore("user_data.json")
|
||||
my_list = user_data.get("my_list")["list"] # returns a list of anime ids
|
||||
user_anime_list = user_data_helper.get_user_animelist()
|
||||
|
||||
yt_cache = JsonStore("yt_cache.json")
|
||||
yt_stream_links = []
|
||||
name_of_yt_cache = f"{today}{0 if now.hour>=12 else 1}"
|
||||
if yt_streams:=yt_cache.get("yt_stream_links").get(name_of_yt_cache):
|
||||
yt_stream_links = yt_streams
|
||||
|
||||
if yt_stream_links:
|
||||
for link in yt_stream_links:
|
||||
yt_stream_links = user_data_helper.get_anime_trailer_cache()
|
||||
for link in yt_stream_links:
|
||||
Cache.append("anime",link[0],tuple(link[1]))
|
||||
|
||||
|
||||
# for youtube video links gotten from from pytube which is blocking
|
||||
class MediaCardDataLoader(object):
|
||||
def __init__(self):
|
||||
@@ -78,15 +73,15 @@ class MediaCardDataLoader(object):
|
||||
|
||||
def cached_fetch_data(self,yt_watch_url):
|
||||
data:tuple = Cache.get("anime",yt_watch_url) # type: ignore # trailer_url is the yt_watch_link
|
||||
|
||||
if not data[0]:
|
||||
yt = YouTube(yt_watch_url)
|
||||
preview_image = yt.thumbnail_url
|
||||
try:
|
||||
video_stream_url = yt.streams.filter(progressive=True,file_extension="mp4")[-1].url
|
||||
# sleep(0.5)
|
||||
data = preview_image,video_stream_url
|
||||
yt_stream_links.append((yt_watch_url,data))
|
||||
yt_cache.put("yt_stream_links",**{f"{name_of_yt_cache}":yt_stream_links})
|
||||
user_data_helper.update_anime_trailer_cache(yt_stream_links)
|
||||
except:
|
||||
data = preview_image,None
|
||||
return data
|
||||
@@ -106,6 +101,7 @@ class MediaCardDataLoader(object):
|
||||
|
||||
self._q_done.appendleft((yt_watch_link, data))
|
||||
self._trigger_update()
|
||||
|
||||
def _update(self,*largs):
|
||||
if self._start_wanted:
|
||||
if not self._running:
|
||||
@@ -145,33 +141,51 @@ class MediaCardDataLoader(object):
|
||||
|
||||
media_card = MediaCard()
|
||||
media_card.anime_id = anime_item["id"]
|
||||
|
||||
# TODO: ADD language preference
|
||||
if anime_item["title"]["english"]:
|
||||
media_card.title = anime_item["title"]["english"]
|
||||
else:
|
||||
media_card.title = anime_item["title"]["romaji"]
|
||||
# if anime_item.get("cover_image"):
|
||||
|
||||
media_card.cover_image_url = anime_item["coverImage"]["medium"]
|
||||
|
||||
media_card.popularity = str(anime_item["popularity"])
|
||||
|
||||
media_card.favourites = str(anime_item["favourites"])
|
||||
|
||||
media_card.episodes = str(anime_item["episodes"])
|
||||
|
||||
if anime_item.get("description"):
|
||||
media_card.description = anime_item["description"]
|
||||
media_card.first_aired_on = f'{anime_item["startDate"]["day"]}-{anime_item["startDate"]["month"]}-{anime_item["startDate"]["year"]}'
|
||||
media_card.studios = ", ".join([studio["name"] for studio in anime_item["studios"]["nodes"]])
|
||||
else:
|
||||
media_card.description = "None"
|
||||
|
||||
# TODO: switch to season and year
|
||||
media_card.first_aired_on = f'{anilist_data_helper.format_anilist_date_object(anime_item["startDate"])}'
|
||||
|
||||
# TODO: update it to separate studio and producers
|
||||
media_card.studios = anilist_data_helper.format_list_data_with_comma([studio["name"] for studio in anime_item["studios"]["nodes"]])
|
||||
|
||||
if anime_item.get("tags"):
|
||||
media_card.tags = ", ".join([tag["name"] for tag in anime_item["tags"]])
|
||||
media_card.tags = anilist_data_helper.format_list_data_with_comma([tag["name"] for tag in anime_item["tags"]])
|
||||
|
||||
media_card.media_status = anime_item["status"]
|
||||
|
||||
if anime_item.get("genres"):
|
||||
media_card.genres = ",".join(anime_item["genres"])
|
||||
# media_card.characters =
|
||||
if anime_item["id"] in my_list:
|
||||
media_card.genres = anilist_data_helper.format_list_data_with_comma(anime_item["genres"])
|
||||
|
||||
if anime_item["id"] in user_anime_list:
|
||||
media_card.is_in_my_list = True
|
||||
|
||||
if anime_item["averageScore"]:
|
||||
stars = int(anime_item["averageScore"]/100*6)
|
||||
if stars:
|
||||
for i in range(stars):
|
||||
media_card.stars[i] = 1
|
||||
|
||||
# TODO: ADD a default image if trailer not available
|
||||
# Setting up trailer info to be gotten if available
|
||||
if anime_item["trailer"]:
|
||||
yt_watch_link = "https://youtube.com/watch?v="+anime_item["trailer"]["id"]
|
||||
data = Cache.get("anime",yt_watch_link) # type: ignore # trailer_url is the yt_watch_link
|
||||
@@ -220,5 +234,5 @@ class LoaderThreadPool(MediaCardDataLoader):
|
||||
self.pool.add_task(self._load, parameters)
|
||||
|
||||
MediaCardLoader = LoaderThreadPool()
|
||||
# Logger.info('Loader: using a thread pool of {} workers'.format(
|
||||
# Loader.num_workers))
|
||||
Logger.info('MediaCardLoader: using a thread pool of {} workers'.format(
|
||||
MediaCardLoader.num_workers))
|
||||
42
app/Utility/user_data_helper.py
Normal file
42
app/Utility/user_data_helper.py
Normal file
@@ -0,0 +1,42 @@
|
||||
"""
|
||||
Contains Helper functions to read and write the user data files
|
||||
"""
|
||||
|
||||
|
||||
from kivy.storage.jsonstore import JsonStore
|
||||
from datetime import date,datetime
|
||||
|
||||
|
||||
today = date.today()
|
||||
now = datetime.now()
|
||||
|
||||
user_data = JsonStore("user_data.json")
|
||||
yt_cache = JsonStore("yt_cache.json")
|
||||
|
||||
|
||||
# Get the user data
|
||||
def get_user_animelist():
|
||||
try:
|
||||
return user_data.get("my_list")["list"] # returns a list of anime ids
|
||||
except:
|
||||
return []
|
||||
|
||||
def update_user_anime_list(new_list:list):
|
||||
try:
|
||||
user_data.put("my_list",list=set(new_list))
|
||||
except:
|
||||
pass
|
||||
|
||||
def get_anime_trailer_cache():
|
||||
try:
|
||||
name_of_yt_cache = f"{today}{0 if now.hour>=12 else 1}"
|
||||
return yt_cache["yt_stream_links"][f"{name_of_yt_cache}"]
|
||||
except:
|
||||
return []
|
||||
|
||||
def update_anime_trailer_cache(yt_stream_links:list):
|
||||
try:
|
||||
name_of_yt_cache = f"{today}{0 if now.hour>=12 else 1}"
|
||||
yt_cache.put("yt_stream_links",**{f"{name_of_yt_cache}":yt_stream_links})
|
||||
except:
|
||||
pass
|
||||
@@ -1,181 +1,10 @@
|
||||
from kivy.properties import ObjectProperty,StringProperty,DictProperty,ListProperty
|
||||
from datetime import datetime
|
||||
|
||||
from kivy.properties import ObjectProperty,DictProperty
|
||||
|
||||
from Utility import anilist_data_helper
|
||||
from View.base_screen import BaseScreenView
|
||||
from kivymd.uix.boxlayout import MDBoxLayout
|
||||
from kivymd.uix.label import MDLabel
|
||||
from kivy.utils import QueryDict,get_hex_from_color
|
||||
from collections import defaultdict
|
||||
|
||||
from .components import AnimdlStreamDialog,DownloadAnimeDialog
|
||||
|
||||
# TODO:move the rest of the classes to their own files
|
||||
|
||||
class RankingsBar(MDBoxLayout):
|
||||
rankings = DictProperty(
|
||||
{
|
||||
"Popularity":0,
|
||||
"Favourites":0,
|
||||
"AverageScore":0,
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
class AnimeDescription(MDBoxLayout):
|
||||
description = StringProperty()
|
||||
|
||||
|
||||
class AnimeCharacter(MDBoxLayout):
|
||||
voice_actors = ObjectProperty({
|
||||
"name":"",
|
||||
"image":""
|
||||
})
|
||||
character = ObjectProperty({
|
||||
"name":"",
|
||||
"gender":"",
|
||||
"dateOfBirth":"",
|
||||
"image":"",
|
||||
"age":"",
|
||||
"description":""
|
||||
})
|
||||
|
||||
|
||||
class AnimeCharacters(MDBoxLayout):
|
||||
container = ObjectProperty()
|
||||
characters = ListProperty()
|
||||
def on_characters(self,instance,characters):
|
||||
format_date = lambda date_: f"{date_['day']}/{date_['month']}/{date_['year']}" if date_ else ""
|
||||
self.container.clear_widgets()
|
||||
for character_ in characters: # character (character,actor)
|
||||
character = character_[0]
|
||||
actors = character_[1]
|
||||
|
||||
anime_character = AnimeCharacter()
|
||||
anime_character.character = {
|
||||
"name":character["name"]["full"],
|
||||
"gender":character["gender"],
|
||||
"dateOfBirth":format_date(character["dateOfBirth"]),
|
||||
"image":character["image"]["medium"],
|
||||
"age":character["age"],
|
||||
"description":character["description"]
|
||||
}
|
||||
anime_character.voice_actors = {
|
||||
"name":", ".join([actor["name"]["full"] for actor in actors])
|
||||
}
|
||||
|
||||
# anime_character.voice_actor =
|
||||
self.container.add_widget(anime_character)
|
||||
|
||||
|
||||
class AnimeReview(MDBoxLayout):
|
||||
review = ObjectProperty({
|
||||
"username":"",
|
||||
"avatar":"",
|
||||
"summary":""
|
||||
})
|
||||
|
||||
|
||||
class AnimeReviews(MDBoxLayout):
|
||||
reviews = ListProperty()
|
||||
container = ObjectProperty()
|
||||
def on_reviews(self,instance,reviews):
|
||||
self.container.clear_widgets()
|
||||
for review in reviews:
|
||||
review_ = AnimeReview()
|
||||
review_.review = {
|
||||
"username":review["user"]["name"],
|
||||
"avatar":review["user"]["avatar"]["medium"],
|
||||
"summary":review["summary"]
|
||||
}
|
||||
self.container.add_widget(review_)
|
||||
|
||||
|
||||
class AnimeHeader(MDBoxLayout):
|
||||
titles = StringProperty()
|
||||
banner_image = StringProperty()
|
||||
|
||||
|
||||
class SideBarLabel(MDLabel):
|
||||
pass
|
||||
|
||||
|
||||
class SideBarHeaderLabel(MDLabel):
|
||||
pass
|
||||
|
||||
|
||||
class AnimeSideBar(MDBoxLayout):
|
||||
screen = ObjectProperty()
|
||||
image = StringProperty()
|
||||
alternative_titles = DictProperty({
|
||||
"synonyms":"",
|
||||
"english":"",
|
||||
"japanese":"",
|
||||
})
|
||||
information = DictProperty({
|
||||
"episodes":"",
|
||||
"status":"",
|
||||
"aired":"",
|
||||
"nextAiringEpisode":"",
|
||||
"premiered":"",
|
||||
"broadcast":"",
|
||||
"countryOfOrigin":"",
|
||||
"hashtag":"",
|
||||
"studios":"", # { "name": "Sunrise", "isAnimationStudio": true }
|
||||
"source":"",
|
||||
"genres":"",
|
||||
"duration":"",
|
||||
"producers":"",
|
||||
})
|
||||
statistics = ListProperty()
|
||||
statistics_container = ObjectProperty()
|
||||
external_links = ListProperty()
|
||||
external_links_container = ObjectProperty()
|
||||
tags = ListProperty()
|
||||
tags_container = ObjectProperty()
|
||||
|
||||
def on_statistics(self,instance,value):
|
||||
self.statistics_container.clear_widgets()
|
||||
header = SideBarHeaderLabel()
|
||||
header.text = "Rankings"
|
||||
self.statistics_container.add_widget(header)
|
||||
for stat in value:
|
||||
# stat (rank,context)
|
||||
label = SideBarLabel()
|
||||
label.text = "[color={}]{}:[/color] {}".format(
|
||||
get_hex_from_color(label.theme_cls.primaryColor),
|
||||
stat[0].capitalize(),
|
||||
f"{stat[1]}")
|
||||
self.statistics_container.add_widget(label)
|
||||
|
||||
def on_tags(self,instance,value):
|
||||
self.tags_container.clear_widgets()
|
||||
header = SideBarHeaderLabel()
|
||||
header.text = "Tags"
|
||||
self.tags_container.add_widget(header)
|
||||
for tag in value:
|
||||
label = SideBarLabel()
|
||||
label.text = "[color={}]{}:[/color] {}".format(
|
||||
get_hex_from_color(label.theme_cls.primaryColor),
|
||||
tag[0].capitalize(),
|
||||
f"{tag[1]} %")
|
||||
self.tags_container.add_widget(label)
|
||||
|
||||
|
||||
def on_external_links(self,instance,value):
|
||||
self.external_links_container.clear_widgets()
|
||||
header = SideBarHeaderLabel()
|
||||
header.text = "External Links"
|
||||
self.external_links_container.add_widget(header)
|
||||
for site in value:
|
||||
# stat (rank,context)
|
||||
label = SideBarLabel()
|
||||
label.text = "[color={}]{}:[/color] {}".format(
|
||||
get_hex_from_color(label.theme_cls.primaryColor),
|
||||
site[0].capitalize(),
|
||||
site[1])
|
||||
self.external_links_container.add_widget(label)
|
||||
|
||||
class Controls(MDBoxLayout):
|
||||
screen = ObjectProperty()
|
||||
from .components import (AnimeHeader,AnimeSideBar,AnimeDescription,AnimeReviews,AnimeCharacters,AnimdlStreamDialog,DownloadAnimeDialog,RankingsBar)
|
||||
|
||||
|
||||
class AnimeScreenView(BaseScreenView):
|
||||
@@ -186,20 +15,12 @@ class AnimeScreenView(BaseScreenView):
|
||||
anime_characters:AnimeCharacters = ObjectProperty()
|
||||
anime_reviews:AnimeReviews = ObjectProperty()
|
||||
data = DictProperty()
|
||||
def model_is_changed(self) -> None:
|
||||
"""
|
||||
Called whenever any change has occurred in the data model.
|
||||
The view in this method tracks these changes and updates the UI
|
||||
according to these changes.
|
||||
"""
|
||||
|
||||
def update_layout(self,data):
|
||||
self.data = data
|
||||
# uitlity functions
|
||||
format_date = lambda date_: f"{date_['day']}/{date_['month']}/{date_['year']}" if date_ else ""
|
||||
format_list_with_comma = lambda list_: ", ".join(list_) if list_ else ""
|
||||
to_human_date = lambda utc_date: datetime.fromtimestamp(utc_date).strftime("%d/%m/%Y %H:%M:%S")
|
||||
extract_next_airing_episode = lambda airing_episode: f"Episode: {airing_episode['episode']} on {to_human_date(airing_episode['airingAt'])}" if airing_episode else "Completed"
|
||||
|
||||
extract_next_airing_episode = lambda airing_episode: f"Episode: {airing_episode['episode']} on {anilist_data_helper.format_anilist_timestamp(airing_episode['airingAt'])}" if airing_episode else "Completed"
|
||||
|
||||
# variables
|
||||
english_title = data["title"]["english"]
|
||||
@@ -219,7 +40,7 @@ class AnimeScreenView(BaseScreenView):
|
||||
|
||||
# update alternative titles
|
||||
alternative_titles = {
|
||||
"synonyms":format_list_with_comma(data["synonyms"]), # list
|
||||
"synonyms":anilist_data_helper.format_list_data_with_comma(data["synonyms"]), # list
|
||||
"japanese":jp_title,
|
||||
"english":english_title,
|
||||
}
|
||||
@@ -230,15 +51,15 @@ class AnimeScreenView(BaseScreenView):
|
||||
"episodes":data["episodes"],
|
||||
"status":data["status"],
|
||||
"nextAiringEpisode":extract_next_airing_episode(data["nextAiringEpisode"]),
|
||||
"aired":f"{format_date(data['startDate'])} to {format_date(data['endDate'])}",
|
||||
"aired":f"{anilist_data_helper.format_anilist_date_object(data['startDate'])} to {anilist_data_helper.format_anilist_date_object(data['endDate'])}",
|
||||
"premiered":f"{data['season']} {data['seasonYear']}",
|
||||
"broadcast":data["format"],
|
||||
"countryOfOrigin":data["countryOfOrigin"],
|
||||
"hashtag":data["hashtag"],
|
||||
"studios": format_list_with_comma([studio["name"] for studio in studios if studio["isAnimationStudio"]]), # { "name": "Sunrise", "isAnimationStudio": true }
|
||||
"producers": format_list_with_comma([studio["name"] for studio in studios if not studio["isAnimationStudio"]]), # { "name": "Sunrise", "isAnimationStudio": true }
|
||||
"studios": anilist_data_helper.format_list_data_with_comma([studio["name"] for studio in studios if studio["isAnimationStudio"]]), # { "name": "Sunrise", "isAnimationStudio": true }
|
||||
"producers": anilist_data_helper.format_list_data_with_comma([studio["name"] for studio in studios if not studio["isAnimationStudio"]]), # { "name": "Sunrise", "isAnimationStudio": true }
|
||||
"source":data["source"],
|
||||
"genres": format_list_with_comma(data["genres"]),
|
||||
"genres": anilist_data_helper.format_list_data_with_comma(data["genres"]),
|
||||
"duration":data["duration"],
|
||||
# "rating":data["rating"],
|
||||
}
|
||||
@@ -279,17 +100,17 @@ class AnimeScreenView(BaseScreenView):
|
||||
|
||||
self.anime_reviews.reviews = data["reviews"]["nodes"]
|
||||
|
||||
# for r in data["recommendation"]["nodes"]:
|
||||
# r["mediaRecommendation"]
|
||||
|
||||
def stream_anime_with_custom_cmds_dialog(self):
|
||||
"""
|
||||
Called when user wants to stream with custom commands
|
||||
"""
|
||||
|
||||
AnimdlStreamDialog(self.data).open()
|
||||
|
||||
def open_download_anime_dialog(self):
|
||||
"""
|
||||
Opens the download anime dialog
|
||||
"""
|
||||
|
||||
DownloadAnimeDialog(self.data).open()
|
||||
|
||||
|
||||
@@ -1,2 +1,10 @@
|
||||
from .side_bar import AnimeSideBar
|
||||
from .header import AnimeHeader
|
||||
from .rankings_bar import RankingsBar
|
||||
from .controls import Controls
|
||||
from .description import AnimeDescription
|
||||
from .characters import AnimeCharacters
|
||||
from .review import AnimeReviews
|
||||
|
||||
from .animdl_stream_dialog import AnimdlStreamDialog
|
||||
from .download_anime_dialog import DownloadAnimeDialog
|
||||
@@ -1,7 +1,8 @@
|
||||
from kivy.uix.modalview import ModalView
|
||||
|
||||
from kivymd.uix.behaviors import StencilBehavior,CommonElevationBehavior,BackgroundColorBehavior
|
||||
from kivymd.theming import ThemableBehavior
|
||||
# from main import AniXStreamApp
|
||||
|
||||
class AnimdlStreamDialog(ThemableBehavior,StencilBehavior,CommonElevationBehavior,BackgroundColorBehavior,ModalView):
|
||||
def __init__(self,data,**kwargs):
|
||||
super(AnimdlStreamDialog,self).__init__(**kwargs)
|
||||
@@ -29,6 +30,4 @@ class AnimdlStreamDialog(ThemableBehavior,StencilBehavior,CommonElevationBehavio
|
||||
if quality:
|
||||
cmds = [*cmds,"-q",quality]
|
||||
|
||||
# print(title,episodes_range,latest,quality)
|
||||
print(cmds)
|
||||
app.watch_on_animdl(custom_options = cmds)
|
||||
46
app/View/AnimeScreen/components/characters.py
Normal file
46
app/View/AnimeScreen/components/characters.py
Normal file
@@ -0,0 +1,46 @@
|
||||
from kivy.properties import ObjectProperty,ListProperty
|
||||
|
||||
from kivymd.uix.boxlayout import MDBoxLayout
|
||||
|
||||
|
||||
class AnimeCharacter(MDBoxLayout):
|
||||
voice_actors = ObjectProperty({
|
||||
"name":"",
|
||||
"image":""
|
||||
})
|
||||
character = ObjectProperty({
|
||||
"name":"",
|
||||
"gender":"",
|
||||
"dateOfBirth":"",
|
||||
"image":"",
|
||||
"age":"",
|
||||
"description":""
|
||||
})
|
||||
|
||||
|
||||
class AnimeCharacters(MDBoxLayout):
|
||||
container = ObjectProperty()
|
||||
characters = ListProperty()
|
||||
def on_characters(self,instance,characters):
|
||||
format_date = lambda date_: f"{date_['day']}/{date_['month']}/{date_['year']}" if date_ else ""
|
||||
self.container.clear_widgets()
|
||||
for character_ in characters: # character (character,actor)
|
||||
character = character_[0]
|
||||
actors = character_[1]
|
||||
|
||||
anime_character = AnimeCharacter()
|
||||
anime_character.character = {
|
||||
"name":character["name"]["full"],
|
||||
"gender":character["gender"],
|
||||
"dateOfBirth":format_date(character["dateOfBirth"]),
|
||||
"image":character["image"]["medium"],
|
||||
"age":character["age"],
|
||||
"description":character["description"]
|
||||
}
|
||||
anime_character.voice_actors = {
|
||||
"name":", ".join([actor["name"]["full"] for actor in actors])
|
||||
}
|
||||
|
||||
# anime_character.voice_actor =
|
||||
self.container.add_widget(anime_character)
|
||||
|
||||
7
app/View/AnimeScreen/components/controls.py
Normal file
7
app/View/AnimeScreen/components/controls.py
Normal file
@@ -0,0 +1,7 @@
|
||||
from kivy.properties import ObjectProperty
|
||||
|
||||
from kivymd.uix.boxlayout import MDBoxLayout
|
||||
|
||||
|
||||
class Controls(MDBoxLayout):
|
||||
screen = ObjectProperty()
|
||||
8
app/View/AnimeScreen/components/description.py
Normal file
8
app/View/AnimeScreen/components/description.py
Normal file
@@ -0,0 +1,8 @@
|
||||
from kivy.properties import StringProperty
|
||||
|
||||
from kivymd.uix.boxlayout import MDBoxLayout
|
||||
|
||||
|
||||
class AnimeDescription(MDBoxLayout):
|
||||
description = StringProperty()
|
||||
|
||||
9
app/View/AnimeScreen/components/header.py
Normal file
9
app/View/AnimeScreen/components/header.py
Normal file
@@ -0,0 +1,9 @@
|
||||
from kivy.properties import StringProperty
|
||||
|
||||
from kivymd.uix.boxlayout import MDBoxLayout
|
||||
|
||||
|
||||
class AnimeHeader(MDBoxLayout):
|
||||
titles = StringProperty()
|
||||
banner_image = StringProperty()
|
||||
|
||||
14
app/View/AnimeScreen/components/rankings_bar.py
Normal file
14
app/View/AnimeScreen/components/rankings_bar.py
Normal file
@@ -0,0 +1,14 @@
|
||||
from kivy.properties import DictProperty
|
||||
|
||||
from kivymd.uix.boxlayout import MDBoxLayout
|
||||
|
||||
|
||||
class RankingsBar(MDBoxLayout):
|
||||
rankings = DictProperty(
|
||||
{
|
||||
"Popularity":0,
|
||||
"Favourites":0,
|
||||
"AverageScore":0,
|
||||
}
|
||||
)
|
||||
|
||||
26
app/View/AnimeScreen/components/review.py
Normal file
26
app/View/AnimeScreen/components/review.py
Normal file
@@ -0,0 +1,26 @@
|
||||
from kivy.properties import ObjectProperty,ListProperty
|
||||
|
||||
from kivymd.uix.boxlayout import MDBoxLayout
|
||||
|
||||
|
||||
class AnimeReview(MDBoxLayout):
|
||||
review = ObjectProperty({
|
||||
"username":"",
|
||||
"avatar":"",
|
||||
"summary":""
|
||||
})
|
||||
|
||||
|
||||
class AnimeReviews(MDBoxLayout):
|
||||
reviews = ListProperty()
|
||||
container = ObjectProperty()
|
||||
def on_reviews(self,instance,reviews):
|
||||
self.container.clear_widgets()
|
||||
for review in reviews:
|
||||
review_ = AnimeReview()
|
||||
review_.review = {
|
||||
"username":review["user"]["name"],
|
||||
"avatar":review["user"]["avatar"]["medium"],
|
||||
"summary":review["summary"]
|
||||
}
|
||||
self.container.add_widget(review_)
|
||||
85
app/View/AnimeScreen/components/side_bar.py
Normal file
85
app/View/AnimeScreen/components/side_bar.py
Normal file
@@ -0,0 +1,85 @@
|
||||
from kivy.properties import ObjectProperty,StringProperty,DictProperty,ListProperty
|
||||
from kivy.utils import get_hex_from_color
|
||||
|
||||
from kivymd.uix.boxlayout import MDBoxLayout
|
||||
from kivymd.uix.label import MDLabel
|
||||
|
||||
class SideBarHeaderLabel(MDLabel):
|
||||
pass
|
||||
|
||||
|
||||
class SideBarLabel(MDLabel):
|
||||
pass
|
||||
|
||||
|
||||
class AnimeSideBar(MDBoxLayout):
|
||||
screen = ObjectProperty()
|
||||
image = StringProperty()
|
||||
alternative_titles = DictProperty({
|
||||
"synonyms":"",
|
||||
"english":"",
|
||||
"japanese":"",
|
||||
})
|
||||
information = DictProperty({
|
||||
"episodes":"",
|
||||
"status":"",
|
||||
"aired":"",
|
||||
"nextAiringEpisode":"",
|
||||
"premiered":"",
|
||||
"broadcast":"",
|
||||
"countryOfOrigin":"",
|
||||
"hashtag":"",
|
||||
"studios":"", # { "name": "Sunrise", "isAnimationStudio": true }
|
||||
"source":"",
|
||||
"genres":"",
|
||||
"duration":"",
|
||||
"producers":"",
|
||||
})
|
||||
statistics = ListProperty()
|
||||
statistics_container = ObjectProperty()
|
||||
external_links = ListProperty()
|
||||
external_links_container = ObjectProperty()
|
||||
tags = ListProperty()
|
||||
tags_container = ObjectProperty()
|
||||
|
||||
def on_statistics(self,instance,value):
|
||||
self.statistics_container.clear_widgets()
|
||||
header = SideBarHeaderLabel()
|
||||
header.text = "Rankings"
|
||||
self.statistics_container.add_widget(header)
|
||||
for stat in value:
|
||||
# stat (rank,context)
|
||||
label = SideBarLabel()
|
||||
label.text = "[color={}]{}:[/color] {}".format(
|
||||
get_hex_from_color(label.theme_cls.primaryColor),
|
||||
stat[0].capitalize(),
|
||||
f"{stat[1]}")
|
||||
self.statistics_container.add_widget(label)
|
||||
|
||||
def on_tags(self,instance,value):
|
||||
self.tags_container.clear_widgets()
|
||||
header = SideBarHeaderLabel()
|
||||
header.text = "Tags"
|
||||
self.tags_container.add_widget(header)
|
||||
for tag in value:
|
||||
label = SideBarLabel()
|
||||
label.text = "[color={}]{}:[/color] {}".format(
|
||||
get_hex_from_color(label.theme_cls.primaryColor),
|
||||
tag[0].capitalize(),
|
||||
f"{tag[1]} %")
|
||||
self.tags_container.add_widget(label)
|
||||
|
||||
|
||||
def on_external_links(self,instance,value):
|
||||
self.external_links_container.clear_widgets()
|
||||
header = SideBarHeaderLabel()
|
||||
header.text = "External Links"
|
||||
self.external_links_container.add_widget(header)
|
||||
for site in value:
|
||||
# stat (rank,context)
|
||||
label = SideBarLabel()
|
||||
label.text = "[color={}]{}:[/color] {}".format(
|
||||
get_hex_from_color(label.theme_cls.primaryColor),
|
||||
site[0].capitalize(),
|
||||
site[1])
|
||||
self.external_links_container.add_widget(label)
|
||||
@@ -1,9 +1,8 @@
|
||||
from kivy.properties import ObjectProperty
|
||||
from View.base_screen import BaseScreenView
|
||||
from kivy.uix.modalview import ModalView
|
||||
from kivy.utils import format_bytes_to_human
|
||||
class DownloadAnimePopup(ModalView):
|
||||
pass
|
||||
|
||||
from View.base_screen import BaseScreenView
|
||||
|
||||
|
||||
class DownloadsScreenView(BaseScreenView):
|
||||
main_container = ObjectProperty()
|
||||
@@ -11,5 +10,5 @@ class DownloadsScreenView(BaseScreenView):
|
||||
download_progress_label = ObjectProperty()
|
||||
def on_episode_download_progress(self,current_bytes_downloaded,total_bytes,episode_info):
|
||||
percentage_completion = (current_bytes_downloaded/total_bytes)*100
|
||||
self.progress_bar.value= percentage_completion
|
||||
self.progress_bar.value= max(min(percentage_completion,100),0)
|
||||
self.download_progress_label.text = f"Downloading: {episode_info['anime_title']} - {episode_info['episode']} ({format_bytes_to_human(current_bytes_downloaded)}/{format_bytes_to_human(total_bytes)})"
|
||||
|
||||
@@ -1,9 +1,3 @@
|
||||
#:import get_color_from_hex kivy.utils.get_color_from_hex
|
||||
#:import StringProperty kivy.properties.StringProperty
|
||||
|
||||
# custom components
|
||||
|
||||
|
||||
<HomeScreenView>
|
||||
md_bg_color: self.theme_cls.backgroundColor
|
||||
main_container:main_container
|
||||
|
||||
@@ -4,13 +4,3 @@ from View.base_screen import BaseScreenView
|
||||
|
||||
class HomeScreenView(BaseScreenView):
|
||||
main_container = ObjectProperty()
|
||||
def write_data(self):
|
||||
self.controller.write_data()
|
||||
|
||||
def model_is_changed(self) -> None:
|
||||
"""
|
||||
Called whenever any change has occurred in the data model.
|
||||
The view in this method tracks these changes and updates the UI
|
||||
according to these changes.
|
||||
"""
|
||||
|
||||
|
||||
3
app/View/SearchScreen/components/__init__.py
Normal file
3
app/View/SearchScreen/components/__init__.py
Normal file
@@ -0,0 +1,3 @@
|
||||
from .filters import Filters
|
||||
from .pagination import SearchResultsPagination
|
||||
from .trending_sidebar import TrendingAnimeSideBar
|
||||
@@ -23,5 +23,4 @@
|
||||
text:"Status"
|
||||
FilterDropDown:
|
||||
id:status_filter
|
||||
# text:root.filters["status"]
|
||||
on_release: root.open_filter_menu(self,"status")
|
||||
|
||||
42
app/View/SearchScreen/components/filters.py
Normal file
42
app/View/SearchScreen/components/filters.py
Normal file
@@ -0,0 +1,42 @@
|
||||
from kivy.properties import StringProperty,DictProperty
|
||||
|
||||
from kivymd.uix.boxlayout import MDBoxLayout
|
||||
from kivymd.uix.dropdownitem import MDDropDownItem
|
||||
from kivymd.uix.menu import MDDropdownMenu
|
||||
|
||||
class FilterDropDown(MDDropDownItem):
|
||||
text:str = StringProperty()
|
||||
|
||||
class Filters(MDBoxLayout):
|
||||
filters:dict = DictProperty({
|
||||
"sort":"SEARCH_MATCH"
|
||||
})
|
||||
|
||||
|
||||
def open_filter_menu(self, menu_item,filter_name):
|
||||
items = []
|
||||
match filter_name:
|
||||
case "sort":
|
||||
items = ["ID","ID_DESC", "TITLE_ROMANJI", "TITLE_ROMANJI_DESC", "TITLE_ENGLISH", "TITLE_ENGLISH_DESC", "TITLE_NATIVE", "TITLE_NATIVE_DESC", "TYPE", "TYPE_DESC", "FORMAT", "FORMAT_DESC", "START_DATE", "START_DATE_DESC", "END_DATE", "END_DATE_DESC", "SCORE", "SCORE_DESC", "TRENDING", "TRENDING_DESC", "EPISODES", "EPISODES_DESC", "DURATION", "DURATION_DESC", "STATUS", "STATUS_DESC", "UPDATED_AT", "UPDATED_AT_DESC", "SEARCH_MATCH" "POPULARITY","POPULARITY_DESC","FAVOURITES","FAVOURITES_DESC"]
|
||||
case "status":
|
||||
items = ["FINISHED", "RELEASING", "NOT_YET_RELEASED", "CANCELLED", "HIATUS"]
|
||||
case _:
|
||||
items = []
|
||||
if items:
|
||||
menu_items = [
|
||||
{
|
||||
"text": f"{item}",
|
||||
"on_release": lambda filter_value=f"{item}": self.filter_menu_callback(filter_name,filter_value),
|
||||
} for item in items
|
||||
]
|
||||
MDDropdownMenu(caller=menu_item, items=menu_items).open()
|
||||
|
||||
def filter_menu_callback(self, filter_name,filter_value):
|
||||
match filter_name:
|
||||
case "sort":
|
||||
self.ids.sort_filter.text = filter_value
|
||||
self.filters["sort"] = filter_value
|
||||
case "status":
|
||||
self.ids.status_filter.text = filter_value
|
||||
self.filters["status"] = filter_value
|
||||
|
||||
9
app/View/SearchScreen/components/pagination.py
Normal file
9
app/View/SearchScreen/components/pagination.py
Normal file
@@ -0,0 +1,9 @@
|
||||
from kivy.properties import ObjectProperty,NumericProperty
|
||||
|
||||
from kivymd.uix.boxlayout import MDBoxLayout
|
||||
|
||||
class SearchResultsPagination(MDBoxLayout):
|
||||
current_page = NumericProperty()
|
||||
total_pages = NumericProperty()
|
||||
search_view = ObjectProperty()
|
||||
|
||||
4
app/View/SearchScreen/components/trending_sidebar.py
Normal file
4
app/View/SearchScreen/components/trending_sidebar.py
Normal file
@@ -0,0 +1,4 @@
|
||||
from kivymd.uix.boxlayout import MDBoxLayout
|
||||
|
||||
class TrendingAnimeSideBar(MDBoxLayout):
|
||||
pass
|
||||
@@ -1,70 +1,21 @@
|
||||
from kivy.properties import ObjectProperty,StringProperty,DictProperty,NumericProperty
|
||||
from View.base_screen import BaseScreenView
|
||||
from kivymd.uix.dropdownitem import MDDropDownItem
|
||||
from kivymd.uix.menu import MDDropdownMenu
|
||||
from kivymd.uix.boxlayout import MDBoxLayout
|
||||
from kivy.properties import ObjectProperty,StringProperty
|
||||
from kivy.clock import Clock
|
||||
|
||||
|
||||
class FilterDropDown(MDDropDownItem):
|
||||
text = StringProperty()
|
||||
|
||||
class Filters(MDBoxLayout):
|
||||
filters = DictProperty({
|
||||
"sort":"SEARCH_MATCH"
|
||||
})
|
||||
def open_filter_menu(self, menu_item,filter_name):
|
||||
items = []
|
||||
match filter_name:
|
||||
case "sort":
|
||||
items = ["ID","ID_DESC", "TITLE_ROMANJI", "TITLE_ROMANJI_DESC", "TITLE_ENGLISH", "TITLE_ENGLISH_DESC", "TITLE_NATIVE", "TITLE_NATIVE_DESC", "TYPE", "TYPE_DESC", "FORMAT", "FORMAT_DESC", "START_DATE", "START_DATE_DESC", "END_DATE", "END_DATE_DESC", "SCORE", "SCORE_DESC", "TRENDING", "TRENDING_DESC", "EPISODES", "EPISODES_DESC", "DURATION", "DURATION_DESC", "STATUS", "STATUS_DESC", "UPDATED_AT", "UPDATED_AT_DESC", "SEARCH_MATCH" "POPULARITY","POPULARITY_DESC","FAVOURITES","FAVOURITES_DESC"]
|
||||
case "status":
|
||||
items = ["FINISHED", "RELEASING", "NOT_YET_RELEASED", "CANCELLED", "HIATUS"]
|
||||
case _:
|
||||
items = []
|
||||
if items:
|
||||
menu_items = [
|
||||
{
|
||||
"text": f"{item}",
|
||||
"on_release": lambda filter_value=f"{item}": self.filter_menu_callback(filter_name,filter_value),
|
||||
} for item in items
|
||||
]
|
||||
MDDropdownMenu(caller=menu_item, items=menu_items).open()
|
||||
|
||||
def filter_menu_callback(self, filter_name,filter_value):
|
||||
match filter_name:
|
||||
case "sort":
|
||||
self.ids.sort_filter.text = filter_value
|
||||
self.filters["sort"] = filter_value
|
||||
case "status":
|
||||
self.ids.status_filter.text = filter_value
|
||||
self.filters["status"] = filter_value
|
||||
|
||||
|
||||
class SearchResultsPagination(MDBoxLayout):
|
||||
current_page = NumericProperty()
|
||||
total_pages = NumericProperty()
|
||||
search_view = ObjectProperty()
|
||||
|
||||
class TrendingAnimeSideBar(MDBoxLayout):
|
||||
pass
|
||||
from View.base_screen import BaseScreenView
|
||||
from .components import TrendingAnimeSideBar,Filters,SearchResultsPagination
|
||||
|
||||
class SearchScreenView(BaseScreenView):
|
||||
trending_anime_sidebar:TrendingAnimeSideBar = ObjectProperty()
|
||||
search_results_pagination:SearchResultsPagination = ObjectProperty()
|
||||
filters:Filters = ObjectProperty()
|
||||
|
||||
search_results_container = ObjectProperty()
|
||||
trending_anime_sidebar = ObjectProperty()
|
||||
search_results_pagination = ObjectProperty()
|
||||
search_term = StringProperty()
|
||||
filters = ObjectProperty()
|
||||
search_term:str = StringProperty()
|
||||
is_searching = False
|
||||
has_next_page = False
|
||||
current_page = 0
|
||||
total_pages = 0
|
||||
def model_is_changed(self) -> None:
|
||||
"""
|
||||
Called whenever any change has occurred in the data model.
|
||||
The view in this method tracks these changes and updates the UI
|
||||
according to these changes.
|
||||
"""
|
||||
|
||||
|
||||
def handle_search_for_anime(self,search_widget=None,page=None):
|
||||
if search_widget:
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
from kivy.properties import ObjectProperty
|
||||
from kivymd.uix.navigationrail import MDNavigationRail
|
||||
from kivymd.uix.boxlayout import MDBoxLayout
|
||||
from kivy.properties import ObjectProperty,StringProperty
|
||||
|
||||
from kivymd.app import MDApp
|
||||
from kivymd.uix.screen import MDScreen
|
||||
from kivymd.uix.navigationrail import MDNavigationRail
|
||||
from kivymd.uix.boxlayout import MDBoxLayout
|
||||
from kivymd.uix.button import MDIconButton
|
||||
from kivymd.uix.tooltip import MDTooltip
|
||||
|
||||
from Utility.observer import Observer
|
||||
|
||||
@@ -12,10 +14,19 @@ from Utility.observer import Observer
|
||||
class NavRail(MDNavigationRail):
|
||||
screen=ObjectProperty()
|
||||
|
||||
|
||||
class SearchBar(MDBoxLayout):
|
||||
screen=ObjectProperty()
|
||||
|
||||
|
||||
class Tooltip(MDTooltip):
|
||||
pass
|
||||
|
||||
|
||||
class TooltipMDIconButton(Tooltip,MDIconButton):
|
||||
tooltip_text = StringProperty()
|
||||
|
||||
|
||||
class BaseScreenView(MDScreen, Observer):
|
||||
"""
|
||||
A base class that implements a visual representation of the model data.
|
||||
|
||||
2
app/View/components/media_card/components/__init__.py
Normal file
2
app/View/components/media_card/components/__init__.py
Normal file
@@ -0,0 +1,2 @@
|
||||
from .media_player import MediaPopupVideoPlayer
|
||||
from .media_popup import MediaPopup
|
||||
@@ -0,0 +1,5 @@
|
||||
from kivy.uix.video import Video
|
||||
|
||||
class MediaPopupVideoPlayer(Video):
|
||||
pass
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
<PopupBoxLayout@MDBoxLayout>
|
||||
adaptive_height:True
|
||||
|
||||
# TODO: subdivide each main component to its own file
|
||||
<MediaPopup>
|
||||
size_hint: None, None
|
||||
height: dp(500)
|
||||
@@ -104,12 +105,15 @@
|
||||
on_press:
|
||||
root.dismiss()
|
||||
app.show_anime_screen(root.caller.anime_id)
|
||||
MDIconButton:
|
||||
TooltipMDIconButton:
|
||||
tooltip_text:"Add to your anime list"
|
||||
icon: "plus-circle" if not(root.caller.is_in_my_list) else "check-circle"
|
||||
on_release:
|
||||
root.caller.is_in_my_list = not(root.caller.is_in_my_list)
|
||||
self.icon = "plus-circle" if not(root.caller.is_in_my_list) else "check-circle"
|
||||
MDIconButton:
|
||||
TooltipMDIconButton:
|
||||
disabled:True
|
||||
tooltip_text:"Coming soon"
|
||||
icon: "bell-circle" if not(root.caller.is_in_my_notify) else "bell-check"
|
||||
PopupBoxLayout:
|
||||
pos_hint: {'center_y': 0.5}
|
||||
|
||||
58
app/View/components/media_card/components/media_popup.py
Normal file
58
app/View/components/media_card/components/media_popup.py
Normal file
@@ -0,0 +1,58 @@
|
||||
from kivy.properties import ObjectProperty
|
||||
from kivy.clock import Clock
|
||||
from kivy.animation import Animation
|
||||
from kivy.uix.modalview import ModalView
|
||||
|
||||
from kivymd.theming import ThemableBehavior
|
||||
from kivymd.uix.behaviors import BackgroundColorBehavior,StencilBehavior,CommonElevationBehavior,HoverBehavior
|
||||
|
||||
|
||||
class MediaPopup(ThemableBehavior,HoverBehavior,StencilBehavior,CommonElevationBehavior,BackgroundColorBehavior,ModalView):
|
||||
caller = ObjectProperty()
|
||||
player = ObjectProperty()
|
||||
|
||||
def __init__(self, caller,*args,**kwarg):
|
||||
self.caller = caller
|
||||
super(MediaPopup,self).__init__(*args,**kwarg)
|
||||
|
||||
|
||||
def open(self, *_args, **kwargs):
|
||||
"""Display the modal in the Window.
|
||||
|
||||
When the view is opened, it will be faded in with an animation. If you
|
||||
don't want the animation, use::
|
||||
|
||||
view.open(animation=False)
|
||||
|
||||
"""
|
||||
from kivy.core.window import Window
|
||||
if self._is_open:
|
||||
return
|
||||
self._window = Window
|
||||
self._is_open = True
|
||||
self.dispatch('on_pre_open')
|
||||
Window.add_widget(self)
|
||||
Window.bind(
|
||||
on_resize=self._align_center,
|
||||
on_keyboard=self._handle_keyboard)
|
||||
self.center = self.caller.to_window(*self.caller.center)
|
||||
self.fbind('center', self._align_center)
|
||||
self.fbind('size', self._align_center)
|
||||
if kwargs.get('animation', True):
|
||||
ani = Animation(_anim_alpha=1., d=self._anim_duration)
|
||||
ani.bind(on_complete=lambda *_args: self.dispatch('on_open'))
|
||||
ani.start(self)
|
||||
else:
|
||||
self._anim_alpha = 1.
|
||||
self.dispatch('on_open')
|
||||
|
||||
def _align_center(self, *_args):
|
||||
if self._is_open:
|
||||
self.center = self.caller.to_window(*self.caller.center)
|
||||
|
||||
|
||||
def on_leave(self,*args):
|
||||
def _leave(dt):
|
||||
if not self.hovering:
|
||||
self.dismiss()
|
||||
Clock.schedule_once(_leave,2)
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,78 +1,11 @@
|
||||
import os
|
||||
from kivy.properties import ObjectProperty,StringProperty,BooleanProperty,ListProperty,NumericProperty
|
||||
from kivy.clock import Clock
|
||||
from kivy.uix.behaviors import ButtonBehavior
|
||||
|
||||
from kivymd.uix.boxlayout import MDBoxLayout
|
||||
from kivymd.uix.tooltip import MDTooltip
|
||||
from kivymd.uix.behaviors import BackgroundColorBehavior,StencilBehavior,CommonElevationBehavior,HoverBehavior
|
||||
from kivymd.uix.button import MDIconButton
|
||||
from kivymd.theming import ThemableBehavior
|
||||
from kivy.uix.modalview import ModalView
|
||||
from kivy.properties import ObjectProperty,StringProperty,BooleanProperty,ListProperty,NumericProperty
|
||||
from kivy.uix.video import Video
|
||||
from kivy.animation import Animation
|
||||
class Tooltip(MDTooltip):
|
||||
pass
|
||||
|
||||
|
||||
class TooltipMDIconButton(Tooltip,MDIconButton):
|
||||
tooltip_text = StringProperty()
|
||||
|
||||
|
||||
class MediaPopupVideoPlayer(Video):
|
||||
# self.prev
|
||||
pass
|
||||
|
||||
|
||||
class MediaPopup(ThemableBehavior,HoverBehavior,StencilBehavior,CommonElevationBehavior,BackgroundColorBehavior,ModalView):
|
||||
caller = ObjectProperty()
|
||||
player = ObjectProperty()
|
||||
|
||||
def __init__(self, caller,*args,**kwarg):
|
||||
self.caller:MediaCard = caller
|
||||
super(MediaPopup,self).__init__(*args,**kwarg)
|
||||
|
||||
|
||||
def open(self, *_args, **kwargs):
|
||||
"""Display the modal in the Window.
|
||||
|
||||
When the view is opened, it will be faded in with an animation. If you
|
||||
don't want the animation, use::
|
||||
|
||||
view.open(animation=False)
|
||||
|
||||
"""
|
||||
from kivy.core.window import Window
|
||||
if self._is_open:
|
||||
return
|
||||
self._window = Window
|
||||
self._is_open = True
|
||||
self.dispatch('on_pre_open')
|
||||
Window.add_widget(self)
|
||||
Window.bind(
|
||||
on_resize=self._align_center,
|
||||
on_keyboard=self._handle_keyboard)
|
||||
self.center = self.caller.to_window(*self.caller.center)
|
||||
self.fbind('center', self._align_center)
|
||||
self.fbind('size', self._align_center)
|
||||
if kwargs.get('animation', True):
|
||||
ani = Animation(_anim_alpha=1., d=self._anim_duration)
|
||||
ani.bind(on_complete=lambda *_args: self.dispatch('on_open'))
|
||||
ani.start(self)
|
||||
else:
|
||||
self._anim_alpha = 1.
|
||||
self.dispatch('on_open')
|
||||
|
||||
def _align_center(self, *_args):
|
||||
if self._is_open:
|
||||
self.center = self.caller.to_window(*self.caller.center)
|
||||
|
||||
|
||||
def on_leave(self,*args):
|
||||
def _leave(dt):
|
||||
if not self.hovering:
|
||||
self.dismiss()
|
||||
Clock.schedule_once(_leave,2)
|
||||
from kivymd.uix.behaviors import HoverBehavior
|
||||
|
||||
from .components import MediaPopup
|
||||
|
||||
class MediaCard(ButtonBehavior,HoverBehavior,MDBoxLayout):
|
||||
anime_id = NumericProperty()
|
||||
@@ -97,6 +30,8 @@ class MediaCard(ButtonBehavior,HoverBehavior,MDBoxLayout):
|
||||
preview_image = StringProperty()
|
||||
screen = ObjectProperty()
|
||||
has_trailer_color = ListProperty([1,1,1,0])
|
||||
|
||||
|
||||
def __init__(self,trailer_url=None,**kwargs):
|
||||
super().__init__(**kwargs)
|
||||
self.orientation = "vertical"
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
<CommonNavigationRailItem@MDNavigationRailItem>
|
||||
icon:""
|
||||
text:""
|
||||
|
||||
|
||||
<CommonNavigationRailItem>
|
||||
MDNavigationRailItemIcon:
|
||||
icon:root.icon
|
||||
|
||||
MDNavigationRailItemLabel:
|
||||
text: root.text
|
||||
|
||||
|
||||
<NavRail>:
|
||||
anchor:"top"
|
||||
type: "labeled"
|
||||
md_bg_color: self.theme_cls.secondaryContainerColor
|
||||
|
||||
MDNavigationRailFabButton:
|
||||
icon: "home"
|
||||
on_press:
|
||||
root.screen.manager_screens.current = "home screen"
|
||||
|
||||
CommonNavigationRailItem:
|
||||
icon: "magnify"
|
||||
text: "Search"
|
||||
@@ -25,8 +25,8 @@
|
||||
root.screen.manager_screens.current = "search screen"
|
||||
|
||||
CommonNavigationRailItem:
|
||||
icon: "bookmark" #if root.screen.manager_screens.current=="my list screen" else "bookmark-outline"
|
||||
text: "Bookmark"
|
||||
icon: "bookmark"
|
||||
text: "MyList"
|
||||
on_press:
|
||||
root.screen.manager_screens.current = "my list screen"
|
||||
CommonNavigationRailItem:
|
||||
|
||||
3
app/View/components/tooltip.kv
Normal file
3
app/View/components/tooltip.kv
Normal file
@@ -0,0 +1,3 @@
|
||||
<Tooltip>
|
||||
MDTooltipPlain:
|
||||
text:root.tooltip_text
|
||||
969
app/anime.json
969
app/anime.json
@@ -1,969 +0,0 @@
|
||||
{
|
||||
"data": {
|
||||
"Page": {
|
||||
"media": [
|
||||
{
|
||||
"title": { "romaji": "Cowboy Bebop", "english": "Cowboy Bebop" },
|
||||
"coverImage": {
|
||||
"extraLarge": "https://s4.anilist.co/file/anilistcdn/media/anime/cover/large/bx1-CXtrrkMpJ8Zq.png"
|
||||
},
|
||||
"episodes":24,
|
||||
"characters": {
|
||||
"edges": [
|
||||
{
|
||||
"node": {
|
||||
"name": { "full": "Spike Spiegel" },
|
||||
"gender": "Male",
|
||||
"dateOfBirth": { "year": 2044, "month": 6, "day": 26 },
|
||||
"age": "27",
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/character/medium/b1-ChxaldmieFlQ.png"
|
||||
},
|
||||
"description": "__Height:__ 185 cm \n\nSpike Spiegel is a tall and lean 27-year-old bounty hunter born on Mars."
|
||||
},
|
||||
"voiceActors": [
|
||||
{
|
||||
"name": { "full": "Kouichi Yamadera" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n95011-2RfLzncNyvbR.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Steven Blum" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n95012-jnlK6VyCTf9P.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Massimo De Ambrosis" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/781.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Viktor Neumann" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/1638.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Zolt\u00e1n Juh\u00e1sz" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/default.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Yann Pichon" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/9237.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Ja hyeong Gu" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/14781.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Guilherme Briggs" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n96099-n1wxTRslU9gj.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Yamil Atala" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/10028.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Genaro V\u00e1squez" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n206333-oYkemxJhn4bk.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Jos\u00e9 Gilberto Vilchis" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n105021-Bn6vy2ClY3uX.png"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"node": {
|
||||
"name": { "full": "Faye Valentine" },
|
||||
"gender": "Female",
|
||||
"dateOfBirth": { "year": 1994, "month": 8, "day": 14 },
|
||||
"age": "23 (Physical), 77 (Actual)",
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/character/medium/b2-0Iszg6Izgt4p.png"
|
||||
},
|
||||
"description": "One of the members of the bounty hunting crew in the anime series Cowboy Bebop. Often seen with a cigarette and in a revealing outfit complete with bright yellow hot pants and a matching, revealing top, black suspenders, white boots, and a long-sleeved red shirt worn normally through the sleeves, not to mention her signature headband, she is unusually attractive, sporting a bob of violet hair, green eyes, fair skin, and a voluptuous body. \n\nAlthough appearing to be no more than her 23 years alive suggests, Faye is actually upwards of 74-years-old, having been put into cryogenic freeze after a space shuttle accident. During the course of the series (set in 2071), Faye manages to cross paths with Spike and Jet twice before she finally makes herself at home aboard their ship the second time, much to the consternation and disapproval of the two men, both of whom have their own reservations about women in general. Faye herself is brash, egotistical, and quite lazy, despite taking plenty of time to pamper and care for her own appearance. Faye has also been placed under arrest several times in the series and spends much time in handcuffs on the ship. She, at times, expects the boys to take care of bounties for her, while she sits by idly to reap the benefits and eat all their food, another source of conflict. \n\nSeemingly little more than a thorn in her partners\u2019 sides, Faye is actually a well-rounded member of the team. She can handle herself exceptionally well for a woman of her slight appearance, displaying at least once in the series (in \"Cowboy Funk\") that she packs quite a mean punch. Adept at flying, Faye has stood her ground just as well as Spike has in an aerial dogfight in her ship Red Tail, at times even against Spike in an aerial dogfight. She also excels with guns, and is first seen in the series completely disabling a ship with a Heckler & Koch MP5, though she is immediately apprehended afterward. In the movie, she is seen with the same gun, in addition to her normal companion: a Glock 30. Where Faye really shines, however, is with her mouth. She has an almost unstoppable attitude, and even her sometimes innocent smile can be seen as dangerous. Sarcastic and presumptuous, she rarely appears weak or in need of support. She brags and takes care of herself, never trusting others, cheating and lying her way from one day to the next. \n\nShe is a woman who is skilled at getting what she wants; however, her indomitable exterior hides a more delicate interior. Upon awakening from her 54-year cryogenic sleep, not only was she saddled with a massive amount of debt that she had no means to pay, but she was also diagnosed with total amnesia, a stranger in a mysterious world that she was not a part of and did not understand, surrounded by people who claimed to be helping her but were only there to take advantage of her naivet\u00e9. The surname \"Valentine\" was merely a name given to her by the doctor who woke her; the circumstances of her accident, her previous life, and even her real name all remain a mystery, and are only gradually revealed as the series progresses. It has been hinted that she came from Singapore on Earth, and was the daughter of a very wealthy family, as the city's famous Merlion Statue features prominently in scenes of her childhood, and that memories and a film from her childhood showed her living in a large mansion. In an early episode, she states that she is descended from Roma people, but she may well have been lying. Utterly betrayed by someone she thought she could trust after waking, Faye found herself burdened with even more money to pay, and the situation resulted in the hardening of her personality to an extreme degree. She even says in Session 11: \u201cwe deceive or we are deceived\u201d, and that \u201cnothing good ever happened to me when I trusted others.\u201d \n\nThroughout the series, though she retains her sarcastic demeanor and unpleasant nature up until the very end, it is easy to see her grow as a character. She learns to value her comrades, coming back to the Bebop when she realizes that it is the only home that she has left, naming it as the \u201conly place I could return to\u201d. She grows to understand the disadvantages of being a loner, and that even though her \"family\" is somewhat dysfunctional it is still a place where she will always belong."
|
||||
},
|
||||
"voiceActors": [
|
||||
{
|
||||
"name": { "full": "Megumi Hayashibara" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n95014-VqxNuufY94V3.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Wendee Lee" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n95036-UkyIYVtEhoPk.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Barbara De Bortoli" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n95763-Ci0xdLc6Z3a0.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Barbara Szit\u00e1s" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/7828.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Antje von der Ahe" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/8549.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Mi Sook Jeong" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/8812.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Carmen Ambr\u00f3s" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/default.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "B\u00e9rang\u00e8re Jean" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n163357-UI9zFTe0wI6y.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Miriam Ficher" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/540.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Elsa Covi\u00e1n" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n153194-gLoOTnSq8k6H.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Karla Falc\u00f3n" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n181977-cMmWSouBCpJN.png"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"node": {
|
||||
"name": { "full": "Edward Wong Hau Pepelu Tivrusky IV" },
|
||||
"gender": "Female",
|
||||
"dateOfBirth": { "year": 2058, "month": 1, "day": 1 },
|
||||
"age": "~13",
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/character/medium/b16-80wd87nl1Rue.png"
|
||||
},
|
||||
"description": "Ed is an eccentric, resourceful, childlike, tomboyish, and intelligent teenager. Ed first encounters the Bebop and its crew when she hacks the ship on its way to Earth. After Ed helps the Bebop crew cash in the Earth hacker bounty, she insists on joining the crew. When Faye tries to leave Earth without her, Ed hacks the Bebop and holds it hostage until she is permitted to join.\n\n~!\nLater in the story when the Bebop is back on Earth, the crew stumbles across an orphanage that Ed used to live in. After seeing some old friends there, Ed is informed that her father has come looking for her recently. Ed decides to make up a bounty on her father to convince Spike to find him. When Spike finds him, Ed decides to leave the Bebop with Ein to live with her father on Earth.!~"
|
||||
},
|
||||
"voiceActors": [
|
||||
{
|
||||
"name": { "full": "Melissa Fahn" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n95452-ID2nbW1E8fLk.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Aoi Tada" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n95658-paHKYOWkhoOd.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Isabel Marti\u00f1\u00f3n" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/1686.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Ilona Brokowski" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/6138.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Patricia Legrand" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/7223.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Jeong-Hwa Yang" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/14755.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Gemma Donati" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/default.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Leticia Celini" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n180473-RxcWwuazq2t5.png"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"node": {
|
||||
"name": { "full": "Jet Black" },
|
||||
"gender": "Male",
|
||||
"dateOfBirth": { "year": 2035, "month": 12, "day": 3 },
|
||||
"age": "36",
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/character/medium/b3-JjH9Si9UM1NZ.png"
|
||||
},
|
||||
"description": "Jet, known on his home satellite as the \"Black Dog\" for his tenacity, is a 36-year-old former cop from Ganymede (a Jovian satellite) and acts as Spike's foil during the series. Physically, Jet is very tall with a muscular build. He wears a beard with no mustache, and is completely bald save for the back of his head. Spike acts lazy and uninterested, whereas Jet is hard working and a jack-of-all-trades. Jet was once an investigator in the Inter Solar System Police (ISSP) for many years until he lost his arm in an investigation that went awry when his corrupt partner (and friend at the time) betrayed him. His arm was replaced with a cybernetic limb (later revealed to be by choice, as biological replacements were possible, he wanted the fake arm as a reminder of what happened), yet his loss of limb coupled with the general corruption of the police force prompted Jet to quit the ISSP in disgust and become a freelance bounty hunter. Jet also considers himself something of a renaissance man: he cultivates bonsai trees, cooks, enjoys jazz/blues music (he named his ship the Bebop, referring to a type of jazz), especially Charlie Parker, and even has interest in Goethe. As a character, Jet is the quintessential oyaji or \"dad\" even though he often wishes people would view him as a more brotherly figure (so as not to seem old). Jet is skilled with handguns, typically carrying a pre-2004 Walther P99, as well as the use of the netgun. He is good with hand to hand combat as well. Unlike Spike, Jet tends to use more raw muscle than technique. He is also a great mechanic and pilot. Aside from the converted interplanetary fishing trawler vessel Bebop, Jet flies a smaller ship called Hammerhead. The Hammerhead appears to be a modified (Jet added larger engines and fuel tanks) salvage-craft that uses a mechanical arm equipped with a harpoon as its main weapon, which is somewhat analogous to his own mechanical arm. Both the Hammerhead and the Bebop are able to land on water, and have a fishing theme, most likely because Ganymede's surface is mostly covered with water (it is later revealed that the Bebop was originally a fishing ship that Jet \"customized\" with larger engines). ~!During the series, it is revealed that Jet once lived with a woman named Alisa, who left him because he was too controlling. Later they meet up again when Alisa's new boyfriend Rhint is wanted for murder. Jet then ends up in a situation somewhat similar to that of Vicious, where he must hunt down a woman who broke his heart, and her lover. In a later episode, another Vicious/Spike parallel is set up when Jet finds out that it was his old partner Fad who betrayed him (though in Jet's case, there was no love affair involved). Fad arranged for Jet's death in a setup, but he survived with only a missing arm and a scar on his face. It is worth noting that Jet managed to face the demons of his past and let them go, in contrast to Spike, who was killed when he confronted his. This is likely due to the contrast in the two approaches to the past. While Spike hid and fled from his past, Jet tracked it down and confronted it.!~"
|
||||
},
|
||||
"voiceActors": [
|
||||
{
|
||||
"name": { "full": "Unshou Ishizuka" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n95357-umndcceko65h.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Beau Billingslea" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n95358-WswC6Q3j7dnB.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Philippe Roullier" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/9256.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Alfonso Ram\u00edrez" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n105030-gxZbxXNbufOh.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Gi hyeon Kim" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/14779.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Karl Schulz" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/default.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Nino Prester" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/default.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Mauro Ramos" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n180569-d5ctTE6UNLfi.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Ricardo Tejedo" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n182551-z5pxnDy9L0DJ.jpg"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"node": {
|
||||
"name": { "full": "Ein" },
|
||||
"gender": null,
|
||||
"dateOfBirth": { "year": null, "month": null, "day": null },
|
||||
"age": null,
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/character/medium/4.jpg"
|
||||
},
|
||||
"description": "Ein is a Pembroke Welsh Corgi brought aboard the Bebop by Spike after a failed attempt to capture a bounty. Ein is a \"data dog\": while the televised series only briefly hints on the fact that this means Ein's brain was somehow enhanced drastically, the manga shows Ed accessing data stored in Ein's brain via a virtual reality-type interface with which she has a conversation with a human proprietor. It is obvious that Ein is abnormally intelligent, as he is able to answer the telephone, drive a car (just the wheel), use the SSW, play sh\u014dgi, and generally do a number of other things that an average canine should not be able to do, but he never talks in a human language during the show. He does, however, speak in Session 18 \"Speak Like A Child\" after the credits Ein tells Spike \"Next Episode: Wild Horses\". He is able to \"speak\" to other species, as demonstrated in Session 17, \"Mushroom Samba\" (he spoke to a cow with a subtitled bark of \"Thanks\", to which the cow has a subtitled moo back of \"No problem\"). It is likely that Ed is the only crew member with any idea of Ein's capabilities, as the other crew members are quick to dismiss Ein, and never seem to acknowledge him as more than a pet. Ein initially takes a shine to Jet, but when Ed joins the crew, he comes around to her as well. Frequently the two trade roles, with Ein expressing very human sentiments via facial expression and Ed regressing to a feral state. He went with Ed after she left the crew, probably because of his attachment to her. His name is a pun on the Japanese word for \"dog\" (\u72ac inu) but is also German for \"one\". \"Ein\" may also be short for \"Einstein\", after Albert Einstein, because of the extraordinary intelligence he possesses."
|
||||
},
|
||||
"voiceActors": [
|
||||
{
|
||||
"name": { "full": "Kouichi Yamadera" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n95011-2RfLzncNyvbR.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Jonatas Carmona" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n231351-hjXONdRlwtsG.jpg"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"node": {
|
||||
"name": { "full": "Vicious" },
|
||||
"gender": "Male",
|
||||
"dateOfBirth": { "year": null, "month": null, "day": null },
|
||||
"age": null,
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/character/medium/b2734-aglO8RKNVxnn.jpg"
|
||||
},
|
||||
"description": "It's all in the name with Vicious: he is ruthless, bloodthirsty, cunning and ambitious, willing to do anything in order to secure a position of power. He is a member of the Red Dragon Crime Syndicate in Tharsis, and is often referred to or depicted as a venomous snake. His weapon of choice is not a firearm, but a katana which he wields skillfully, even against gun-wielders. \n\n~!After Spike's supposed death, Vicious also leaves the Red Dragons briefly to fight in the Titan War of 2068 although his precise motivations for enlisting are debated.!~"
|
||||
},
|
||||
"voiceActors": [
|
||||
{
|
||||
"name": { "full": "Norio Wakamoto" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n95084-RTrZSU38POPF.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Skip Stellrecht" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/384.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Roberto Chevalier" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/1266.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Szabolcs P\u00e1lmai" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/7814.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Marcos Pati\u00f1o" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n105020-ZpspJDXu5iTS.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Andreas Hosang" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/default.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Jacques Albaret" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n113869-wF45sVu1JAxR.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "William Viana" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n153462-TiLeyrUYBRTa.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Rafael Pacheco" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n182222-0Fz9qcwIYdVr.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Andr\u00e9s Guti\u00e9rrez Coto" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n108301-MdWBMH4h79NP.png"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"node": {
|
||||
"name": { "full": "Grencia Mars Elijah Guo Eckener" },
|
||||
"gender": null,
|
||||
"dateOfBirth": { "year": null, "month": null, "day": null },
|
||||
"age": null,
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/character/medium/b2736-0Eoluq9UxXu4.png"
|
||||
},
|
||||
"description": "Gren was once a soldier for the war on Titan, and appears in the two-part episodes of 'Jupiter Jazz'. On Titan he fought beside Vicious, who he admired and found encouragement in, during the war. After the war, Gren came back hoping to be a jazz musician, but that plan was cut short when he was arrested on the pretense of being a spy. In prison, Gren heard that Vicious testified against him; this and the isolation drove him mad. The prison used prisoners for drug experiments, and he was forced to become a test subject. (from Wikipedia) Height: 6ft 2 inches Age : 29 Weight : 172 pounds "
|
||||
},
|
||||
"voiceActors": [
|
||||
{
|
||||
"name": { "full": "Kenyuu Horiuchi" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/262.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Michael Gregory" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/668.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Seung jun Kim" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/14819.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Charles Rettinghaus" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n156036-a3yI3vcZscWP.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Marcelo Campos" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n96423-YaAvwaxG5fNk.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Luis Leonardo Su\u00e1rez" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n182235-4nWPBHLcz65x.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Roberto Mendiola" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n198310-yBOdbNEZylzU.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Vittorio De Angelis" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n158538-6FsfCIOtHUzx.png"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"node": {
|
||||
"name": { "full": "Julia" },
|
||||
"gender": null,
|
||||
"dateOfBirth": { "year": null, "month": null, "day": null },
|
||||
"age": null,
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/character/medium/b2735-0NRiXHK4PSWs.png"
|
||||
},
|
||||
"description": "Julia is a beautiful and mysterious woman from both Spike and Vicious' pasts. A love triangle among the three caused Spike to leave the syndicate rather than challenge Vicious. Spike had wanted to take her with him when he left the syndicate, but she was blackmailed by Vicious into almost shooting Spike. Vicious found out they were planning to run away together and confronted Julia, telling her that she would have to kill Spike, or both of them would be killed. To protect not only herself but also the man she loved, she ran away, never meeting Spike at the cemetery as both of them had planned. (from Wikipedia)"
|
||||
},
|
||||
"voiceActors": [
|
||||
{
|
||||
"name": { "full": "Mary Elizabeth McGlynn" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n95269-PhQ87wkVzLBb.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Gara Takashima" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n95497-ZisMmeLQfZr7.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Orsolya Ol\u00e1h" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/default.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Susan Sindberg" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n104747-3HN1vSuPSlEb.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Dulce Guerrero" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n106424-aHMqVAmkh5OD.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Anke Reitzenstein" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/default.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Eleonora De Angelis" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n157374-iq3dNBXijHRy.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Let\u00edcia Quinto" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n100136-x5kzXdgnFpS2.jpg"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"node": {
|
||||
"name": { "full": "Judy" },
|
||||
"gender": null,
|
||||
"dateOfBirth": { "year": null, "month": null, "day": null },
|
||||
"age": null,
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/character/medium/b6694-y0PmKzrcVa7A.png"
|
||||
},
|
||||
"description": "Co-hosts the TV show Big Shot along with Punch. The show features the duo in western attire and provides information on popular Bounty Heads throughout the star system. Judy acts like a stereotypical dumb-blonde, and wears a very revealing outfit. After Punch announces that the show has been cancelled, Judy reacts violently and exclaims that "The station will hear from her agent about this!" Later, it is revealed that she is engaged to be married to her agent."
|
||||
},
|
||||
"voiceActors": [
|
||||
{
|
||||
"name": { "full": "Miki Nagasawa" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n95209-9RHgLGkMrska.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Lia Sargent" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/835.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Rossella Acerbo" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/1677.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Angela Ringer" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/default.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Susan Sindberg" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n104747-3HN1vSuPSlEb.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Cec\u00edlia Lemes" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/12095.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Alicia Barrag\u00e1n" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n182221-N9LZsRKJBTCd.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Monserrat Mendoza" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n139011-PtSpM8k7zwlf.png"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"node": {
|
||||
"name": { "full": "Andy Von de Oniyate" },
|
||||
"gender": null,
|
||||
"dateOfBirth": { "year": null, "month": null, "day": null },
|
||||
"age": null,
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/character/medium/b23740-NCE7b9okKmeI.png"
|
||||
},
|
||||
"description": "Andy is a hunter who went after a criminal called Teddy Bomber whom he thought to be Spike. He is always with his mare, Onyx. He's a member of YMCA, Young Man's Cowboy Association. After fighting and losing he gives his cowboy title to Spike and turns into a samurai."
|
||||
},
|
||||
"voiceActors": [
|
||||
{
|
||||
"name": { "full": "Masashi Ebara" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n95179-ZXxATX9muGcD.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Daran Norris" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n95719-xM38IFuIRqgv.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "N\u00e1ndor Holl" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/7786.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Constantin Pappas" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n154153-y6Y8JWyyPnBG.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Marco Ant\u00f4nio Costa" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n191888-8c9SpkajaMmq.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Idzi Dutkiewicz" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n108299-vems5azPxtU5.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Ulises Zavala" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/n232410-ZNSOyFA2EHO7.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": { "full": "Sandro Acerbo" },
|
||||
"image": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/staff/medium/1096.jpg"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"studios": {
|
||||
"nodes": [
|
||||
{ "name": "Sunrise", "isAnimationStudio": true },
|
||||
{ "name": "Bandai Visual", "isAnimationStudio": false },
|
||||
{ "name": "Bandai Entertainment", "isAnimationStudio": false }
|
||||
]
|
||||
},
|
||||
"season": "SPRING",
|
||||
"format": "TV",
|
||||
"status": "FINISHED",
|
||||
"seasonYear": 1998,
|
||||
"description": "Enter a world in the distant future, where Bounty Hunters roam the solar system. Spike and Jet, bounty hunting partners, set out on journeys in an ever struggling effort to win bounty rewards to survive.<br><br>\nWhile traveling, they meet up with other very interesting people. Could Faye, the beautiful and ridiculously poor gambler, Edward, the computer genius, and Ein, the engineered dog be a good addition to the group?",
|
||||
"genres": ["Action", "Adventure", "Drama", "Sci-Fi"],
|
||||
"synonyms": [
|
||||
"\uce74\uc6b0\ubcf4\uc774 \ube44\ubc25",
|
||||
"\u05e7\u05d0\u05d5\u05d1\u05d5\u05d9 \u05d1\u05d9\u05d1\u05d5\u05e4",
|
||||
"\u0e04\u0e32\u0e27\u0e1a\u0e2d\u0e22 \u0e1a\u0e35\u0e1a\u0e4a\u0e2d\u0e1b",
|
||||
"\u041a\u043e\u0432\u0431\u043e\u0439 \u0411\u0438\u0431\u043e\u043f",
|
||||
"\u039a\u03b1\u03bf\u03c5\u03bc\u03c0\u03cc\u03b7\u03b4\u03b5\u03c2 \u03c4\u03bf\u03c5 \u0394\u03b9\u03b1\u03c3\u03c4\u03ae\u03bc\u03b1\u03c4\u03bf\u03c2",
|
||||
"Kowboj Bebop"
|
||||
],
|
||||
"startDate": { "year": 1998, "month": 4, "day": 3 },
|
||||
"endDate": { "year": 1999, "month": 4, "day": 24 },
|
||||
"duration": 24,
|
||||
"countryOfOrigin": "JP",
|
||||
"averageScore": 86,
|
||||
"source": "ORIGINAL",
|
||||
"hashtag": null,
|
||||
"siteUrl": "https://anilist.co/anime/1",
|
||||
"nextAiringEpisode": null,
|
||||
"tags": [
|
||||
{ "name": "Space", "rank": 94 },
|
||||
{ "name": "Crime", "rank": 92 },
|
||||
{ "name": "Episodic", "rank": 88 },
|
||||
{ "name": "Ensemble Cast", "rank": 86 },
|
||||
{ "name": "Primarily Adult Cast", "rank": 85 },
|
||||
{ "name": "Tragedy", "rank": 80 },
|
||||
{ "name": "Travel", "rank": 80 },
|
||||
{ "name": "Noir", "rank": 80 },
|
||||
{ "name": "Male Protagonist", "rank": 78 },
|
||||
{ "name": "Guns", "rank": 78 },
|
||||
{ "name": "Cyberpunk", "rank": 77 },
|
||||
{ "name": "Philosophy", "rank": 72 },
|
||||
{ "name": "Tomboy", "rank": 71 },
|
||||
{ "name": "Martial Arts", "rank": 67 },
|
||||
{ "name": "Terrorism", "rank": 66 },
|
||||
{ "name": "Anti-Hero", "rank": 64 },
|
||||
{ "name": "Found Family", "rank": 60 },
|
||||
{ "name": "Amnesia", "rank": 60 },
|
||||
{ "name": "Cyborg", "rank": 58 },
|
||||
{ "name": "Gambling", "rank": 57 },
|
||||
{ "name": "Yakuza", "rank": 50 },
|
||||
{ "name": "Drugs", "rank": 49 },
|
||||
{ "name": "Cult", "rank": 42 },
|
||||
{ "name": "Police", "rank": 37 },
|
||||
{ "name": "Tanned Skin", "rank": 35 },
|
||||
{ "name": "Nudity", "rank": 30 },
|
||||
{ "name": "Circus", "rank": 10 }
|
||||
],
|
||||
"reviews": {
|
||||
"nodes": [
|
||||
{
|
||||
"summary": "I think it's time we blow this scene, get everybody and the stuff together... okay, three, two, one, let's jam.",
|
||||
"user": {
|
||||
"name": "Pursueth",
|
||||
"avatar": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/user/avatar/medium/b5984516-vVhftslD3YbM.jpg"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"summary": "Been carrying the weight for two years now. Truly my favorite anime.",
|
||||
"user": {
|
||||
"name": "honkytonkwomen",
|
||||
"avatar": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/user/avatar/medium/b5382323-LaMixPweP4eB.jpg"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"summary": "Okay, 3, 2, 1 let's jam",
|
||||
"user": {
|
||||
"name": "TheRealKyuubey",
|
||||
"avatar": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/user/avatar/medium/b173334-U6tLWQoaepDP.png"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"summary": "Cowboy Bebop: A Timeless Journey Through Space and Jazz",
|
||||
"user": {
|
||||
"name": "3dnane",
|
||||
"avatar": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/user/avatar/medium/b6497672-U4Ljca8ZT4bn.jpg"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"summary": "A story from the past that teaches us to look to the future",
|
||||
"user": {
|
||||
"name": "Arikarikita",
|
||||
"avatar": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/user/avatar/medium/b883323-qLr1bYr6GGhv.png"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"summary": "Cowboy Bebop was a bet.",
|
||||
"user": {
|
||||
"name": "paradigm",
|
||||
"avatar": {
|
||||
"medium": "https://s4.anilist.co/file/anilistcdn/user/avatar/medium/b211063-M7bZqsY3D98s.png"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"recommendations": {
|
||||
"nodes": [
|
||||
{
|
||||
"mediaRecommendation": {
|
||||
"title": {
|
||||
"romaji": "Samurai Champloo",
|
||||
"english": "Samurai Champloo"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mediaRecommendation": {
|
||||
"title": { "romaji": "TRIGUN", "english": "Trigun" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"mediaRecommendation": {
|
||||
"title": {
|
||||
"romaji": "GREAT PRETENDER",
|
||||
"english": "Great Pretender"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mediaRecommendation": {
|
||||
"title": {
|
||||
"romaji": "Space\u2606Dandy",
|
||||
"english": "Space Dandy"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mediaRecommendation": {
|
||||
"title": {
|
||||
"romaji": "BLACK LAGOON",
|
||||
"english": "Black Lagoon"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mediaRecommendation": {
|
||||
"title": { "romaji": "Baccano!", "english": "Baccano!" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"mediaRecommendation": {
|
||||
"title": {
|
||||
"romaji": "Michiko to Hatchin",
|
||||
"english": "Michiko & Hatchin"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mediaRecommendation": {
|
||||
"title": { "romaji": "Lupin III", "english": "Lupin the 3rd" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"mediaRecommendation": {
|
||||
"title": {
|
||||
"romaji": "Koukaku Kidoutai: STAND ALONE COMPLEX",
|
||||
"english": "Ghost in the Shell: Stand Alone Complex"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mediaRecommendation": {
|
||||
"title": {
|
||||
"romaji": "Seihou Bukyou Outlaw Star",
|
||||
"english": "Outlaw Star"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mediaRecommendation": {
|
||||
"title": {
|
||||
"romaji": "TRIGUN STAMPEDE",
|
||||
"english": "TRIGUN STAMPEDE"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mediaRecommendation": {
|
||||
"title": {
|
||||
"romaji": "Shin Seiki Evangelion",
|
||||
"english": "Neon Genesis Evangelion"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mediaRecommendation": {
|
||||
"title": {
|
||||
"romaji": "Cyberpunk: Edgerunners",
|
||||
"english": "Cyberpunk: Edgerunners"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mediaRecommendation": {
|
||||
"title": {
|
||||
"romaji": "Kekkai Sensen",
|
||||
"english": "Blood Blockade Battlefront"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mediaRecommendation": {
|
||||
"title": { "romaji": "THE Big O", "english": "The Big O" }
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"relations": {
|
||||
"nodes": [
|
||||
{
|
||||
"title": {
|
||||
"romaji": "Cowboy Bebop: Tengoku no Tobira",
|
||||
"english": "Cowboy Bebop: The Movie - Knockin' on Heaven's Door",
|
||||
"native": "\u30ab\u30a6\u30dc\u30fc\u30a4\u30d3\u30d0\u30c3\u30d7\u5929\u56fd\u306e\u6249"
|
||||
}
|
||||
},
|
||||
{
|
||||
"title": {
|
||||
"romaji": "Cowboy Bebop: Ein no Natsuyasumi",
|
||||
"english": "Ein's Summer Vacation",
|
||||
"native": "\u30a2\u30a4\u30f3\u306e\u306a\u3064\u3084\u3059\u307f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"title": {
|
||||
"romaji": "Cowboy Bebop",
|
||||
"english": "Cowboy Bebop",
|
||||
"native": "\u30ab\u30a6\u30dc\u30fc\u30a4\u30d3\u30d0\u30c3\u30d7"
|
||||
}
|
||||
},
|
||||
{
|
||||
"title": {
|
||||
"romaji": "Shooting Star Bebop: Cowboy Bebop",
|
||||
"english": "Cowboy Bebop Shooting Star",
|
||||
"native": "\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u30b9\u30bf\u30fc\u30d3\u30d0\u30c3\u30d7 \u30ab\u30a6\u30dc\u30fc\u30a4\u30d3\u30d0\u30c3\u30d7"
|
||||
}
|
||||
},
|
||||
{
|
||||
"title": {
|
||||
"romaji": "Cowboy Bebop: Yoseatsume Blues",
|
||||
"english": null,
|
||||
"native": "\u30ab\u30a6\u30dc\u30fc\u30a4\u30d3\u30d0\u30c3\u30d7 \u3088\u305b\u3042\u3064\u3081\u30d6\u30eb\u30fc\u30b9"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"externalLinks": [
|
||||
{
|
||||
"url": "http://www.hulu.com/cowboy-bebop",
|
||||
"site": "Hulu",
|
||||
"icon": "https://s4.anilist.co/file/anilistcdn/link/icon/7-rM06PQyWONGC.png"
|
||||
},
|
||||
{
|
||||
"url": "http://www.crunchyroll.com/cowboy-bebop",
|
||||
"site": "Crunchyroll",
|
||||
"icon": "https://s4.anilist.co/file/anilistcdn/link/icon/5-AWN2pVlluCOO.png"
|
||||
},
|
||||
{
|
||||
"url": "https://www.amazon.com/gp/video/detail/B00R2KO8ZE/",
|
||||
"site": "Amazon Prime Video",
|
||||
"icon": "https://s4.anilist.co/file/anilistcdn/link/icon/21-bDoNIomehkOx.png"
|
||||
},
|
||||
{
|
||||
"url": "https://tubitv.com/series/2052",
|
||||
"site": "Tubi TV",
|
||||
"icon": "https://s4.anilist.co/file/anilistcdn/link/icon/30-H2h0Fxnog1Pr.png"
|
||||
},
|
||||
{
|
||||
"url": "https://www.adultswim.com/videos/cowboy-bebop",
|
||||
"site": "Adult Swim",
|
||||
"icon": "https://s4.anilist.co/file/anilistcdn/link/icon/28-W1L8AHW0O4xE.png"
|
||||
},
|
||||
{
|
||||
"url": "https://www.netflix.com/title/80001305",
|
||||
"site": "Netflix",
|
||||
"icon": "https://s4.anilist.co/file/anilistcdn/link/icon/10-rVGPom8RCiwH.png"
|
||||
},
|
||||
{
|
||||
"url": "https://cowboy-bebop.net/",
|
||||
"site": "Official Site",
|
||||
"icon": null
|
||||
}
|
||||
],
|
||||
"rankings": [
|
||||
{ "rank": 44, "context": "highest rated all time" },
|
||||
{ "rank": 54, "context": "most popular all time" },
|
||||
{ "rank": 1, "context": "highest rated" },
|
||||
{ "rank": 1, "context": "most popular" }
|
||||
],
|
||||
"bannerImage": "https://s4.anilist.co/file/anilistcdn/media/anime/banner/1-OquNCNB6srGe.jpg"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,71 +0,0 @@
|
||||
query($query:String){
|
||||
Page(perPage:15,page:$page){
|
||||
pageInfo{
|
||||
total
|
||||
currentPage
|
||||
}
|
||||
media(
|
||||
search:$query,
|
||||
genre_in:$genre_in,
|
||||
genre_not_in:$genre_not_in,
|
||||
tag_in:$tag_in,
|
||||
tag_not_in:$tag_not_in,
|
||||
status_in:$status_in,
|
||||
status_not_in:$status_not_in,
|
||||
popularity_greater:$popularity_greater,
|
||||
popularity_lesser:$popularity_lesser,
|
||||
averageScore_greater:$averageScore_greater,
|
||||
averageScore_lesser:$averageScore_lesser,
|
||||
startDate_greater:$startDate_greater,
|
||||
startDate_lesser:$startDate_lesser,
|
||||
endDate_greater:$endDate_greater,
|
||||
endDate_lesser:$endDate_lesser,
|
||||
sort:$sort,
|
||||
type:ANIME
|
||||
)
|
||||
{
|
||||
id
|
||||
title{
|
||||
romaji
|
||||
english
|
||||
}
|
||||
coverImage{
|
||||
medium
|
||||
}
|
||||
trailer {
|
||||
site
|
||||
id
|
||||
|
||||
}
|
||||
popularity
|
||||
favourites
|
||||
averageScore
|
||||
episodes
|
||||
genres
|
||||
studios{
|
||||
nodes{
|
||||
name
|
||||
favourites
|
||||
}
|
||||
}
|
||||
tags {
|
||||
name
|
||||
}
|
||||
startDate {
|
||||
year
|
||||
month
|
||||
day
|
||||
}
|
||||
endDate {
|
||||
year
|
||||
month
|
||||
day
|
||||
}
|
||||
status
|
||||
nextAiringEpisode {
|
||||
timeUntilAiring
|
||||
airingAt
|
||||
episode
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,425 +0,0 @@
|
||||
[
|
||||
{
|
||||
"episode": 1,
|
||||
"streams": [
|
||||
{
|
||||
"quality": 2160,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-281210110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=cb00cb784589adbaceceb0fa139943fa&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=0fff2748095c5e0330934793408757d3f51ce260eff3d39b6b96e6dc51201cc8&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=419c3e929cd04770d08cb0eb8f95470d&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=93ee08fbb96878bc55af2ed52bf9d176d96d93656ff865d59ed817bb04ecdedc&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=81958d2e221d15d2c338619036f29c0e&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=bfcfa2cdb0b8deb5154d651a96ce22a6b4b0745d10b28fca87a6908328c5aa17&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=d808b57371897bb4174112c3a53c6ed2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=30bb7b24ea912715ec2e9e76dfbb7b2703a824389d867b78b472d2d555b94b0c&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_1_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 1080,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-261210110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=02ff8e9f9060bc3437356a7cb6cc1ed1&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=836a02ef21ecc1a02034d7d10083bdf97103df2a586d8ba6009d8521abd855ac&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=419c3e929cd04770d08cb0eb8f95470d&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=93ee08fbb96878bc55af2ed52bf9d176d96d93656ff865d59ed817bb04ecdedc&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=81958d2e221d15d2c338619036f29c0e&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=bfcfa2cdb0b8deb5154d651a96ce22a6b4b0745d10b28fca87a6908328c5aa17&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=d808b57371897bb4174112c3a53c6ed2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=30bb7b24ea912715ec2e9e76dfbb7b2703a824389d867b78b472d2d555b94b0c&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_1_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 1080,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-251210110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=f99d431016260b0922d9020489ba7199&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=d94064afd352f39f9a57c1fe0b0c97eec231849dbdbcb0fdd070497cc5d86877&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=419c3e929cd04770d08cb0eb8f95470d&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=93ee08fbb96878bc55af2ed52bf9d176d96d93656ff865d59ed817bb04ecdedc&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=81958d2e221d15d2c338619036f29c0e&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=bfcfa2cdb0b8deb5154d651a96ce22a6b4b0745d10b28fca87a6908328c5aa17&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=d808b57371897bb4174112c3a53c6ed2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=30bb7b24ea912715ec2e9e76dfbb7b2703a824389d867b78b472d2d555b94b0c&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_1_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 720,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-241210110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=730fa341c3839f233e8a367d04c59306&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=7b2539b70f4a7f8c354e297a974a21fea81d571775c1a18dd754d4f58b061d90&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=419c3e929cd04770d08cb0eb8f95470d&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=93ee08fbb96878bc55af2ed52bf9d176d96d93656ff865d59ed817bb04ecdedc&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=81958d2e221d15d2c338619036f29c0e&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=bfcfa2cdb0b8deb5154d651a96ce22a6b4b0745d10b28fca87a6908328c5aa17&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=d808b57371897bb4174112c3a53c6ed2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=30bb7b24ea912715ec2e9e76dfbb7b2703a824389d867b78b472d2d555b94b0c&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_1_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 480,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-231210110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=a09b45f68cb418e807eeb090b23d510e&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=7da6b3ffe8d32c9495fb77af7b18b358d5d1eced6ced88c99312a38522e13340&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=419c3e929cd04770d08cb0eb8f95470d&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=93ee08fbb96878bc55af2ed52bf9d176d96d93656ff865d59ed817bb04ecdedc&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=81958d2e221d15d2c338619036f29c0e&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=bfcfa2cdb0b8deb5154d651a96ce22a6b4b0745d10b28fca87a6908328c5aa17&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=d808b57371897bb4174112c3a53c6ed2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=30bb7b24ea912715ec2e9e76dfbb7b2703a824389d867b78b472d2d555b94b0c&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_1_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 360,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-211210110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=9e17e8e2f788307cd6ab4208332c45b2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=65ea6b54125595f8ebc55362d30b9367fac6517e2fe8b32aabb08ad0abfb5a8c&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=419c3e929cd04770d08cb0eb8f95470d&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=93ee08fbb96878bc55af2ed52bf9d176d96d93656ff865d59ed817bb04ecdedc&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=81958d2e221d15d2c338619036f29c0e&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=bfcfa2cdb0b8deb5154d651a96ce22a6b4b0745d10b28fca87a6908328c5aa17&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=d808b57371897bb4174112c3a53c6ed2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=30bb7b24ea912715ec2e9e76dfbb7b2703a824389d867b78b472d2d555b94b0c&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_1_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 240,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2e1210110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=53991473cb3bce40502a72593be91b52&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=29e7fcc042beae346d067210649fc6d31e60b7d438bb00d9877ac4049ed7afd9&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=419c3e929cd04770d08cb0eb8f95470d&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=93ee08fbb96878bc55af2ed52bf9d176d96d93656ff865d59ed817bb04ecdedc&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=81958d2e221d15d2c338619036f29c0e&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=bfcfa2cdb0b8deb5154d651a96ce22a6b4b0745d10b28fca87a6908328c5aa17&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=d808b57371897bb4174112c3a53c6ed2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=30bb7b24ea912715ec2e9e76dfbb7b2703a824389d867b78b472d2d555b94b0c&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_1_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 144,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2f1210110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=38d619a08803fbeae4ce516df0025aa3&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=d7abaf668ed19a948b6597721d47b5c69cae7aa3f7ae965121e07ee23b82ef3f&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=419c3e929cd04770d08cb0eb8f95470d&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=93ee08fbb96878bc55af2ed52bf9d176d96d93656ff865d59ed817bb04ecdedc&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=81958d2e221d15d2c338619036f29c0e&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=bfcfa2cdb0b8deb5154d651a96ce22a6b4b0745d10b28fca87a6908328c5aa17&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=d808b57371897bb4174112c3a53c6ed2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=30bb7b24ea912715ec2e9e76dfbb7b2703a824389d867b78b472d2d555b94b0c&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_1_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 2160,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-281220110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=0d3feddd596b49619e240c063f47de83i&mid=1715226141&platform=pc&upsig=83e007567b4a487687b013ee6179d405&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=59635b60fa44105a97b961210f58d8918e7269900cdda1e621b9e947e5d86c36&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=419c3e929cd04770d08cb0eb8f95470d&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=93ee08fbb96878bc55af2ed52bf9d176d96d93656ff865d59ed817bb04ecdedc&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=81958d2e221d15d2c338619036f29c0e&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=bfcfa2cdb0b8deb5154d651a96ce22a6b4b0745d10b28fca87a6908328c5aa17&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=d808b57371897bb4174112c3a53c6ed2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=30bb7b24ea912715ec2e9e76dfbb7b2703a824389d867b78b472d2d555b94b0c&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_1_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 1080,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-261220110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=0d3feddd596b49619e240c063f47de83i&mid=1715226141&platform=pc&upsig=5a765ca2a4bc69821cf8f13fe1864fb9&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=9fc3d5682ac7a4cdbe37dad60f49c3b6f53dc84979f2b71e5d1e0b4ca2784374&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=419c3e929cd04770d08cb0eb8f95470d&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=93ee08fbb96878bc55af2ed52bf9d176d96d93656ff865d59ed817bb04ecdedc&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=81958d2e221d15d2c338619036f29c0e&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=bfcfa2cdb0b8deb5154d651a96ce22a6b4b0745d10b28fca87a6908328c5aa17&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=d808b57371897bb4174112c3a53c6ed2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=30bb7b24ea912715ec2e9e76dfbb7b2703a824389d867b78b472d2d555b94b0c&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_1_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 1080,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-251220110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=0d3feddd596b49619e240c063f47de83i&mid=1715226141&platform=pc&upsig=d0c61918b0e282f76f736d1c736f9ec8&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=fdff82180978f3b07104033dddd2014f9a5e49f1124995f35cfcc29785abb570&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=419c3e929cd04770d08cb0eb8f95470d&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=93ee08fbb96878bc55af2ed52bf9d176d96d93656ff865d59ed817bb04ecdedc&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=81958d2e221d15d2c338619036f29c0e&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=bfcfa2cdb0b8deb5154d651a96ce22a6b4b0745d10b28fca87a6908328c5aa17&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=d808b57371897bb4174112c3a53c6ed2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=30bb7b24ea912715ec2e9e76dfbb7b2703a824389d867b78b472d2d555b94b0c&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_1_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 720,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-241220110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=0d3feddd596b49619e240c063f47de83i&mid=1715226141&platform=pc&upsig=d62ed27057c8b6a6bd9c3d5dfce6c244&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=2bbef8b303b91623bf8f4c7a822a6a732edddda155093e363608bbecea77f0d4&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=419c3e929cd04770d08cb0eb8f95470d&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=93ee08fbb96878bc55af2ed52bf9d176d96d93656ff865d59ed817bb04ecdedc&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=81958d2e221d15d2c338619036f29c0e&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=bfcfa2cdb0b8deb5154d651a96ce22a6b4b0745d10b28fca87a6908328c5aa17&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=d808b57371897bb4174112c3a53c6ed2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=30bb7b24ea912715ec2e9e76dfbb7b2703a824389d867b78b472d2d555b94b0c&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_1_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 480,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-231220110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=0d3feddd596b49619e240c063f47de83i&mid=1715226141&platform=pc&upsig=3f133a535a1f792e6f2344634d6ac519&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=0bd35aae28c3c0c8eb48f20e68958f7c95ec7be94db9da75ed3642569f3e18fb&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=419c3e929cd04770d08cb0eb8f95470d&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=93ee08fbb96878bc55af2ed52bf9d176d96d93656ff865d59ed817bb04ecdedc&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=81958d2e221d15d2c338619036f29c0e&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=bfcfa2cdb0b8deb5154d651a96ce22a6b4b0745d10b28fca87a6908328c5aa17&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=d808b57371897bb4174112c3a53c6ed2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=30bb7b24ea912715ec2e9e76dfbb7b2703a824389d867b78b472d2d555b94b0c&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_1_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 360,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-211220110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=0d3feddd596b49619e240c063f47de83i&mid=1715226141&platform=pc&upsig=9cc8f9105cf2b103498edcb0b598172b&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=c53f5655b975d10dc84e3e64d0a4cef05e28570eebb463d83fed2a3d8f9b7811&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=419c3e929cd04770d08cb0eb8f95470d&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=93ee08fbb96878bc55af2ed52bf9d176d96d93656ff865d59ed817bb04ecdedc&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=81958d2e221d15d2c338619036f29c0e&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=bfcfa2cdb0b8deb5154d651a96ce22a6b4b0745d10b28fca87a6908328c5aa17&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=d808b57371897bb4174112c3a53c6ed2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=30bb7b24ea912715ec2e9e76dfbb7b2703a824389d867b78b472d2d555b94b0c&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_1_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 240,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2e1220110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=0d3feddd596b49619e240c063f47de83i&mid=1715226141&platform=pc&upsig=94e89139eb6c68c3abaa60732b71d9b5&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=857664970a080beafe4c0eecfd55d74d02488ab2540f3fb7a761d8de1cbb7d73&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=419c3e929cd04770d08cb0eb8f95470d&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=93ee08fbb96878bc55af2ed52bf9d176d96d93656ff865d59ed817bb04ecdedc&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=81958d2e221d15d2c338619036f29c0e&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=bfcfa2cdb0b8deb5154d651a96ce22a6b4b0745d10b28fca87a6908328c5aa17&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=d808b57371897bb4174112c3a53c6ed2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=30bb7b24ea912715ec2e9e76dfbb7b2703a824389d867b78b472d2d555b94b0c&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_1_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 144,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2f1220110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=0d3feddd596b49619e240c063f47de83i&mid=1715226141&platform=pc&upsig=b1cf645fb59d1a842513c0e1009ebe48&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=027ee786681aa3a335293a80df939a5c07566acaca78b1634665ea4a69f06ed9&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=419c3e929cd04770d08cb0eb8f95470d&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=93ee08fbb96878bc55af2ed52bf9d176d96d93656ff865d59ed817bb04ecdedc&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=81958d2e221d15d2c338619036f29c0e&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=bfcfa2cdb0b8deb5154d651a96ce22a6b4b0745d10b28fca87a6908328c5aa17&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/9v/lr/n230705er39jxogp0ap3b823gkkylr9v-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806416&gen=playurlv2&os=akam&oi=2823883151&trid=cdad1de563c743629bdbef3a82d44df0i&mid=1715226141&platform=pc&upsig=d808b57371897bb4174112c3a53c6ed2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806416~hmac=30bb7b24ea912715ec2e9e76dfbb7b2703a824389d867b78b472d2d555b94b0c&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_1_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"stream_url": "https://tools.fast4speed.rsvp//media7/videos/LYKSutL2PaAjYyXWz/sub/1",
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_1_sub_English"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"episode": 2,
|
||||
"streams": [
|
||||
{
|
||||
"quality": 2160,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-281210110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=524b69564543fbf4f3d4c68b6c3c1d09&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=6d81e4cd3e315752490834a7a10b0c87aed91c328b5c7bf3bf6d26f05ac88497&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=1db546d64c64be51daa2a29c5d174445&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=b44869856e3c8a7d8e7e83fbee0cd9dab8cb5f85897ea559a54d332554c5d309&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=3631738cb91c22b18272e76b136b3528&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=7c49369f5d56c50d4ad05efcf296bcfc2b8915970315eab22153144a5cad38d6&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=9e88250822bf3a37ef07d3db28264aef&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=46af0b8bc556f8b9ff8c2d31f2e474803c8feb9516e76b08ef9a18514c7be347&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_2_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 1080,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-261210110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=cb2fea1f90e4446670dff59f478b4ae9&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=8c9def323472882639cd860c4fa9597383f738ea15f87c642555095c04735e5f&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=1db546d64c64be51daa2a29c5d174445&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=b44869856e3c8a7d8e7e83fbee0cd9dab8cb5f85897ea559a54d332554c5d309&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=3631738cb91c22b18272e76b136b3528&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=7c49369f5d56c50d4ad05efcf296bcfc2b8915970315eab22153144a5cad38d6&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=9e88250822bf3a37ef07d3db28264aef&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=46af0b8bc556f8b9ff8c2d31f2e474803c8feb9516e76b08ef9a18514c7be347&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_2_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 1080,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-251210110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=43c3d1bae3d7eb6a8bc0288f12e1bc9f&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=17755eaa1600fb6e16fc1e1e6752e2a36f54f12a8bbccadbf59e21c44e2227b1&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=1db546d64c64be51daa2a29c5d174445&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=b44869856e3c8a7d8e7e83fbee0cd9dab8cb5f85897ea559a54d332554c5d309&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=3631738cb91c22b18272e76b136b3528&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=7c49369f5d56c50d4ad05efcf296bcfc2b8915970315eab22153144a5cad38d6&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=9e88250822bf3a37ef07d3db28264aef&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=46af0b8bc556f8b9ff8c2d31f2e474803c8feb9516e76b08ef9a18514c7be347&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_2_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 720,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-241210110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=ed96f5dbb3243056c2184c5f0b6043bc&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=3376b48990131bd8e8e72e328ba519b329956d9fe83cdef4884de957840d4048&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=1db546d64c64be51daa2a29c5d174445&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=b44869856e3c8a7d8e7e83fbee0cd9dab8cb5f85897ea559a54d332554c5d309&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=3631738cb91c22b18272e76b136b3528&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=7c49369f5d56c50d4ad05efcf296bcfc2b8915970315eab22153144a5cad38d6&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=9e88250822bf3a37ef07d3db28264aef&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=46af0b8bc556f8b9ff8c2d31f2e474803c8feb9516e76b08ef9a18514c7be347&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_2_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 480,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-231210110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=9b5e3042a4b7ef1c297da688491a597f&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=db7e82bea1c34954c95350128a9b36aa99115a5720876ab7d4f04b4ab5d27296&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=1db546d64c64be51daa2a29c5d174445&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=b44869856e3c8a7d8e7e83fbee0cd9dab8cb5f85897ea559a54d332554c5d309&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=3631738cb91c22b18272e76b136b3528&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=7c49369f5d56c50d4ad05efcf296bcfc2b8915970315eab22153144a5cad38d6&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=9e88250822bf3a37ef07d3db28264aef&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=46af0b8bc556f8b9ff8c2d31f2e474803c8feb9516e76b08ef9a18514c7be347&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_2_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 360,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-211210110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=eb082a3debd772ec8ec7652e0269eef0&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=331c2ef5a5a9fd182462062134e35567a62ab7598edf7a93678918c76d7f2754&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=1db546d64c64be51daa2a29c5d174445&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=b44869856e3c8a7d8e7e83fbee0cd9dab8cb5f85897ea559a54d332554c5d309&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=3631738cb91c22b18272e76b136b3528&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=7c49369f5d56c50d4ad05efcf296bcfc2b8915970315eab22153144a5cad38d6&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=9e88250822bf3a37ef07d3db28264aef&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=46af0b8bc556f8b9ff8c2d31f2e474803c8feb9516e76b08ef9a18514c7be347&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_2_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 240,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2e1210110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=c7978f5178ca0041e4f9edf8d57a899f&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=5d7fe506b0f7784eb47aa85f2dcc99fffeb6d715ee71bb3766a51a8c747e6b39&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=1db546d64c64be51daa2a29c5d174445&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=b44869856e3c8a7d8e7e83fbee0cd9dab8cb5f85897ea559a54d332554c5d309&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=3631738cb91c22b18272e76b136b3528&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=7c49369f5d56c50d4ad05efcf296bcfc2b8915970315eab22153144a5cad38d6&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=9e88250822bf3a37ef07d3db28264aef&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=46af0b8bc556f8b9ff8c2d31f2e474803c8feb9516e76b08ef9a18514c7be347&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_2_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 144,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2f1210110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=59e5be290a3224956c898b95cef6b149&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=a44bca5b557490d30ef52537a93dd0ce47a5dab8db5c19fbe5935e49b0bfc71f&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=1db546d64c64be51daa2a29c5d174445&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=b44869856e3c8a7d8e7e83fbee0cd9dab8cb5f85897ea559a54d332554c5d309&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=3631738cb91c22b18272e76b136b3528&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=7c49369f5d56c50d4ad05efcf296bcfc2b8915970315eab22153144a5cad38d6&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=9e88250822bf3a37ef07d3db28264aef&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=46af0b8bc556f8b9ff8c2d31f2e474803c8feb9516e76b08ef9a18514c7be347&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_2_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 2160,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-281220110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=893c4505892c4e239a3a1aa3cc0ad30ai&mid=1715226141&platform=pc&upsig=31265763ba5db068abf292c0f97e4b66&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=006292cd147652fe63354536afdc1cb063b996b370efe2790d4e49a98fd84ef3&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=1db546d64c64be51daa2a29c5d174445&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=b44869856e3c8a7d8e7e83fbee0cd9dab8cb5f85897ea559a54d332554c5d309&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=3631738cb91c22b18272e76b136b3528&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=7c49369f5d56c50d4ad05efcf296bcfc2b8915970315eab22153144a5cad38d6&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=9e88250822bf3a37ef07d3db28264aef&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=46af0b8bc556f8b9ff8c2d31f2e474803c8feb9516e76b08ef9a18514c7be347&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_2_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 1080,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-261220110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=893c4505892c4e239a3a1aa3cc0ad30ai&mid=1715226141&platform=pc&upsig=0119546d4b9d3470ac382dd9de3bb4c7&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=cae44130401286c51353667dc3a0bc14f86fdfe12461da839786008d2013c773&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=1db546d64c64be51daa2a29c5d174445&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=b44869856e3c8a7d8e7e83fbee0cd9dab8cb5f85897ea559a54d332554c5d309&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=3631738cb91c22b18272e76b136b3528&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=7c49369f5d56c50d4ad05efcf296bcfc2b8915970315eab22153144a5cad38d6&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=9e88250822bf3a37ef07d3db28264aef&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=46af0b8bc556f8b9ff8c2d31f2e474803c8feb9516e76b08ef9a18514c7be347&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_2_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 1080,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-251220110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=893c4505892c4e239a3a1aa3cc0ad30ai&mid=1715226141&platform=pc&upsig=a165d30b028da157106f918dd1da47b8&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=70eb53d921969914a41ecc829799aaf93f771f2896aa0f24895fa08563011b4a&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=1db546d64c64be51daa2a29c5d174445&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=b44869856e3c8a7d8e7e83fbee0cd9dab8cb5f85897ea559a54d332554c5d309&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=3631738cb91c22b18272e76b136b3528&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=7c49369f5d56c50d4ad05efcf296bcfc2b8915970315eab22153144a5cad38d6&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=9e88250822bf3a37ef07d3db28264aef&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=46af0b8bc556f8b9ff8c2d31f2e474803c8feb9516e76b08ef9a18514c7be347&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_2_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 720,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-241220110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=893c4505892c4e239a3a1aa3cc0ad30ai&mid=1715226141&platform=pc&upsig=44f1f4283a9ab0477d54ee1b17920439&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=ccfde33644f85a1bd17e2fe959d517015a2abbfad81c53633b607f9d46536a7e&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=1db546d64c64be51daa2a29c5d174445&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=b44869856e3c8a7d8e7e83fbee0cd9dab8cb5f85897ea559a54d332554c5d309&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=3631738cb91c22b18272e76b136b3528&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=7c49369f5d56c50d4ad05efcf296bcfc2b8915970315eab22153144a5cad38d6&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=9e88250822bf3a37ef07d3db28264aef&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=46af0b8bc556f8b9ff8c2d31f2e474803c8feb9516e76b08ef9a18514c7be347&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_2_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 480,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-231220110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=893c4505892c4e239a3a1aa3cc0ad30ai&mid=1715226141&platform=pc&upsig=d7c85bc331e1969ef09e10af9fb955e4&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=1fd5b2f944f87f8d22499ba46cacee299080dd82136489ac15063d7d40377708&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=1db546d64c64be51daa2a29c5d174445&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=b44869856e3c8a7d8e7e83fbee0cd9dab8cb5f85897ea559a54d332554c5d309&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=3631738cb91c22b18272e76b136b3528&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=7c49369f5d56c50d4ad05efcf296bcfc2b8915970315eab22153144a5cad38d6&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=9e88250822bf3a37ef07d3db28264aef&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=46af0b8bc556f8b9ff8c2d31f2e474803c8feb9516e76b08ef9a18514c7be347&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_2_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 360,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-211220110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=893c4505892c4e239a3a1aa3cc0ad30ai&mid=1715226141&platform=pc&upsig=2d41ffea376120e178ece52948ad95f5&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=c95c968cb54a6647fd17015d14d09cfb4a9901e54bd30f3811419e03334efc38&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=1db546d64c64be51daa2a29c5d174445&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=b44869856e3c8a7d8e7e83fbee0cd9dab8cb5f85897ea559a54d332554c5d309&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=3631738cb91c22b18272e76b136b3528&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=7c49369f5d56c50d4ad05efcf296bcfc2b8915970315eab22153144a5cad38d6&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=9e88250822bf3a37ef07d3db28264aef&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=46af0b8bc556f8b9ff8c2d31f2e474803c8feb9516e76b08ef9a18514c7be347&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_2_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 240,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2e1220110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=893c4505892c4e239a3a1aa3cc0ad30ai&mid=1715226141&platform=pc&upsig=08807f4673a635863fa9d5f137e202b9&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=78774c1e1784e1dd7bf6b6e697a0da2d1f6d0a748b33b82a879ae3bb17de5c2d&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=1db546d64c64be51daa2a29c5d174445&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=b44869856e3c8a7d8e7e83fbee0cd9dab8cb5f85897ea559a54d332554c5d309&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=3631738cb91c22b18272e76b136b3528&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=7c49369f5d56c50d4ad05efcf296bcfc2b8915970315eab22153144a5cad38d6&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=9e88250822bf3a37ef07d3db28264aef&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=46af0b8bc556f8b9ff8c2d31f2e474803c8feb9516e76b08ef9a18514c7be347&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_2_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"quality": 144,
|
||||
"stream_url": "https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2f1220110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=893c4505892c4e239a3a1aa3cc0ad30ai&mid=1715226141&platform=pc&upsig=2e8a816bc0df4223db2ac78908801676&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=d6abfa29491f1c32f66707d6285895389bc70abfae9095851acf8f183a4230ef&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"audio_tracks": [
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2d1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=1db546d64c64be51daa2a29c5d174445&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=b44869856e3c8a7d8e7e83fbee0cd9dab8cb5f85897ea559a54d332554c5d309&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2c1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=3631738cb91c22b18272e76b136b3528&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=7c49369f5d56c50d4ad05efcf296bcfc2b8915970315eab22153144a5cad38d6&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0",
|
||||
"https://upos-bstar1-mirrorakam.akamaized.net/iupxcodeboss/3h/zb/n230713erpauupbrgz8d631feuarzb3h-1-2a1301000023.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1715806421&gen=playurlv2&os=akam&oi=2823883151&trid=83363b1f112c42b2b8cf9d738318ac28i&mid=1715226141&platform=pc&upsig=9e88250822bf3a37ef07d3db28264aef&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&hdnts=exp=1715806421~hmac=46af0b8bc556f8b9ff8c2d31f2e474803c8feb9516e76b08ef9a18514c7be347&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=i_0_0"
|
||||
],
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_2_sub_English"
|
||||
]
|
||||
},
|
||||
{
|
||||
"stream_url": "https://tools.fast4speed.rsvp//media7/videos/LYKSutL2PaAjYyXWz/sub/2",
|
||||
"subtitle": [
|
||||
"https://allanime.pro/apiak/sk.json?sub=dx-ep-LYKSutL2PaAjYyXWz_2_sub_English"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"episode": 1,
|
||||
"streams": [
|
||||
{
|
||||
"stream_url": "https://tools.fast4speed.rsvp//media6/videos/Mk8Z4bqjYq9FNeRDS/sub/1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"episode": 2,
|
||||
"streams": [
|
||||
{
|
||||
"stream_url": "https://tools.fast4speed.rsvp//media6/videos/Mk8Z4bqjYq9FNeRDS/sub/2",
|
||||
"title": "Miyuki Shirogane Wants to Mediate / Kaguya Wants to Distract Him / Kaguya Preemptively Strikes"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,15 +1,15 @@
|
||||
import os
|
||||
from subprocess import Popen, run, PIPE
|
||||
# from difflib import SequenceMatcher
|
||||
from fuzzywuzzy import fuzz
|
||||
import time
|
||||
import json
|
||||
import re
|
||||
import requests
|
||||
import shutil
|
||||
|
||||
from subprocess import Popen, run, PIPE
|
||||
from fuzzywuzzy import fuzz
|
||||
|
||||
broken_link_pattern = r"https://tools.fast4speed.rsvp/\w*"
|
||||
|
||||
# TODO: WRITE Docs for each method
|
||||
class AnimdlApi:
|
||||
@classmethod
|
||||
def run_animdl_command(cls,cmds:list,capture = True):
|
||||
@@ -33,7 +33,6 @@ class AnimdlApi:
|
||||
child_process = Popen([*base_cmds,*parsed_cmds])
|
||||
return child_process
|
||||
|
||||
|
||||
@classmethod
|
||||
def stream_anime_by_title(cls,title,episodes_range=None):
|
||||
anime = cls.get_anime_url_by_title(title)
|
||||
@@ -187,7 +186,6 @@ class AnimdlApi:
|
||||
if isfailure:
|
||||
raise Exception
|
||||
|
||||
|
||||
@classmethod
|
||||
def get_anime_match(cls,anime_item,title):
|
||||
return fuzz.ratio(title,anime_item[0])
|
||||
|
||||
@@ -1,118 +0,0 @@
|
||||
{
|
||||
Page{
|
||||
media(id:90) {
|
||||
title {
|
||||
romaji
|
||||
english
|
||||
}
|
||||
coverImage {
|
||||
extraLarge
|
||||
}
|
||||
characters(perPage: 10, sort: FAVOURITES_DESC) {
|
||||
edges {
|
||||
node {
|
||||
name {
|
||||
full
|
||||
|
||||
}
|
||||
gender
|
||||
dateOfBirth {
|
||||
year
|
||||
month
|
||||
day
|
||||
}
|
||||
age
|
||||
image {
|
||||
medium
|
||||
}
|
||||
description
|
||||
}
|
||||
voiceActors {
|
||||
name {
|
||||
full
|
||||
}
|
||||
image {
|
||||
medium
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
studios {
|
||||
nodes {
|
||||
name
|
||||
isAnimationStudio
|
||||
}
|
||||
}
|
||||
season
|
||||
format
|
||||
status
|
||||
seasonYear
|
||||
description
|
||||
genres
|
||||
synonyms
|
||||
startDate {
|
||||
year
|
||||
month
|
||||
day
|
||||
}
|
||||
endDate {
|
||||
year
|
||||
month
|
||||
day
|
||||
}
|
||||
duration
|
||||
countryOfOrigin
|
||||
averageScore
|
||||
source
|
||||
hashtag
|
||||
siteUrl
|
||||
tags {
|
||||
name
|
||||
rank
|
||||
}
|
||||
reviews(sort: SCORE_DESC, perPage: 6) {
|
||||
nodes {
|
||||
summary
|
||||
user {
|
||||
name
|
||||
avatar {
|
||||
medium
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
recommendations(sort: RATING_DESC, perPage: 15) {
|
||||
nodes {
|
||||
rating
|
||||
mediaRecommendation {
|
||||
title {
|
||||
romaji
|
||||
english
|
||||
native
|
||||
userPreferred
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
relations {
|
||||
nodes {
|
||||
title {
|
||||
romaji
|
||||
english
|
||||
native
|
||||
}
|
||||
}
|
||||
}
|
||||
externalLinks {
|
||||
url
|
||||
site
|
||||
icon
|
||||
}
|
||||
rankings {
|
||||
rank
|
||||
context
|
||||
}
|
||||
bannerImage
|
||||
}
|
||||
}
|
||||
}
|
||||
74
app/main.py
74
app/main.py
@@ -1,62 +1,52 @@
|
||||
|
||||
from kivy.config import Config,ConfigParser
|
||||
# Config.set('kivy', 'window_icon', "logo.ico")
|
||||
# Config.write()
|
||||
import os
|
||||
from kivy.loader import Loader
|
||||
Loader.num_workers = 5
|
||||
Loader.max_upload_per_frame = 5
|
||||
from libs.animdl.animdl_api import AnimdlApi
|
||||
os.environ["KIVY_VIDEO"] = "ffpyplayer"
|
||||
from kivymd.icon_definitions import md_icons
|
||||
import json
|
||||
|
||||
from queue import Queue
|
||||
from threading import Thread
|
||||
from subprocess import Popen
|
||||
import webbrowser
|
||||
|
||||
import plyer
|
||||
# plyer.facades.StoragePath.get_application_dir
|
||||
# plyer.facades.StoragePath.get_downloads_dir
|
||||
# plyer.facades.StoragePath.get_videos_dir()
|
||||
# plyer.facades.StoragePath.
|
||||
# plyer.facades.StoragePath.get_application_dir
|
||||
|
||||
from kivy.config import Config
|
||||
# Config.set('kivy', 'window_icon', "logo.ico")
|
||||
# Config.write()
|
||||
|
||||
from kivy.clock import Clock
|
||||
from kivy.uix.screenmanager import ScreenManager,FadeTransition
|
||||
from kivy.uix.settings import SettingsWithSidebar,Settings
|
||||
|
||||
from kivymd.icon_definitions import md_icons
|
||||
from kivymd.app import MDApp
|
||||
|
||||
from kivy.uix.settings import SettingsWithSidebar,Settings
|
||||
from kivy.uix.screenmanager import ScreenManager,FadeTransition
|
||||
from kivy.clock import Clock
|
||||
from kivy.storage.jsonstore import JsonStore
|
||||
from datetime import date,datetime
|
||||
from subprocess import Popen
|
||||
from View.screens import screens
|
||||
from View import DownloadAnimePopup,AnimdlDialogPopup
|
||||
import time
|
||||
from libs.animdl.animdl_api import AnimdlApi
|
||||
from Utility import themes_available,show_notification,user_data_helper
|
||||
|
||||
import webbrowser
|
||||
from Utility import themes_available,show_notification
|
||||
# TODO: ADD logging across the codebase
|
||||
|
||||
user_data = JsonStore("user_data.json")
|
||||
today = date.today()
|
||||
now = datetime.now()
|
||||
if not(user_data.exists("my_list")):
|
||||
user_data.put("my_list",list=[])
|
||||
|
||||
yt_cache = JsonStore("yt_cache.json")
|
||||
links_cache_name= f"{today}{0 if now.hour>=12 else 1}"
|
||||
if not(yt_cache.exists("yt_stream_links")):
|
||||
yt_cache.put("yt_stream_links",**{f"{links_cache_name}":[]})
|
||||
elif not( yt_cache.get("yt_stream_links").get(f"{links_cache_name}")):
|
||||
yt_cache.put("yt_stream_links",**{f"{links_cache_name}":[]})
|
||||
# Ensure the user data fields exist
|
||||
if not(user_data_helper.user_data.exists("my_list")):
|
||||
user_data_helper.update_user_anime_list([])
|
||||
|
||||
if not(user_data_helper.yt_cache.exists("yt_stream_links")):
|
||||
user_data_helper.update_anime_trailer_cache([])
|
||||
|
||||
|
||||
# TODO: Arrange the app methods
|
||||
class AniXStreamApp(MDApp):
|
||||
queue = Queue()
|
||||
downloads_queue = Queue()
|
||||
animdl_streaming_subprocess:Popen|None = None
|
||||
|
||||
|
||||
def worker(self,queue:Queue):
|
||||
while True:
|
||||
task = queue.get() # task should be a function
|
||||
task()
|
||||
self.queue.task_done()
|
||||
|
||||
def downloads_worker(self,queue:Queue):
|
||||
while True:
|
||||
download_task = queue.get() # task should be a function
|
||||
@@ -118,7 +108,6 @@ class AniXStreamApp(MDApp):
|
||||
def build_settings(self,settings:Settings):
|
||||
settings.add_json_panel("Settings",self.config,"settings.json")
|
||||
|
||||
|
||||
def on_config_change(self, config, section, key, value):
|
||||
if section=="Preferences":
|
||||
match key:
|
||||
@@ -135,9 +124,8 @@ class AniXStreamApp(MDApp):
|
||||
if self.animdl_streaming_subprocess:
|
||||
self.animdl_streaming_subprocess.terminate()
|
||||
|
||||
|
||||
# custom methods
|
||||
# TODO: move theme to a personalized class
|
||||
# TODO: may move theme to a personalized class
|
||||
def search_for_anime(self,search_field,**kwargs):
|
||||
if self.manager_screens.current != "search screen":
|
||||
self.manager_screens.current = "search screen"
|
||||
@@ -164,11 +152,12 @@ class AniXStreamApp(MDApp):
|
||||
else:
|
||||
show_notification("Failure",f"Failed to open {title} in browser on allanime site")
|
||||
|
||||
|
||||
def download_anime_complete(self,successful_downloads:list,failed_downloads:list,anime_title:str):
|
||||
show_notification(f"Finished Dowloading {anime_title}",f"There were {len(successful_downloads)} successful downloads and {len(failed_downloads)} failed downloads")
|
||||
|
||||
def download_anime(self,default_cmds):
|
||||
show_notification("New Download Task Queued",f"{default_cmds.get('title')} has been queued for downloading")
|
||||
|
||||
# TODO:Add custom download cmds functionality
|
||||
on_progress = lambda *args:self.download_screen.on_episode_download_progress(*args)
|
||||
output_path = self.config.get("Preferences","downloads_dir")
|
||||
@@ -211,8 +200,7 @@ class AniXStreamApp(MDApp):
|
||||
stream_func = lambda:self.stream_anime_with_custom_input_cmds(*custom_options)
|
||||
self.queue.put(stream_func)
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# try:
|
||||
AniXStreamApp().run()
|
||||
# except:
|
||||
# print(plyer.storagepath.get_videos_dir())
|
||||
@@ -1,44 +0,0 @@
|
||||
# -*- mode: python ; coding: utf-8 -*-
|
||||
|
||||
|
||||
a = Analysis(
|
||||
['main.py'],
|
||||
pathex=[],
|
||||
binaries=[],
|
||||
datas=[],
|
||||
hiddenimports=[],
|
||||
hookspath=[],
|
||||
hooksconfig={},
|
||||
runtime_hooks=[],
|
||||
excludes=[],
|
||||
noarchive=False,
|
||||
optimize=0,
|
||||
)
|
||||
pyz = PYZ(a.pure)
|
||||
|
||||
exe = EXE(
|
||||
pyz,
|
||||
a.scripts,
|
||||
[],
|
||||
exclude_binaries=True,
|
||||
name='main',
|
||||
debug=False,
|
||||
bootloader_ignore_signals=False,
|
||||
strip=False,
|
||||
upx=True,
|
||||
console=True,
|
||||
disable_windowed_traceback=False,
|
||||
argv_emulation=False,
|
||||
target_arch=None,
|
||||
codesign_identity=None,
|
||||
entitlements_file=None,
|
||||
)
|
||||
coll = COLLECT(
|
||||
exe,
|
||||
a.binaries,
|
||||
a.datas,
|
||||
strip=False,
|
||||
upx=True,
|
||||
upx_exclude=[],
|
||||
name='main',
|
||||
)
|
||||
@@ -1 +0,0 @@
|
||||
{"data": {"Page": {"pageInfo": {"total": 1, "currentPage": 1, "hasNextPage": false}, "media": [{"id": 21, "title": {"romaji": "ONE PIECE", "english": "ONE PIECE"}, "coverImage": {"medium": "https://s4.anilist.co/file/anilistcdn/media/anime/cover/small/bx21-YCDoj1EkAxFn.jpg"}, "trailer": null, "popularity": 521138, "favourites": 76037, "averageScore": 88, "episodes": null, "genres": ["Action", "Adventure", "Comedy", "Drama", "Fantasy"], "studios": {"nodes": [{"name": "Toei Animation", "favourites": 3149}, {"name": "Funimation", "favourites": 928}, {"name": "Fuji TV", "favourites": 71}, {"name": "4Kids Entertainment", "favourites": 30}, {"name": "TAP", "favourites": 4}, {"name": "Asatsu DK", "favourites": 4}, {"name": "Magic Bus", "favourites": 28}, {"name": "Mushi Production", "favourites": 64}, {"name": "Studio Guts", "favourites": 3}, {"name": "Asahi Production", "favourites": 30}, {"name": "Avex Pictures", "favourites": 13}]}, "tags": [{"name": "Pirates"}, {"name": "Travel"}, {"name": "Ensemble Cast"}, {"name": "Shounen"}, {"name": "Super Power"}, {"name": "Found Family"}, {"name": "Male Protagonist"}, {"name": "Slapstick"}, {"name": "Tragedy"}, {"name": "Ships"}, {"name": "Conspiracy"}, {"name": "Time Skip"}, {"name": "Slavery"}, {"name": "Politics"}, {"name": "Crime"}, {"name": "Fugitive"}, {"name": "War"}, {"name": "Dystopian"}, {"name": "Gods"}, {"name": "Lost Civilization"}, {"name": "Swordplay"}, {"name": "Anthropomorphism"}, {"name": "Prison"}, {"name": "Samurai"}, {"name": "Medicine"}, {"name": "Food"}, {"name": "Monster Boy"}, {"name": "Henshin"}, {"name": "Robots"}, {"name": "Shapeshifting"}, {"name": "Cyborg"}, {"name": "Primarily Adult Cast"}, {"name": "Artificial Intelligence"}, {"name": "Anti-Hero"}, {"name": "Coming of Age"}, {"name": "Animals"}, {"name": "Guns"}, {"name": "Desert"}, {"name": "Trains"}, {"name": "Skeleton"}, {"name": "Marriage"}, {"name": "Post-Apocalyptic"}, {"name": "Anachronism"}, {"name": "Espionage"}, {"name": "Monster Girl"}, {"name": "Fairy"}, {"name": "Dragons"}, {"name": "Philosophy"}, {"name": "Drugs"}, {"name": "Female Protagonist"}, {"name": "Assassins"}, {"name": "Asexual"}, {"name": "Clone"}, {"name": "Kuudere"}, {"name": "Adoption"}, {"name": "Ninja"}, {"name": "Gender Bending"}, {"name": "Revenge"}, {"name": "Angels"}, {"name": "Mermaid"}, {"name": "Battle Royale"}, {"name": "CGI"}, {"name": "Time Manipulation"}, {"name": "Musical"}, {"name": "LGBTQ+ Themes"}, {"name": "Female Harem"}, {"name": "Zombie"}, {"name": "Body Swapping"}, {"name": "Unrequited Love"}, {"name": "Achromatic"}, {"name": "Acting"}], "startDate": {"year": 1999, "month": 10, "day": 20}, "endDate": {"year": null, "month": null, "day": null}, "status": "RELEASING", "description": "Gold Roger was known as the Pirate King, the strongest and most infamous being to have sailed the Grand Line. The capture and death of Roger by the World Government brought a change throughout the world. His last words before his death revealed the location of the greatest treasure in the world, One Piece. It was this revelation that brought about the Grand Age of Pirates, men who dreamed of finding One Piece (which promises an unlimited amount of riches and fame), and quite possibly the most coveted of titles for the person who found it, the title of the Pirate King.<br><br>\nEnter Monkey D. Luffy, a 17-year-old boy that defies your standard definition of a pirate. Rather than the popular persona of a wicked, hardened, toothless pirate who ransacks villages for fun, Luffy\u2019s reason for being a pirate is one of pure wonder; the thought of an exciting adventure and meeting new and intriguing people, along with finding One Piece, are his reasons of becoming a pirate. Following in the footsteps of his childhood hero, Luffy and his crew travel across the Grand Line, experiencing crazy adventures, unveiling dark mysteries and battling strong enemies, all in order to reach One Piece.<br><br>\n<b>*This includes following special episodes:</b><br>\n- Chopperman to the Rescue! Protect the TV Station by the Shore! (Episode 336)<br>\n- The Strongest Tag-Team! Luffy and Toriko's Hard Struggle! (Episode 492)<br>\n- Team Formation! Save Chopper (Episode 542)<br>\n- History's Strongest Collaboration vs. Glutton of the Sea (Episode 590)<br>\n- 20th Anniversary! Special Romance Dawn (Episode 907)", "nextAiringEpisode": {"timeUntilAiring": 328669, "airingAt": 1716683400, "episode": 1106}}]}}}
|
||||
Reference in New Issue
Block a user