KekikStream 1.0.3__tar.gz → 1.0.5__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Core/Media/MediaHandler.py +9 -1
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Extractors/MolyStream.py +0 -2
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Extractors/VidMoly.py +4 -0
- kekikstream-1.0.5/KekikStream/Extractors/VidMolyMe.py +7 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Plugins/DiziYou.py +5 -5
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Plugins/RecTV.py +8 -7
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Plugins/SineWix.py +3 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Plugins/UgurFilm.py +2 -2
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/__init__.py +0 -2
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream.egg-info/PKG-INFO +9 -1
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream.egg-info/SOURCES.txt +1 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream.egg-info/requires.txt +1 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/PKG-INFO +9 -1
- {kekikstream-1.0.3 → kekikstream-1.0.5}/README.md +7 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/setup.py +2 -1
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/CLI/__init__.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/CLI/pypi_kontrol.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Core/Extractor/ExtractorBase.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Core/Extractor/ExtractorLoader.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Core/Extractor/ExtractorManager.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Core/Extractor/ExtractorModels.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Core/Media/MediaManager.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Core/Plugin/PluginBase.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Core/Plugin/PluginLoader.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Core/Plugin/PluginManager.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Core/Plugin/PluginModels.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Core/UI/UIManager.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Core/__init__.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Extractors/CloseLoad.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Extractors/ContentX.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Extractors/FourCX.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Extractors/FourPichive.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Extractors/FourPlayRu.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Extractors/HDStreamAble.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Extractors/Hotlinger.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Extractors/MailRu.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Extractors/MixPlayHD.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Extractors/Odnoklassniki.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Extractors/OkRuHTTP.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Extractors/OkRuSSL.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Extractors/PeaceMakerst.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Extractors/Pichive.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Extractors/PixelDrain.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Extractors/PlayRu.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Extractors/RapidVid.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Extractors/SibNet.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Extractors/Sobreatsesuyp.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Extractors/TRsTX.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Extractors/TauVideo.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Extractors/TurboImgz.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Extractors/VidMoxy.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Extractors/VideoSeyred.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Plugins/DiziBox.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Plugins/Dizilla.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Plugins/FilmMakinesi.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Plugins/FullHDFilmizlesene.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Plugins/JetFilmizle.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Plugins/SezonlukDizi.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/Plugins/Shorten.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/__main__.py +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream/requirements.txt +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream.egg-info/dependency_links.txt +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream.egg-info/entry_points.txt +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/KekikStream.egg-info/top_level.txt +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/LICENSE +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/MANIFEST.in +0 -0
- {kekikstream-1.0.3 → kekikstream-1.0.5}/setup.cfg +0 -0
@@ -37,6 +37,8 @@ class MediaHandler:
|
|
37
37
|
return self.play_with_vlc(extract_data)
|
38
38
|
|
39
39
|
def play_with_vlc(self, extract_data: ExtractResult):
|
40
|
+
konsol.log(f"[yellow][»] VLC ile Oynatılıyor : {extract_data.url}")
|
41
|
+
konsol.print(self.headers)
|
40
42
|
try:
|
41
43
|
vlc_command = ["vlc", "--quiet"]
|
42
44
|
|
@@ -68,8 +70,10 @@ class MediaHandler:
|
|
68
70
|
konsol.print({"title": self.title, "url": extract_data.url, "headers": self.headers})
|
69
71
|
|
70
72
|
def play_with_mpv(self, extract_data: ExtractResult):
|
73
|
+
konsol.log(f"[yellow][»] MPV ile Oynatılıyor : {extract_data.url}")
|
74
|
+
konsol.print(self.headers)
|
71
75
|
try:
|
72
|
-
mpv_command = ["mpv"
|
76
|
+
mpv_command = ["mpv"]
|
73
77
|
|
74
78
|
if self.title:
|
75
79
|
mpv_command.append(f"--force-media-title={self.title}")
|
@@ -93,6 +97,8 @@ class MediaHandler:
|
|
93
97
|
konsol.print({"title": self.title, "url": extract_data.url, "headers": self.headers})
|
94
98
|
|
95
99
|
def play_with_ytdlp(self, extract_data: ExtractResult):
|
100
|
+
konsol.log(f"[yellow][»] yt-dlp ile Oynatılıyor : {extract_data.url}")
|
101
|
+
konsol.print(self.headers)
|
96
102
|
try:
|
97
103
|
ytdlp_command = ["yt-dlp", "--quiet", "--no-warnings"]
|
98
104
|
|
@@ -124,6 +130,8 @@ class MediaHandler:
|
|
124
130
|
print({"title": self.title, "url": extract_data.url, "headers": self.headers})
|
125
131
|
|
126
132
|
def play_with_android_mxplayer(self, extract_data: ExtractResult):
|
133
|
+
konsol.log(f"[yellow][»] MxPlayer ile Oynatılıyor : {extract_data.url}")
|
134
|
+
konsol.print(self.headers)
|
127
135
|
paketler = [
|
128
136
|
"com.mxtech.videoplayer.ad/.ActivityScreen", # Free sürüm
|
129
137
|
"com.mxtech.videoplayer.pro/.ActivityScreen" # Pro sürüm
|
@@ -17,6 +17,10 @@ class VidMoly(ExtractorBase):
|
|
17
17
|
"Sec-Fetch-Dest" : "iframe",
|
18
18
|
})
|
19
19
|
|
20
|
+
if self.main_url.endswith(".me"):
|
21
|
+
self.main_url = self.main_url.replace(".me", ".to")
|
22
|
+
url = url.replace(".me", ".to")
|
23
|
+
|
20
24
|
# Embed URL oluştur
|
21
25
|
embed_url = url.replace("/w/", "/embed-") + "-920x360.html" if "/w/" in url else url
|
22
26
|
script_content = None
|
@@ -85,29 +85,29 @@ class DiziYou(PluginBase):
|
|
85
85
|
case "turkceAltyazili":
|
86
86
|
subtitles.append(Subtitle(
|
87
87
|
name = op_name,
|
88
|
-
url = self.fix_url(f"
|
88
|
+
url = self.fix_url(f"{self.main_url.replace('www', 'storage')}/subtitles/{item_id}/tr.vtt"),
|
89
89
|
))
|
90
90
|
veri = {
|
91
91
|
"dil": "Orjinal Dil",
|
92
|
-
"url": f"
|
92
|
+
"url": f"{self.main_url.replace('www', 'storage')}/episodes/{item_id}/play.m3u8"
|
93
93
|
}
|
94
94
|
if veri not in stream_urls:
|
95
95
|
stream_urls.append(veri)
|
96
96
|
case "ingilizceAltyazili":
|
97
97
|
subtitles.append(Subtitle(
|
98
98
|
name = op_name,
|
99
|
-
url = self.fix_url(f"
|
99
|
+
url = self.fix_url(f"{self.main_url.replace('www', 'storage')}/subtitles/{item_id}/en.vtt"),
|
100
100
|
))
|
101
101
|
veri = {
|
102
102
|
"dil": "Orjinal Dil",
|
103
|
-
"url": f"
|
103
|
+
"url": f"{self.main_url.replace('www', 'storage')}/episodes/{item_id}/play.m3u8"
|
104
104
|
}
|
105
105
|
if veri not in stream_urls:
|
106
106
|
stream_urls.append(veri)
|
107
107
|
case "turkceDublaj":
|
108
108
|
stream_urls.append({
|
109
109
|
"dil": "Dublaj",
|
110
|
-
"url": f"
|
110
|
+
"url": f"{self.main_url.replace('www', 'storage')}/episodes/{item_id}_tr/play.m3u8"
|
111
111
|
})
|
112
112
|
|
113
113
|
|
@@ -21,18 +21,19 @@ class RecTV(PluginBase):
|
|
21
21
|
istek = await self.http2.get(f"{self.main_url}/api/search/{query}/{self.sw_key}/")
|
22
22
|
|
23
23
|
kanallar = istek.json().get("channels")
|
24
|
-
kanallar = sorted(kanallar, key=lambda sozluk: sozluk["title"])
|
25
|
-
|
26
24
|
icerikler = istek.json().get("posters")
|
27
|
-
|
25
|
+
tum_veri = {item['title']: item for item in kanallar + icerikler}.values()
|
26
|
+
tum_veri = sorted(tum_veri, key=lambda sozluk: sozluk["title"])
|
27
|
+
|
28
|
+
tur_ver = lambda veri: " | Dizi" if veri.get("type") == "serie" else " | Film"
|
28
29
|
|
29
30
|
return [
|
30
31
|
SearchResult(
|
31
|
-
title = veri.get("title"),
|
32
|
+
title = veri.get("title") + tur_ver(veri),
|
32
33
|
url = dumps(veri),
|
33
34
|
poster = self.fix_url(veri.get("image")),
|
34
35
|
)
|
35
|
-
for veri in
|
36
|
+
for veri in tum_veri
|
36
37
|
]
|
37
38
|
|
38
39
|
async def load_item(self, url: str) -> MovieInfo:
|
@@ -49,7 +50,7 @@ class RecTV(PluginBase):
|
|
49
50
|
ep_model = Episode(
|
50
51
|
season = int(re.search(r"(\d+)\.S", season.get("title")).group(1)) if re.search(r"(\d+)\.S", season.get("title")) else 1,
|
51
52
|
episode = int(re.search(r"Bölüm (\d+)", episode.get("title")).group(1)) if re.search(r"Bölüm (\d+)", episode.get("title")) else 1,
|
52
|
-
title =
|
53
|
+
title = "",
|
53
54
|
url = self.fix_url(episode.get("sources")[0].get("url")),
|
54
55
|
)
|
55
56
|
|
@@ -57,7 +58,7 @@ class RecTV(PluginBase):
|
|
57
58
|
|
58
59
|
self._data[ep_model.url] = {
|
59
60
|
"ext_name" : self.name,
|
60
|
-
"name" : f"{veri.get('title')} | {ep_model.season}. Sezon {ep_model.episode}. Bölüm
|
61
|
+
"name" : f"{veri.get('title')} | {ep_model.season}. Sezon {ep_model.episode}. Bölüm",
|
61
62
|
"referer" : "https://twitter.com/",
|
62
63
|
"subtitles" : []
|
63
64
|
}
|
@@ -105,4 +105,7 @@ class SineWix(PluginBase):
|
|
105
105
|
async def play(self, name: str, url: str, referer: str, subtitles: list[Subtitle]):
|
106
106
|
extract_result = ExtractResult(name=name, url=url, referer=referer, subtitles=subtitles)
|
107
107
|
self.media_handler.title = name
|
108
|
+
if self.name not in self.media_handler.title:
|
109
|
+
self.media_handler.title = f"{self.name} | {self.media_handler.title}"
|
110
|
+
|
108
111
|
self.media_handler.play_media(extract_result)
|
@@ -62,8 +62,8 @@ class UgurFilm(PluginBase):
|
|
62
62
|
if iframe and self.main_url in iframe:
|
63
63
|
post_data = {
|
64
64
|
"vid" : iframe.split("vid=")[-1],
|
65
|
-
"alternative" : "
|
66
|
-
"ord" : "
|
65
|
+
"alternative" : "vidmoly",
|
66
|
+
"ord" : "0",
|
67
67
|
}
|
68
68
|
player_response = await self.oturum.post(
|
69
69
|
url = f"{self.main_url}/player/ajax_sources.php",
|
@@ -298,7 +298,6 @@ class KekikStream:
|
|
298
298
|
Seçilen bağlantıya göre medya oynatma işlemini gerçekleştirir.
|
299
299
|
"""
|
300
300
|
if hasattr(self.suanki_eklenti, "play") and callable(self.suanki_eklenti.play):
|
301
|
-
konsol.log(f"[yellow][»] Oynatılıyor : {secilen_link}")
|
302
301
|
data = self.suanki_eklenti._data.get(secilen_link, {})
|
303
302
|
|
304
303
|
await self.suanki_eklenti.play(
|
@@ -337,7 +336,6 @@ class KekikStream:
|
|
337
336
|
# Başlık ve referrer ayarla
|
338
337
|
self.medya_yonetici.set_title(f"{self.medya_yonetici.get_title()} | {secilen_data.name}")
|
339
338
|
self.medya_yonetici.set_headers({"Referer": secilen_data.referer})
|
340
|
-
konsol.log(f"[yellow][»] Oynatılıyor : {secilen_data.url}")
|
341
339
|
self.medya_yonetici.play_media(secilen_data)
|
342
340
|
|
343
341
|
await self.bi_bolum_daha() if self.dizi else await self.baslat()
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: KekikStream
|
3
|
-
Version: 1.0.
|
3
|
+
Version: 1.0.5
|
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
|
@@ -21,6 +21,7 @@ Requires-Dist: cloudscraper
|
|
21
21
|
Requires-Dist: parsel
|
22
22
|
Requires-Dist: pydantic
|
23
23
|
Requires-Dist: InquirerPy
|
24
|
+
Requires-Dist: yt-dlp
|
24
25
|
Dynamic: author
|
25
26
|
Dynamic: author-email
|
26
27
|
Dynamic: classifier
|
@@ -58,6 +59,8 @@ Dynamic: summary
|
|
58
59
|
|
59
60
|
## 🚀 Kurulum
|
60
61
|
|
62
|
+
> Sisteminizde VLC ve MPV yüklü olmalıdır..
|
63
|
+
|
61
64
|
```bash
|
62
65
|
# Yüklemek
|
63
66
|
pip install KekikStream
|
@@ -80,6 +83,11 @@ KekikStream
|
|
80
83
|
|
81
84
|
- [DeoDorqnt387/aniwatch-tr](https://github.com/DeoDorqnt387/aniwatch-tr)
|
82
85
|
|
86
|
+
### 💻 Genişletme Referansları
|
87
|
+
|
88
|
+
- [keyiflerolsun/Kekik-cloudstream](https://github.com/keyiflerolsun/Kekik-cloudstream)
|
89
|
+
- [keyiflerolsun/seyirTurk-Parser](https://github.com/keyiflerolsun/seyirTurk-Parser)
|
90
|
+
|
83
91
|
## 🌐 Telif Hakkı ve Lisans
|
84
92
|
|
85
93
|
* *Copyright (C) 2024 by* [keyiflerolsun](https://github.com/keyiflerolsun) ❤️️
|
@@ -49,6 +49,7 @@ KekikStream/Extractors/TRsTX.py
|
|
49
49
|
KekikStream/Extractors/TauVideo.py
|
50
50
|
KekikStream/Extractors/TurboImgz.py
|
51
51
|
KekikStream/Extractors/VidMoly.py
|
52
|
+
KekikStream/Extractors/VidMolyMe.py
|
52
53
|
KekikStream/Extractors/VidMoxy.py
|
53
54
|
KekikStream/Extractors/VideoSeyred.py
|
54
55
|
KekikStream/Plugins/DiziBox.py
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: KekikStream
|
3
|
-
Version: 1.0.
|
3
|
+
Version: 1.0.5
|
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
|
@@ -21,6 +21,7 @@ Requires-Dist: cloudscraper
|
|
21
21
|
Requires-Dist: parsel
|
22
22
|
Requires-Dist: pydantic
|
23
23
|
Requires-Dist: InquirerPy
|
24
|
+
Requires-Dist: yt-dlp
|
24
25
|
Dynamic: author
|
25
26
|
Dynamic: author-email
|
26
27
|
Dynamic: classifier
|
@@ -58,6 +59,8 @@ Dynamic: summary
|
|
58
59
|
|
59
60
|
## 🚀 Kurulum
|
60
61
|
|
62
|
+
> Sisteminizde VLC ve MPV yüklü olmalıdır..
|
63
|
+
|
61
64
|
```bash
|
62
65
|
# Yüklemek
|
63
66
|
pip install KekikStream
|
@@ -80,6 +83,11 @@ KekikStream
|
|
80
83
|
|
81
84
|
- [DeoDorqnt387/aniwatch-tr](https://github.com/DeoDorqnt387/aniwatch-tr)
|
82
85
|
|
86
|
+
### 💻 Genişletme Referansları
|
87
|
+
|
88
|
+
- [keyiflerolsun/Kekik-cloudstream](https://github.com/keyiflerolsun/Kekik-cloudstream)
|
89
|
+
- [keyiflerolsun/seyirTurk-Parser](https://github.com/keyiflerolsun/seyirTurk-Parser)
|
90
|
+
|
83
91
|
## 🌐 Telif Hakkı ve Lisans
|
84
92
|
|
85
93
|
* *Copyright (C) 2024 by* [keyiflerolsun](https://github.com/keyiflerolsun) ❤️️
|
@@ -23,6 +23,8 @@
|
|
23
23
|
|
24
24
|
## 🚀 Kurulum
|
25
25
|
|
26
|
+
> Sisteminizde VLC ve MPV yüklü olmalıdır..
|
27
|
+
|
26
28
|
```bash
|
27
29
|
# Yüklemek
|
28
30
|
pip install KekikStream
|
@@ -45,6 +47,11 @@ KekikStream
|
|
45
47
|
|
46
48
|
- [DeoDorqnt387/aniwatch-tr](https://github.com/DeoDorqnt387/aniwatch-tr)
|
47
49
|
|
50
|
+
### 💻 Genişletme Referansları
|
51
|
+
|
52
|
+
- [keyiflerolsun/Kekik-cloudstream](https://github.com/keyiflerolsun/Kekik-cloudstream)
|
53
|
+
- [keyiflerolsun/seyirTurk-Parser](https://github.com/keyiflerolsun/seyirTurk-Parser)
|
54
|
+
|
48
55
|
## 🌐 Telif Hakkı ve Lisans
|
49
56
|
|
50
57
|
* *Copyright (C) 2024 by* [keyiflerolsun](https://github.com/keyiflerolsun) ❤️️
|
@@ -6,7 +6,7 @@ from io import open
|
|
6
6
|
setup(
|
7
7
|
# ? Genel Bilgiler
|
8
8
|
name = "KekikStream",
|
9
|
-
version = "1.0.
|
9
|
+
version = "1.0.5",
|
10
10
|
url = "https://github.com/keyiflerolsun/KekikStream",
|
11
11
|
description = "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ı",
|
12
12
|
keywords = ["KekikStream", "KekikAkademi", "keyiflerolsun"],
|
@@ -33,6 +33,7 @@ setup(
|
|
33
33
|
"parsel",
|
34
34
|
"pydantic",
|
35
35
|
"InquirerPy",
|
36
|
+
"yt-dlp"
|
36
37
|
],
|
37
38
|
|
38
39
|
# ? Konsoldan Çalıştırılabilir
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|