KekikStream 0.8.8__py3-none-any.whl → 0.9.1__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- KekikStream/Plugins/Shorten.py +23 -15
- {KekikStream-0.8.8.dist-info → KekikStream-0.9.1.dist-info}/METADATA +1 -1
- {KekikStream-0.8.8.dist-info → KekikStream-0.9.1.dist-info}/RECORD +7 -7
- {KekikStream-0.8.8.dist-info → KekikStream-0.9.1.dist-info}/LICENSE +0 -0
- {KekikStream-0.8.8.dist-info → KekikStream-0.9.1.dist-info}/WHEEL +0 -0
- {KekikStream-0.8.8.dist-info → KekikStream-0.9.1.dist-info}/entry_points.txt +0 -0
- {KekikStream-0.8.8.dist-info → KekikStream-0.9.1.dist-info}/top_level.txt +0 -0
KekikStream/Plugins/Shorten.py
CHANGED
@@ -104,6 +104,23 @@ class Shorten(PluginBase):
|
|
104
104
|
} for veri in veriler.get("episodes")
|
105
105
|
]
|
106
106
|
|
107
|
+
async def hls_decode_video(self, token):
|
108
|
+
token = base64.b64decode(token).decode("utf-8")
|
109
|
+
token = json.loads(token).get("GetPlayInfoToken")
|
110
|
+
|
111
|
+
istek = self.cloudscraper.get(
|
112
|
+
url = f"https://vod.byteplusapi.com/?{token}",
|
113
|
+
headers = {
|
114
|
+
"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36",
|
115
|
+
"Content-Type" : "application/json",
|
116
|
+
"Origin" : "https://vod.byteplusapi.com",
|
117
|
+
"Referer" : "https://shorten.com/",
|
118
|
+
}
|
119
|
+
)
|
120
|
+
|
121
|
+
veriler = istek.json()
|
122
|
+
return veriler["Result"]["PlayInfoList"][-1]["MainPlayUrl"]
|
123
|
+
|
107
124
|
async def bolumler(self, slug):
|
108
125
|
if not self.token:
|
109
126
|
await self.__giris()
|
@@ -125,12 +142,10 @@ class Shorten(PluginBase):
|
|
125
142
|
del sub[sil]
|
126
143
|
sub["url"] = f"https://cdn.shorten.watch/{sub['url']}"
|
127
144
|
|
128
|
-
token = base64.b64decode(video["hashHls"]).decode("utf-8")
|
129
|
-
token = json.loads(token).get("GetPlayInfoToken")
|
130
145
|
veriler["data"]["episodes"][index] = {
|
131
146
|
"number" : copy.get("number"),
|
132
147
|
"image" : copy.get("cover_image"),
|
133
|
-
"hls" :
|
148
|
+
"hls" : video["hashHls"],
|
134
149
|
"subtitles" : copy.get("subtitles")
|
135
150
|
}
|
136
151
|
|
@@ -158,29 +173,22 @@ class Shorten(PluginBase):
|
|
158
173
|
|
159
174
|
episodes = []
|
160
175
|
for episode in veri.get("episodes"):
|
161
|
-
episode["name"] = veri["title"]
|
176
|
+
episode["name"] = veri["title"] + f" | {episode.get('number')}. Bölüm"
|
177
|
+
episode["subtitles"] = [subtitle for subtitle in episode["subtitles"] if subtitle.get("code").lower() in ["tr", "en"]]
|
162
178
|
|
163
179
|
ep_model = Episode(
|
164
180
|
season = 1,
|
165
181
|
episode = episode.get("number"),
|
166
182
|
title = f"{episode.get('number')}. Bölüm",
|
167
|
-
url = json.dumps(episode),
|
183
|
+
url = json.dumps(episode, indent=2, ensure_ascii=False, sort_keys=False),
|
168
184
|
)
|
169
185
|
|
170
186
|
episodes.append(ep_model)
|
171
|
-
subtitles = [
|
172
|
-
Subtitle(
|
173
|
-
name = subtitle.get("language"),
|
174
|
-
url = subtitle.get("url"),
|
175
|
-
)
|
176
|
-
for subtitle in episode.get("subtitles")
|
177
|
-
]
|
178
|
-
|
179
187
|
self._data[ep_model.url] = {
|
180
188
|
"ext_name" : self.name,
|
181
189
|
"name" : f"{ep_model.title}",
|
182
190
|
"referer" : "https://shorten.com/tr",
|
183
|
-
"subtitles" :
|
191
|
+
"subtitles" : []
|
184
192
|
}
|
185
193
|
|
186
194
|
return SeriesInfo(
|
@@ -201,7 +209,7 @@ class Shorten(PluginBase):
|
|
201
209
|
async def play(self, name: str, url: str, referer: str, subtitles: list[Subtitle]):
|
202
210
|
veri = json.loads(url)
|
203
211
|
name = veri.get("name")
|
204
|
-
url
|
212
|
+
url = await self.hls_decode_video(veri.get("hls"))
|
205
213
|
subtitles = [
|
206
214
|
Subtitle(
|
207
215
|
name = subtitle.get("language"),
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: KekikStream
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.9.1
|
4
4
|
Summary: terminal üzerinden medya içeriği aramanızı ve VLC/MPV gibi popüler medya oynatıcılar aracılığıyla doğrudan izlemenizi sağlayan modüler ve genişletilebilir bir bıdı bıdı
|
5
5
|
Home-page: https://github.com/keyiflerolsun/KekikStream
|
6
6
|
Author: keyiflerolsun
|
@@ -48,12 +48,12 @@ KekikStream/Plugins/FullHDFilmizlesene.py,sha256=Fa0gRP_NoMfPC8HIKRxERjQVOv8Fyb-
|
|
48
48
|
KekikStream/Plugins/JetFilmizle.py,sha256=Gu4Ums-88x7jNKAtKkdSXyMaOyLv0_Kb6jnomhAWhM0,3916
|
49
49
|
KekikStream/Plugins/RecTV.py,sha256=7hxlt3Rvm1gV2lF6dFLOxiK_CjNng_7a02l0YkMuNZc,4886
|
50
50
|
KekikStream/Plugins/SezonlukDizi.py,sha256=5BZVzQ2eQtymHxO0bzjA2ho4FFNahPFQly4hoHuH8lo,4441
|
51
|
-
KekikStream/Plugins/Shorten.py,sha256=
|
51
|
+
KekikStream/Plugins/Shorten.py,sha256=x-XhJxu4VIA2XJL4KJTY_fFNcnepMHsn5OTz-OeyaFU,8870
|
52
52
|
KekikStream/Plugins/SineWix.py,sha256=WxlGoE8GMWr7S7Htu_Bh_OP4qIav1igHLJ3GWzP8ttQ,4859
|
53
53
|
KekikStream/Plugins/UgurFilm.py,sha256=yYXee5uxwNnPqFJZ6s6cRkmUyqS3Vv8x-iesPalc4j4,2930
|
54
|
-
KekikStream-0.
|
55
|
-
KekikStream-0.
|
56
|
-
KekikStream-0.
|
57
|
-
KekikStream-0.
|
58
|
-
KekikStream-0.
|
59
|
-
KekikStream-0.
|
54
|
+
KekikStream-0.9.1.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
55
|
+
KekikStream-0.9.1.dist-info/METADATA,sha256=cn0p3q3dP3LsLSTkAxwKzxfucpHzsHQeCPc9bMjp52I,4226
|
56
|
+
KekikStream-0.9.1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
57
|
+
KekikStream-0.9.1.dist-info/entry_points.txt,sha256=dFwdiTx8djyehI0Gsz-rZwjAfZzUzoBSrmzRu9ubjJc,50
|
58
|
+
KekikStream-0.9.1.dist-info/top_level.txt,sha256=DNmGJDXl27Drdfobrak8KYLmocW_uznVYFJOzcjUgmY,12
|
59
|
+
KekikStream-0.9.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|