KekikStream 2.5.0__tar.gz → 2.5.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of KekikStream might be problematic. Click here for more details.

Files changed (105) hide show
  1. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Core/Extractor/ExtractorLoader.py +8 -14
  2. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Core/Plugin/PluginLoader.py +9 -12
  3. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/FilmEkseni.py +53 -16
  4. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/FilmMakinesi.py +1 -1
  5. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/FilmciBaba.py +1 -1
  6. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream.egg-info/PKG-INFO +3 -3
  7. {kekikstream-2.5.0 → kekikstream-2.5.2}/PKG-INFO +3 -3
  8. {kekikstream-2.5.0 → kekikstream-2.5.2}/README.md +2 -2
  9. {kekikstream-2.5.0 → kekikstream-2.5.2}/setup.py +1 -1
  10. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/CLI/__init__.py +0 -0
  11. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/CLI/pypi_kontrol.py +0 -0
  12. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Core/Extractor/ExtractorBase.py +0 -0
  13. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Core/Extractor/ExtractorManager.py +0 -0
  14. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Core/Extractor/ExtractorModels.py +0 -0
  15. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Core/Extractor/YTDLPCache.py +0 -0
  16. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Core/HTMLHelper.py +0 -0
  17. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Core/Media/MediaHandler.py +0 -0
  18. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Core/Media/MediaManager.py +0 -0
  19. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Core/Plugin/PluginBase.py +0 -0
  20. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Core/Plugin/PluginManager.py +0 -0
  21. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Core/Plugin/PluginModels.py +0 -0
  22. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Core/UI/UIManager.py +0 -0
  23. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Core/__init__.py +0 -0
  24. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/Abstream.py +0 -0
  25. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/CloseLoad.py +0 -0
  26. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/ContentX.py +0 -0
  27. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/DonilasPlay.py +0 -0
  28. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/DzenRu.py +0 -0
  29. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/ExPlay.py +0 -0
  30. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/Filemoon.py +0 -0
  31. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/HDMomPlayer.py +0 -0
  32. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/HDPlayerSystem.py +0 -0
  33. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/HotStream.py +0 -0
  34. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/JFVid.py +0 -0
  35. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/JetTv.py +0 -0
  36. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/JetV.py +0 -0
  37. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/MailRu.py +0 -0
  38. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/MixPlayHD.py +0 -0
  39. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/MixTiger.py +0 -0
  40. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/MolyStream.py +0 -0
  41. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/Odnoklassniki.py +0 -0
  42. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/PeaceMakerst.py +0 -0
  43. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/PixelDrain.py +0 -0
  44. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/PlayerFilmIzle.py +0 -0
  45. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/RapidVid.py +0 -0
  46. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/SetPlay.py +0 -0
  47. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/SetPrime.py +0 -0
  48. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/SibNet.py +0 -0
  49. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/Sobreatsesuyp.py +0 -0
  50. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/TRsTX.py +0 -0
  51. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/TauVideo.py +0 -0
  52. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/TurboImgz.py +0 -0
  53. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/TurkeyPlayer.py +0 -0
  54. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/VCTPlay.py +0 -0
  55. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/Veev.py +0 -0
  56. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/VidBiz.py +0 -0
  57. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/VidHide.py +0 -0
  58. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/VidMoly.py +0 -0
  59. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/VidMoxy.py +0 -0
  60. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/VidPapi.py +0 -0
  61. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/VideoSeyred.py +0 -0
  62. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/Videostr.py +0 -0
  63. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/Vidoza.py +0 -0
  64. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/Vtbe.py +0 -0
  65. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/YTDLP.py +0 -0
  66. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/YildizKisaFilm.py +0 -0
  67. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Extractors/Zeus.py +0 -0
  68. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/BelgeselX.py +0 -0
  69. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/DiziBox.py +0 -0
  70. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/DiziMom.py +0 -0
  71. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/DiziPal.py +0 -0
  72. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/DiziYou.py +0 -0
  73. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/Dizilla.py +0 -0
  74. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/FilmBip.py +0 -0
  75. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/FilmModu.py +0 -0
  76. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/Filmatek.py +0 -0
  77. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/FullHDFilmizlesene.py +0 -0
  78. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/HDFilm.py +0 -0
  79. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/HDFilmCehennemi.py +0 -0
  80. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/JetFilmizle.py +0 -0
  81. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/KultFilmler.py +0 -0
  82. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/RecTV.py +0 -0
  83. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/RoketDizi.py +0 -0
  84. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/SelcukFlix.py +0 -0
  85. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/SetFilmIzle.py +0 -0
  86. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/SezonlukDizi.py +0 -0
  87. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/SineWix.py +0 -0
  88. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/Sinefy.py +0 -0
  89. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/SinemaCX.py +0 -0
  90. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/Sinezy.py +0 -0
  91. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/SuperFilmGeldi.py +0 -0
  92. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/UgurFilm.py +0 -0
  93. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/Watch32.py +0 -0
  94. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/Plugins/YabanciDizi.py +0 -0
  95. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/__init__.py +0 -0
  96. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/__main__.py +0 -0
  97. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream/requirements.txt +0 -0
  98. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream.egg-info/SOURCES.txt +0 -0
  99. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream.egg-info/dependency_links.txt +0 -0
  100. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream.egg-info/entry_points.txt +0 -0
  101. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream.egg-info/requires.txt +0 -0
  102. {kekikstream-2.5.0 → kekikstream-2.5.2}/KekikStream.egg-info/top_level.txt +0 -0
  103. {kekikstream-2.5.0 → kekikstream-2.5.2}/LICENSE +0 -0
  104. {kekikstream-2.5.0 → kekikstream-2.5.2}/MANIFEST.in +0 -0
  105. {kekikstream-2.5.0 → kekikstream-2.5.2}/setup.cfg +0 -0
@@ -9,7 +9,7 @@ class ExtractorLoader:
9
9
  def __init__(self, extractors_dir: str):
10
10
  # Yerel ve global çıkarıcı dizinlerini ayarla
11
11
  self.local_extractors_dir = Path(extractors_dir)
12
- self.global_extractors_dir = Path(__file__).parent.parent.parent / extractors_dir
12
+ self.global_extractors_dir = Path(__file__).parent.parent.parent / "Extractors"
13
13
 
14
14
  # Dizin kontrolü
15
15
  if not self.local_extractors_dir.exists() and not self.global_extractors_dir.exists():
@@ -19,22 +19,16 @@ class ExtractorLoader:
19
19
  def load_all(self) -> list[ExtractorBase]:
20
20
  extractors = []
21
21
 
22
- # Eğer yerel dizinde Extractor varsa, sadece onları yükle (eklenti geliştirme modu)
23
- if self.local_extractors_dir.exists():
22
+ # Yerel Extractor'lar varsa önce onları yükle (ek/öncelikli yetenekler)
23
+ # Eğer yerel dizin global dizinle aynıysa (örn: doğrudan core'da çalışırken) tekrar yükleme yapma
24
+ if self.local_extractors_dir.exists() and self.local_extractors_dir.resolve() != self.global_extractors_dir.resolve():
24
25
  # konsol.log(f"[green][*] Yerel Extractor dizininden yükleniyor: {self.local_extractors_dir}[/green]")
25
- local_extractors = self._load_from_directory(self.local_extractors_dir)
26
- # konsol.log(f"[green]Yerel Extractor'lar: {[e.__name__ for e in local_extractors]}[/green]")
26
+ extractors.extend(self._load_from_directory(self.local_extractors_dir))
27
27
 
28
- if local_extractors:
29
- # konsol.log("[cyan][*] Yerel Extractor bulundu, global Extractor'lar atlanıyor (eklenti geliştirme modu)[/cyan]")
30
- extractors.extend(local_extractors)
31
-
32
- # Yerel dizinde Extractor yoksa, global'leri yükle
33
- if not extractors and self.global_extractors_dir.exists():
28
+ # Global Extractor'ları her zaman yükle (temel yetenekler)
29
+ if self.global_extractors_dir.exists():
34
30
  # konsol.log(f"[green][*] Global Extractor dizininden yükleniyor: {self.global_extractors_dir}[/green]")
35
- global_extractors = self._load_from_directory(self.global_extractors_dir)
36
- # konsol.log(f"[green]Global Extractor'lar: {[e.__name__ for e in global_extractors]}[/green]")
37
- extractors.extend(global_extractors)
31
+ extractors.extend(self._load_from_directory(self.global_extractors_dir))
38
32
 
39
33
  # Benzersizliği sağlama (modül adı + sınıf adı bazında)
40
34
  unique_extractors = []
@@ -10,7 +10,7 @@ class PluginLoader:
10
10
  # Yerel ve global eklenti dizinlerini ayarla
11
11
  self.proxy = proxy
12
12
  self.local_plugins_dir = Path(plugins_dir).resolve()
13
- self.global_plugins_dir = Path(__file__).parent.parent.parent / plugins_dir
13
+ self.global_plugins_dir = Path(__file__).parent.parent.parent / "Plugins"
14
14
 
15
15
  # Dizin kontrolü
16
16
  if not self.local_plugins_dir.exists() and not self.global_plugins_dir.exists():
@@ -18,19 +18,16 @@ class PluginLoader:
18
18
  cikis_yap(False)
19
19
 
20
20
  def load_all(self) -> dict[str, PluginBase]:
21
- plugins = {}
21
+ plugins = {}
22
+ local_dir_exists = self.local_plugins_dir.exists() and self.local_plugins_dir.resolve() != self.global_plugins_dir.resolve()
22
23
 
23
- # Eğer yerel dizinde Plugin varsa, sadece onları yükle (eklenti geliştirme modu)
24
- if self.local_plugins_dir.exists():
24
+ # Eğer yerel dizin varsa, sadece oradan yükle (eklenti geliştirme/yayınlama modu)
25
+ if local_dir_exists:
25
26
  # konsol.log(f"[green][*] Yerel Eklenti dizininden yükleniyor: {self.local_plugins_dir}[/green]")
26
- local_plugins = self._load_from_directory(self.local_plugins_dir)
27
-
28
- if local_plugins:
29
- # konsol.log("[cyan][*] Yerel Plugin bulundu, global Plugin'ler atlanıyor (eklenti geliştirme modu)[/cyan]")
30
- plugins |= local_plugins
31
-
32
- # Yerel dizinde Plugin yoksa, global'leri yükle
33
- if not plugins and self.global_plugins_dir.exists():
27
+ plugins |= self._load_from_directory(self.local_plugins_dir)
28
+
29
+ # Yerel dizin yoksa (veya core ile aynı yerse), global'leri yükle
30
+ else:
34
31
  # konsol.log(f"[green][*] Global Eklenti dizininden yükleniyor: {self.global_plugins_dir}[/green]")
35
32
  plugins |= self._load_from_directory(self.global_plugins_dir)
36
33
 
@@ -137,23 +137,60 @@ class FilmEkseni(PluginBase):
137
137
  istek = await self.httpx.get(url)
138
138
  secici = HTMLHelper(istek.text)
139
139
 
140
+ # Dil sekmelerini bul (Dublaj, Altyazı vb.)
141
+ # Fragman vb. linkleri dahil etmemek için sadece 'a.nav-link' bakıyoruz
142
+ lang_tabs = [
143
+ tab for tab in secici.select("ul.nav-tabs.nav-slider a.nav-link")
144
+ if "fragman" not in tab.text().lower()
145
+ ]
146
+
147
+ # Player panellerini bul
148
+ tab_panes = secici.select("div.tab-pane")
149
+
140
150
  sources = [] # (name, url, is_active)
141
- if nav_links := secici.select("nav.card-nav a.nav-link"):
142
- seen_urls = set()
143
- for link in nav_links:
144
- if link.attrs.get("href") == "#":
145
- continue # Sinema Modu vb.
146
-
147
- name = link.text(strip=True)
148
- href = link.attrs.get("href")
149
- is_active = "active" in link.attrs.get("class", "")
150
-
151
- if href and href not in seen_urls:
152
- seen_urls.add(href)
153
- sources.append((name, href, is_active))
154
- else:
155
- # Nav yoksa mevcut sayfayı (Varsayılan/VIP) al
156
- sources.append(("VIP", url, True))
151
+
152
+ # Eğer dil sekmeleri ve paneller eşleşiyorsa (ideal durum)
153
+ if lang_tabs and tab_panes:
154
+ for i, pane in enumerate(tab_panes):
155
+ if i >= len(lang_tabs):
156
+ break
157
+
158
+ lang_name = lang_tabs[i].text(strip=True)
159
+ player_links = secici.select("a.nav-link", element=pane)
160
+
161
+ for link in player_links:
162
+ p_name = link.text(strip=True)
163
+ if not p_name or any(x in p_name.lower() for x in ["paylaş", "indir", "hata"]):
164
+ continue
165
+
166
+ href = link.attrs.get("href")
167
+ if not href or href == "#":
168
+ continue
169
+
170
+ # Yeni isim "Moly | Türkçe Dublaj"
171
+ full_name = f"{p_name} | {lang_name}"
172
+ is_active = "active" in link.attrs.get("class", "")
173
+
174
+ sources.append((full_name, self.fix_url(href), is_active))
175
+
176
+ # Eğer panel yapısı beklediğimizden farklıysa eski mantığa dön
177
+ if not sources:
178
+ if nav_links := secici.select("nav.card-nav a.nav-link"):
179
+ seen_urls = set()
180
+ for link in nav_links:
181
+ if link.attrs.get("href") == "#":
182
+ continue # Sinema Modu vb.
183
+
184
+ name = link.text(strip=True)
185
+ href = link.attrs.get("href")
186
+ is_active = "active" in link.attrs.get("class", "")
187
+
188
+ if href and href not in seen_urls:
189
+ seen_urls.add(href)
190
+ sources.append((name, self.fix_url(href), is_active))
191
+ else:
192
+ # Nav yoksa mevcut sayfayı (Varsayılan/VIP) al
193
+ sources.append(("VIP", url, True))
157
194
 
158
195
  tasks = []
159
196
  for name, link_url, is_active in sources:
@@ -78,7 +78,7 @@ class FilmMakinesi(PluginBase):
78
78
 
79
79
  title = self.clean_title(secici.select_text("h1.title"))
80
80
  poster = secici.select_poster("img.cover-img")
81
- description = secici.select_text("div.info-description p")
81
+ description = secici.select_text("div.info-description")
82
82
  rating = secici.select_text("div.info div.imdb b")
83
83
  year = secici.select_text("span.date a")
84
84
  actors = secici.select_texts("div.cast-name")
@@ -5,7 +5,7 @@ from KekikStream.Core import PluginBase, MainPageResult, SearchResult, MovieInfo
5
5
  class FilmciBaba(PluginBase):
6
6
  name = "FilmciBaba"
7
7
  language = "tr"
8
- main_url = "https://izlehdfilm.cc"
8
+ main_url = "https://4kizle.live"
9
9
  favicon = f"https://www.google.com/s2/favicons?domain={main_url}&sz=64"
10
10
  description = "Filmci Baba, film izleme sitesi 4k Full film izle, 1080p ve 4k kalite de sinema filmleri ve dizileri, tek parça hd kalitede türkçe dublajlı filmler seyret."
11
11
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: KekikStream
3
- Version: 2.5.0
3
+ Version: 2.5.2
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
@@ -63,13 +63,13 @@ Terminal üzerinden içerik arayın, VLC/MPV ile doğrudan izleyin veya kendi AP
63
63
 
64
64
  ## 🚦 Ne Sunar?
65
65
 
66
- KekikStream, Türkçe medya kaynaklarını tek CLI arayüzünde toplayarak hızlı arama ve oynatma sunar. Plugin mimarisi sayesinde yeni kaynaklar eklemek ve [WatchBuddy](https://github.com/WatchBuddy-tv/Stream) ile web/API üzerinden yayın yapmak kolaydır.
66
+ KekikStream, Türkçe medya kaynaklarını tek CLI arayüzünde toplayarak hızlı arama ve oynatma sunar. Plugin mimarisi sayesinde yeni kaynaklar eklemek ve [KekikStreamAPI](https://github.com/keyiflerolsun/KekikStreamAPI) ile web/API üzerinden yayın yapmak kolaydır.
67
67
 
68
68
  - 🎥 Çoklu kaynak desteği: Onlarca Türkçe medya sitesi
69
69
  - 🔌 Plugin mimarisi: Yeni kaynak eklemek dakikalar sürer
70
70
  - 🎬 Çoklu oynatıcı: VLC, MPV, MX Player
71
71
  - 🖥️ CLI & kütüphane: Terminalde veya kod içinde kullanın
72
- - 🌐 API/Web UI: WatchBuddy üzerinden uzak erişim
72
+ - 🌐 API/Web UI: KekikStreamAPI üzerinden uzak erişim
73
73
 
74
74
  ---
75
75
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: KekikStream
3
- Version: 2.5.0
3
+ Version: 2.5.2
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
@@ -63,13 +63,13 @@ Terminal üzerinden içerik arayın, VLC/MPV ile doğrudan izleyin veya kendi AP
63
63
 
64
64
  ## 🚦 Ne Sunar?
65
65
 
66
- KekikStream, Türkçe medya kaynaklarını tek CLI arayüzünde toplayarak hızlı arama ve oynatma sunar. Plugin mimarisi sayesinde yeni kaynaklar eklemek ve [WatchBuddy](https://github.com/WatchBuddy-tv/Stream) ile web/API üzerinden yayın yapmak kolaydır.
66
+ KekikStream, Türkçe medya kaynaklarını tek CLI arayüzünde toplayarak hızlı arama ve oynatma sunar. Plugin mimarisi sayesinde yeni kaynaklar eklemek ve [KekikStreamAPI](https://github.com/keyiflerolsun/KekikStreamAPI) ile web/API üzerinden yayın yapmak kolaydır.
67
67
 
68
68
  - 🎥 Çoklu kaynak desteği: Onlarca Türkçe medya sitesi
69
69
  - 🔌 Plugin mimarisi: Yeni kaynak eklemek dakikalar sürer
70
70
  - 🎬 Çoklu oynatıcı: VLC, MPV, MX Player
71
71
  - 🖥️ CLI & kütüphane: Terminalde veya kod içinde kullanın
72
- - 🌐 API/Web UI: WatchBuddy üzerinden uzak erişim
72
+ - 🌐 API/Web UI: KekikStreamAPI üzerinden uzak erişim
73
73
 
74
74
  ---
75
75
 
@@ -26,13 +26,13 @@ Terminal üzerinden içerik arayın, VLC/MPV ile doğrudan izleyin veya kendi AP
26
26
 
27
27
  ## 🚦 Ne Sunar?
28
28
 
29
- KekikStream, Türkçe medya kaynaklarını tek CLI arayüzünde toplayarak hızlı arama ve oynatma sunar. Plugin mimarisi sayesinde yeni kaynaklar eklemek ve [WatchBuddy](https://github.com/WatchBuddy-tv/Stream) ile web/API üzerinden yayın yapmak kolaydır.
29
+ KekikStream, Türkçe medya kaynaklarını tek CLI arayüzünde toplayarak hızlı arama ve oynatma sunar. Plugin mimarisi sayesinde yeni kaynaklar eklemek ve [KekikStreamAPI](https://github.com/keyiflerolsun/KekikStreamAPI) ile web/API üzerinden yayın yapmak kolaydır.
30
30
 
31
31
  - 🎥 Çoklu kaynak desteği: Onlarca Türkçe medya sitesi
32
32
  - 🔌 Plugin mimarisi: Yeni kaynak eklemek dakikalar sürer
33
33
  - 🎬 Çoklu oynatıcı: VLC, MPV, MX Player
34
34
  - 🖥️ CLI & kütüphane: Terminalde veya kod içinde kullanın
35
- - 🌐 API/Web UI: WatchBuddy üzerinden uzak erişim
35
+ - 🌐 API/Web UI: KekikStreamAPI üzerinden uzak erişim
36
36
 
37
37
  ---
38
38
 
@@ -6,7 +6,7 @@ from io import open
6
6
  setup(
7
7
  # ? Genel Bilgiler
8
8
  name = "KekikStream",
9
- version = "2.5.0",
9
+ version = "2.5.2",
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"],
File without changes
File without changes
File without changes