KekikStream 1.8.7__tar.gz → 1.8.8__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.
Files changed (91) hide show
  1. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Core/Media/MediaHandler.py +84 -12
  2. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream.egg-info/PKG-INFO +84 -97
  3. {kekikstream-1.8.7 → kekikstream-1.8.8}/PKG-INFO +84 -97
  4. {kekikstream-1.8.7 → kekikstream-1.8.8}/README.md +83 -96
  5. {kekikstream-1.8.7 → kekikstream-1.8.8}/setup.py +1 -1
  6. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/CLI/__init__.py +0 -0
  7. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/CLI/pypi_kontrol.py +0 -0
  8. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Core/Extractor/ExtractorBase.py +0 -0
  9. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Core/Extractor/ExtractorLoader.py +0 -0
  10. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Core/Extractor/ExtractorManager.py +0 -0
  11. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Core/Extractor/ExtractorModels.py +0 -0
  12. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Core/Media/MediaManager.py +0 -0
  13. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Core/Plugin/PluginBase.py +0 -0
  14. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Core/Plugin/PluginLoader.py +0 -0
  15. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Core/Plugin/PluginManager.py +0 -0
  16. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Core/Plugin/PluginModels.py +0 -0
  17. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Core/UI/UIManager.py +0 -0
  18. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Core/__init__.py +0 -0
  19. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/CloseLoad.py +0 -0
  20. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/ContentX.py +0 -0
  21. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/DzenRu.py +0 -0
  22. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/ExPlay.py +0 -0
  23. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/FirePlayer.py +0 -0
  24. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/FourCX.py +0 -0
  25. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/FourPichive.py +0 -0
  26. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/FourPlayRu.py +0 -0
  27. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/HDPlayerSystem.py +0 -0
  28. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/HDStreamAble.py +0 -0
  29. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/Hotlinger.py +0 -0
  30. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/JetTv.py +0 -0
  31. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/MailRu.py +0 -0
  32. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/MixPlayHD.py +0 -0
  33. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/MixTiger.py +0 -0
  34. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/MolyStream.py +0 -0
  35. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/Odnoklassniki.py +0 -0
  36. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/OkRuHTTP.py +0 -0
  37. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/OkRuSSL.py +0 -0
  38. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/PeaceMakerst.py +0 -0
  39. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/Pichive.py +0 -0
  40. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/PixelDrain.py +0 -0
  41. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/PlayRu.py +0 -0
  42. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/PlayerFilmIzle.py +0 -0
  43. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/RapidVid.py +0 -0
  44. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/SetPlay.py +0 -0
  45. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/SetPrime.py +0 -0
  46. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/SibNet.py +0 -0
  47. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/Sobreatsesuyp.py +0 -0
  48. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/TRsTX.py +0 -0
  49. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/TauVideo.py +0 -0
  50. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/TurboImgz.py +0 -0
  51. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/TurkeyPlayer.py +0 -0
  52. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/VidHide.py +0 -0
  53. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/VidMoly.py +0 -0
  54. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/VidMolyMe.py +0 -0
  55. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/VidMoxy.py +0 -0
  56. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/VidPapi.py +0 -0
  57. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/VideoSeyred.py +0 -0
  58. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Extractors/YildizKisaFilm.py +0 -0
  59. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Plugins/DiziBox.py +0 -0
  60. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Plugins/DiziPal.py +0 -0
  61. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Plugins/DiziYou.py +0 -0
  62. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Plugins/Dizilla.py +0 -0
  63. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Plugins/FilmBip.py +0 -0
  64. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Plugins/FilmMakinesi.py +0 -0
  65. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Plugins/FilmModu.py +0 -0
  66. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Plugins/FullHDFilm.py +0 -0
  67. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Plugins/FullHDFilmizlesene.py +0 -0
  68. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Plugins/HDFilmCehennemi.py +0 -0
  69. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Plugins/JetFilmizle.py +0 -0
  70. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Plugins/KultFilmler.py +0 -0
  71. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Plugins/RecTV.py +0 -0
  72. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Plugins/RoketDizi.py +0 -0
  73. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Plugins/SelcukFlix.py +0 -0
  74. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Plugins/SezonlukDizi.py +0 -0
  75. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Plugins/SineWix.py +0 -0
  76. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Plugins/Sinefy.py +0 -0
  77. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Plugins/SinemaCX.py +0 -0
  78. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Plugins/Sinezy.py +0 -0
  79. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Plugins/SuperFilmGeldi.py +0 -0
  80. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/Plugins/UgurFilm.py +0 -0
  81. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/__init__.py +0 -0
  82. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/__main__.py +0 -0
  83. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream/requirements.txt +0 -0
  84. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream.egg-info/SOURCES.txt +0 -0
  85. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream.egg-info/dependency_links.txt +0 -0
  86. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream.egg-info/entry_points.txt +0 -0
  87. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream.egg-info/requires.txt +0 -0
  88. {kekikstream-1.8.7 → kekikstream-1.8.8}/KekikStream.egg-info/top_level.txt +0 -0
  89. {kekikstream-1.8.7 → kekikstream-1.8.8}/LICENSE +0 -0
  90. {kekikstream-1.8.7 → kekikstream-1.8.8}/MANIFEST.in +0 -0
  91. {kekikstream-1.8.7 → kekikstream-1.8.8}/setup.cfg +0 -0
@@ -2,13 +2,59 @@
2
2
 
3
3
  from ...CLI import konsol
4
4
  from ..Extractor.ExtractorModels import ExtractResult
5
- import subprocess, os
5
+ import subprocess, os, yt_dlp
6
6
 
7
7
  class MediaHandler:
8
8
  def __init__(self, title: str = "KekikStream"):
9
9
  self.title = title
10
10
  self.headers = {}
11
11
 
12
+ self._ytdlp_extractors = yt_dlp.extractor.list_extractors()
13
+
14
+ def should_use_ytdlp(self, url: str, user_agent: str) -> bool:
15
+ """
16
+ yt-dlp gereken durumları akıllıca tespit et
17
+
18
+ yt-dlp'nin kendi 1863+ extractor'ını kullanarak otomatik tespit yapar.
19
+ YouTube, Vimeo, Twitch, TikTok, Instagram vb. binlerce site için çalışır.
20
+
21
+ Args:
22
+ url: Video URL'si
23
+ user_agent: User-Agent string'i
24
+
25
+ Returns:
26
+ bool: yt-dlp kullanılması gerekiyorsa True
27
+ """
28
+ # 1. User-Agent bazlı kontrol (mevcut davranışı koru - RecTV, MolyStream için)
29
+ ytdlp_user_agents = [
30
+ "googleusercontent",
31
+ "Mozilla/5.0 (X11; Linux x86_64; rv:101.0) Gecko/20100101 Firefox/101.0"
32
+ ]
33
+
34
+ if user_agent in ytdlp_user_agents:
35
+ konsol.log("[cyan][ℹ] User-Agent bazlı yt-dlp tespiti[/cyan]")
36
+ return True
37
+
38
+ # 2. yt-dlp'nin kendi extractor tespitini kullan
39
+ try:
40
+ # Tüm extractorları kontrol et (Generic hariç)
41
+ for ie in self._ytdlp_extractors:
42
+ # Generic extractor'ı atla (her URL'ye uygundur ama özel değildir)
43
+ if ie.ie_key() == 'Generic':
44
+ continue
45
+
46
+ # Bu extractor bu URL'yi işleyebilir mi?
47
+ if ie.suitable(url):
48
+ konsol.log(f"[cyan][ℹ] yt-dlp extractor bulundu: {ie.ie_key()}[/cyan]")
49
+ return True
50
+
51
+ # Özel extractor bulunamadı
52
+ return False
53
+
54
+ except Exception as e:
55
+ konsol.log(f"[yellow][⚠] yt-dlp kontrol hatası: {e}[/yellow]")
56
+ return False
57
+
12
58
  def play_media(self, extract_data: ExtractResult):
13
59
  # user-agent ekle (varsayılan veya extract_data'dan)
14
60
  user_agent = extract_data.user_agent or "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5)"
@@ -18,19 +64,38 @@ class MediaHandler:
18
64
  if extract_data.referer:
19
65
  self.headers["referer"] = extract_data.referer
20
66
 
21
- # Google Drive gibi özel durumlar için yt-dlp kullan
22
- if user_agent in ["googleusercontent", "Mozilla/5.0 (X11; Linux x86_64; rv:101.0) Gecko/20100101 Firefox/101.0"]:
23
- return self.play_with_ytdlp(extract_data)
24
-
25
- # İşletim sistemine göre oynatıcı seç
67
+ # İşletim sistemine göre oynatıcı seç (Android durumu)
26
68
  if subprocess.check_output(['uname', '-o']).strip() == b'Android':
27
69
  return self.play_with_android_mxplayer(extract_data)
28
70
 
29
- # Alt yazılar varsa mpv kullan
30
- if extract_data.subtitles:
31
- return self.play_with_mpv(extract_data)
71
+ # Akıllı yt-dlp tespiti
72
+ if self.should_use_ytdlp(extract_data.url, user_agent):
73
+ konsol.log("[green][✓] yt-dlp kullanılacak[/green]")
74
+ success = self.play_with_ytdlp(extract_data)
75
+ if success:
76
+ return True
77
+ konsol.log("[yellow][⚠] yt-dlp başarısız, standart oynatıcılar deneniyor...[/yellow]")
78
+
79
+ # Oynatıcı öncelik sırası (fallback zincirleme)
80
+ players = [
81
+ ("MPV", self.play_with_mpv),
82
+ ("VLC", self.play_with_vlc),
83
+ ("yt-dlp", self.play_with_ytdlp)
84
+ ]
85
+
86
+ # Fallback zincirleme
87
+ for player_name, player_func in players:
88
+ try:
89
+ result = player_func(extract_data)
90
+ if result or result is None: # None = MPV (exception yok)
91
+ konsol.log(f"[green][✓] {player_name} ile başarılı[/green]")
92
+ return True
93
+ except Exception as e:
94
+ konsol.log(f"[yellow][⚠] {player_name} hatası: {e}[/yellow]")
95
+ continue
32
96
 
33
- return self.play_with_vlc(extract_data) or self.play_with_mpv(extract_data)
97
+ konsol.print("[red][✗] Hiçbir oynatıcı çalışmadı![/red]")
98
+ return False
34
99
 
35
100
  def play_with_vlc(self, extract_data: ExtractResult):
36
101
  konsol.log(f"[yellow][»] VLC ile Oynatılıyor : {extract_data.url}")
@@ -88,12 +153,15 @@ class MediaHandler:
88
153
  with open(os.devnull, "w") as devnull:
89
154
  subprocess.run(mpv_command, stdout=devnull, stderr=devnull, check=True)
90
155
 
156
+ return True
91
157
  except subprocess.CalledProcessError as hata:
92
158
  konsol.print(f"[red]mpv oynatma hatası: {hata}[/red]")
93
159
  konsol.print({"title": self.title, "url": extract_data.url, "headers": self.headers})
160
+ return False
94
161
  except FileNotFoundError:
95
162
  konsol.print("[red]mpv bulunamadı! mpv kurulu olduğundan emin olun.[/red]")
96
163
  konsol.print({"title": self.title, "url": extract_data.url, "headers": self.headers})
164
+ return False
97
165
 
98
166
  def play_with_ytdlp(self, extract_data: ExtractResult):
99
167
  konsol.log(f"[yellow][»] yt-dlp ile Oynatılıyor : {extract_data.url}")
@@ -121,12 +189,15 @@ class MediaHandler:
121
189
  with subprocess.Popen(ytdlp_command, stdout=subprocess.PIPE) as ytdlp_proc:
122
190
  subprocess.run(mpv_command, stdin=ytdlp_proc.stdout, check=True)
123
191
 
192
+ return True
124
193
  except subprocess.CalledProcessError as hata:
125
194
  konsol.print(f"[red]Oynatma hatası: {hata}[/red]")
126
195
  konsol.print({"title": self.title, "url": extract_data.url, "headers": self.headers})
196
+ return False
127
197
  except FileNotFoundError:
128
198
  konsol.print("[red]yt-dlp veya mpv bulunamadı! Kurulumlarından emin olun.[/red]")
129
199
  konsol.print({"title": self.title, "url": extract_data.url, "headers": self.headers})
200
+ return False
130
201
 
131
202
  def play_with_android_mxplayer(self, extract_data: ExtractResult):
132
203
  konsol.log(f"[yellow][»] MxPlayer ile Oynatılıyor : {extract_data.url}")
@@ -151,11 +222,12 @@ class MediaHandler:
151
222
  with open(os.devnull, "w") as devnull:
152
223
  subprocess.run(android_command, stdout=devnull, stderr=devnull, check=True)
153
224
 
154
- return
155
-
225
+ return True
156
226
  except subprocess.CalledProcessError as hata:
157
227
  konsol.print(f"[red]{paket} oynatma hatası: {hata}[/red]")
158
228
  konsol.print({"title": self.title, "url": extract_data.url, "headers": self.headers})
229
+ return False
159
230
  except FileNotFoundError:
160
231
  konsol.print(f"Paket: {paket}, Hata: MX Player kurulu değil")
161
232
  konsol.print({"title": self.title, "url": extract_data.url, "headers": self.headers})
233
+ return False
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: KekikStream
3
- Version: 1.8.7
3
+ Version: 1.8.8
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
@@ -51,8 +51,8 @@ Dynamic: summary
51
51
 
52
52
  [![PyPI Yükle](https://github.com/keyiflerolsun/KekikStream/actions/workflows/pypiYukle.yml/badge.svg)](https://github.com/keyiflerolsun/KekikStream/actions/workflows/pypiYukle.yml)
53
53
 
54
- **Modüler ve Genişletilebilir Medya Streaming Kütüphanesi**
55
- Terminal üzerinden medya içeriği arayın, VLC/MPV ile doğrudan izleyin! 🚀
54
+ **Modüler ve genişletilebilir medya streaming kütüphanesi**
55
+ Terminal üzerinden içerik arayın, VLC/MPV ile doğrudan izleyin veya kendi API’nizi kurun. 🚀
56
56
 
57
57
  [![Video](https://github.com/user-attachments/assets/63d31bb0-0b69-40b4-84aa-66623f2a253f)](https://github.com/user-attachments/assets/63d31bb0-0b69-40b4-84aa-66623f2a253f)
58
58
 
@@ -61,41 +61,96 @@ Terminal üzerinden medya içeriği arayın, VLC/MPV ile doğrudan izleyin! 🚀
61
61
 
62
62
  ---
63
63
 
64
- ## 🌟 Genel Bakış
64
+ ## 🚦 Ne Sunar?
65
65
 
66
- **KekikStream**, Türkçe medya kaynaklarından içerik aramanızı ve popüler medya oynatıcılar ile izlemenizi sağlayan Python kütüphanesidir.
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
- ### Temel Özellikler
69
-
70
- - 🎥 **Çoklu Kaynak Desteği** - Onlarca Türkçe medya sitesi desteği
71
- - 🔌 **Plugin Mimarisi** - Kolayca yeni kaynaklar ekleyin
72
- - 🎬 **Çoklu Oynatıcı** - VLC, MPV, MX Player desteği
73
- - 🖥️ **CLI & Kütüphane** - Terminal veya kod içinde kullanın
74
- - 🌐 **API ve Web UI Desteği** - [KekikStreamAPI](https://github.com/keyiflerolsun/KekikStreamAPI) ile ağ üzerinden erişim
68
+ - 🎥 Çoklu kaynak desteği: Onlarca Türkçe medya sitesi
69
+ - 🔌 Plugin mimarisi: Yeni kaynak eklemek dakikalar sürer
70
+ - 🎬 Çoklu oynatıcı: VLC, MPV, MX Player
71
+ - 🖥️ CLI & kütüphane: Terminalde veya kod içinde kullanın
72
+ - 🌐 API/Web UI: KekikStreamAPI üzerinden uzak erişim
75
73
 
76
74
  ---
77
75
 
78
76
  ## 🚀 Hızlı Başlangıç
79
77
 
80
- ### Kurulum
78
+ > Gereksinimler: Python 3.11+, sistemde VLC veya MPV kurulu olmalı (Android için MX Player + ADB).
81
79
 
82
80
  ```bash
83
- # Yüklemek
81
+ # Kurulum
84
82
  pip install KekikStream
85
83
 
86
- # Güncellemek
84
+ # Güncelleme
87
85
  pip install -U KekikStream
88
86
  ```
89
87
 
90
- > **Gereksinimler:** Sisteminizde VLC veya MPV yüklü olmalıdır.
91
-
92
88
  ### Temel Kullanım
93
89
 
94
- **Terminal:**
90
+ **CLI:**
95
91
  ```bash
96
92
  KekikStream
97
93
  ```
98
94
 
95
+ **Kütüphane (örnek arama):**
96
+ ```python
97
+ from KekikStream import Manager
98
+ results = Manager().search("vikings")
99
+ print(results[0].title)
100
+ ```
101
+
102
+ ---
103
+
104
+ ## ✨ Özellikler
105
+
106
+ ### 🔌 Plugin Sistemi
107
+
108
+ KekikStream modüler bir plugin mimarisi kullanır; her medya kaynağı bağımsız bir plugin'dir.
109
+
110
+ **Mevcut Pluginler (örnek):** Dizilla, HDFilmCehennemi, Dizipal, Dizifon, RoketDizi, Sinefy, Moviesseed, FullHDFilmizlesene, HDBestMovies, SuperFilmGeldi, Sinezy ve daha fazlası.
111
+
112
+ **Plugin Geliştirme:**
113
+ ```python
114
+ from KekikStream.Core import PluginBase, MainPageResult, SearchResult, MovieInfo, SeriesInfo
115
+
116
+ class MyPlugin(PluginBase):
117
+ name = "MyPlugin"
118
+ language = "en"
119
+ main_url = "https://example.com"
120
+ favicon = f"https://www.google.com/s2/favicons?domain={main_url}&sz=64"
121
+ description = "MyPlugin description"
122
+
123
+ main_page = {
124
+ f"{main_url}/category/" : "Category Name"
125
+ }
126
+
127
+ async def get_main_page(self, page: int, url: str, category: str) -> list[MainPageResult]:
128
+ return results
129
+
130
+ async def search(self, query: str) -> list[SearchResult]:
131
+ return results
132
+
133
+ async def load_item(self, url: str) -> MovieInfo | SeriesInfo:
134
+ return details
135
+
136
+ async def load_links(self, url: str) -> list[dict]:
137
+ return links
138
+ ```
139
+
140
+ ### 🎬 Oynatıcı Desteği
141
+
142
+ | Oynatıcı | Platform | Özellikler |
143
+ |----------|----------|------------|
144
+ | **VLC** | Desktop | Custom headers, subtitles, varsayılan |
145
+ | **MPV** | Desktop | Custom headers, subtitles |
146
+ | **MX Player** | Android | ADB üzerinden |
147
+
148
+ > Özel durumlar için (Google Drive vb.) arka planda otomatik olarak yt-dlp devreye girer.
149
+
150
+ ### 🔗 Extractor Sistemi
151
+
152
+ Vidmoly, Filemoon, Sibnet, Sendvid, Voe, Doodstream, Streamtape, Upstream, Dailymotion, JWPlayer ve birçok kaynaktan direkt streaming linki çıkarır.
153
+
99
154
  ---
100
155
 
101
156
  ## 🏗️ Mimari
@@ -164,69 +219,6 @@ graph TB
164
219
 
165
220
  ---
166
221
 
167
- ## ✨ Özellikler
168
-
169
- ### 🔌 Plugin Sistemi
170
-
171
- KekikStream modüler bir plugin mimarisi kullanır. Her medya kaynağı bağımsız bir plugin'dir.
172
-
173
- **Mevcut Pluginler:**
174
- - Dizilla, HDFilmCehennemi, Dizipal, Dizifon
175
- - RoketDizi, Sinefy, Moviesseed, FullHDFilmizlesene
176
- - HDBestMovies, SuperFilmGeldi, Sinezy ve daha fazlası...
177
-
178
- **Plugin Geliştirme:**
179
- ```python
180
- from KekikStream.Core import PluginBase, MainPageResult, SearchResult, MovieInfo, SeriesInfo
181
-
182
- class MyPlugin(PluginBase):
183
- name = "MyPlugin"
184
- language = "en"
185
- main_url = "https://example.com"
186
- favicon = f"https://www.google.com/s2/favicons?domain={main_url}&sz=64"
187
- description = "MyPlugin description"
188
-
189
- main_page = {
190
- f"{main_url}/category/" : "Category Name"
191
- }
192
-
193
- async def get_main_page(self, page: int, url: str, category: str) -> list[MainPageResult]:
194
- # Ana sayfa implementasyonu
195
- return results
196
-
197
- async def search(self, query: str) -> list[SearchResult]:
198
- # Arama implementasyonu
199
- return results
200
-
201
- async def load_item(self, url: str) -> MovieInfo | SeriesInfo:
202
- # İçerik detayları
203
- return details
204
-
205
- async def load_links(self, url: str) -> list[dict]:
206
- # Video bağlantıları
207
- return links
208
- ```
209
-
210
- ### 🎬 Oynatıcı Desteği
211
-
212
- | Oynatıcı | Platform | Özellikler |
213
- |----------|----------|------------|
214
- | **VLC** | Desktop | Custom headers, subtitles, varsayılan |
215
- | **MPV** | Desktop | Custom headers, subtitles |
216
- | **MX Player** | Android | ADB üzerinden |
217
-
218
- > **Not:** Özel durumlar için (Google Drive, vb.) arka planda otomatik olarak yt-dlp kullanılabilir.
219
-
220
- ### 🔗 Extractor Sistemi
221
-
222
- Video barındırma sitelerinden direkt streaming linkleri çıkarır:
223
-
224
- - Vidmoly, Filemoon, Sibnet, Sendvid
225
- - Voe, Doodstream, Streamtape, Upstream
226
- - Dailymotion, JWPlayer ve daha fazlası...
227
-
228
- ---
229
-
230
222
  ## 🛠️ Geliştirme
231
223
 
232
224
  ### Proje Yapısı
@@ -245,12 +237,10 @@ KekikStream/
245
237
 
246
238
  ### Yeni Plugin Ekleme
247
239
 
248
- 1. `KekikStream/Plugins/` altına yeni dosya oluşturun
249
- 2. `PluginBase` sınıfından türetin
250
- 3. Gerekli metodları implemente edin (`get_main_page`, `search`, `load_item`, `load_links`)
251
- 4. Plugin'i test edin
252
-
253
- **Örnek:** [Tests/Single.py](https://github.com/keyiflerolsun/KekikStream/blob/master/Tests/Single.py)
240
+ 1. `KekikStream/Plugins/` altına yeni dosya oluşturun.
241
+ 2. `PluginBase` sınıfından türetin.
242
+ 3. `get_main_page`, `search`, `load_item`, `load_links` metodlarını implemente edin.
243
+ 4. Plugin'i test edin (örnek: `Tests/Single.py`).
254
244
 
255
245
  ---
256
246
 
@@ -270,12 +260,10 @@ KekikStream/
270
260
 
271
261
  Projeyi geliştirmek için katkılarınızı bekliyoruz!
272
262
 
273
- ### Nasıl Katkıda Bulunulur?
274
-
275
- 1. **Yeni Plugin Ekleyin:** Türkçe medya sitesi desteği ekleyin
276
- 2. **Bug Raporu:** GitHub Issues kullanın
277
- 3. **Feature Request:** Yeni özellik önerileri
278
- 4. **Dokümantasyon:** README ve kod dokümantasyonu iyileştirmeleri
263
+ 1. Yeni plugin ekleyin
264
+ 2. Bug raporu açın
265
+ 3. Feature request gönderin
266
+ 4. Dokümantasyon iyileştirin
279
267
 
280
268
  ### 🎁 Teşekkürler
281
269
 
@@ -283,14 +271,13 @@ Projeyi geliştirmek için katkılarınızı bekliyoruz!
283
271
 
284
272
  ### 💻 Genişletme Referansları
285
273
 
286
- - [keyiflerolsun/Kekik-cloudstream](https://github.com/keyiflerolsun/Kekik-cloudstream)
274
+ - [keyiflerolsun/Kekik-cloudstream](https://github.com/keyiflerolsun/Kekik-cloudstream)
287
275
  - [keyiflerolsun/seyirTurk-Parser](https://github.com/keyiflerolsun/seyirTurk-Parser)
288
276
 
289
277
  ## 🌐 Telif Hakkı ve Lisans
290
278
 
291
- * *Copyright (C) 2024 by* [keyiflerolsun](https://github.com/keyiflerolsun) ❤️️
292
- * [GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007](https://github.com/keyiflerolsun/KekikStream/blob/master/LICENSE) *Koşullarına göre lisanslanmıştır..*
293
-
279
+ *Copyright (C) 2024 by* [keyiflerolsun](https://github.com/keyiflerolsun) ❤️️
280
+ [GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007](https://github.com/keyiflerolsun/KekikStream/blob/master/LICENSE) *Koşullarına göre lisanslanmıştır..*
294
281
 
295
282
  ---
296
283
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: KekikStream
3
- Version: 1.8.7
3
+ Version: 1.8.8
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
@@ -51,8 +51,8 @@ Dynamic: summary
51
51
 
52
52
  [![PyPI Yükle](https://github.com/keyiflerolsun/KekikStream/actions/workflows/pypiYukle.yml/badge.svg)](https://github.com/keyiflerolsun/KekikStream/actions/workflows/pypiYukle.yml)
53
53
 
54
- **Modüler ve Genişletilebilir Medya Streaming Kütüphanesi**
55
- Terminal üzerinden medya içeriği arayın, VLC/MPV ile doğrudan izleyin! 🚀
54
+ **Modüler ve genişletilebilir medya streaming kütüphanesi**
55
+ Terminal üzerinden içerik arayın, VLC/MPV ile doğrudan izleyin veya kendi API’nizi kurun. 🚀
56
56
 
57
57
  [![Video](https://github.com/user-attachments/assets/63d31bb0-0b69-40b4-84aa-66623f2a253f)](https://github.com/user-attachments/assets/63d31bb0-0b69-40b4-84aa-66623f2a253f)
58
58
 
@@ -61,41 +61,96 @@ Terminal üzerinden medya içeriği arayın, VLC/MPV ile doğrudan izleyin! 🚀
61
61
 
62
62
  ---
63
63
 
64
- ## 🌟 Genel Bakış
64
+ ## 🚦 Ne Sunar?
65
65
 
66
- **KekikStream**, Türkçe medya kaynaklarından içerik aramanızı ve popüler medya oynatıcılar ile izlemenizi sağlayan Python kütüphanesidir.
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
- ### Temel Özellikler
69
-
70
- - 🎥 **Çoklu Kaynak Desteği** - Onlarca Türkçe medya sitesi desteği
71
- - 🔌 **Plugin Mimarisi** - Kolayca yeni kaynaklar ekleyin
72
- - 🎬 **Çoklu Oynatıcı** - VLC, MPV, MX Player desteği
73
- - 🖥️ **CLI & Kütüphane** - Terminal veya kod içinde kullanın
74
- - 🌐 **API ve Web UI Desteği** - [KekikStreamAPI](https://github.com/keyiflerolsun/KekikStreamAPI) ile ağ üzerinden erişim
68
+ - 🎥 Çoklu kaynak desteği: Onlarca Türkçe medya sitesi
69
+ - 🔌 Plugin mimarisi: Yeni kaynak eklemek dakikalar sürer
70
+ - 🎬 Çoklu oynatıcı: VLC, MPV, MX Player
71
+ - 🖥️ CLI & kütüphane: Terminalde veya kod içinde kullanın
72
+ - 🌐 API/Web UI: KekikStreamAPI üzerinden uzak erişim
75
73
 
76
74
  ---
77
75
 
78
76
  ## 🚀 Hızlı Başlangıç
79
77
 
80
- ### Kurulum
78
+ > Gereksinimler: Python 3.11+, sistemde VLC veya MPV kurulu olmalı (Android için MX Player + ADB).
81
79
 
82
80
  ```bash
83
- # Yüklemek
81
+ # Kurulum
84
82
  pip install KekikStream
85
83
 
86
- # Güncellemek
84
+ # Güncelleme
87
85
  pip install -U KekikStream
88
86
  ```
89
87
 
90
- > **Gereksinimler:** Sisteminizde VLC veya MPV yüklü olmalıdır.
91
-
92
88
  ### Temel Kullanım
93
89
 
94
- **Terminal:**
90
+ **CLI:**
95
91
  ```bash
96
92
  KekikStream
97
93
  ```
98
94
 
95
+ **Kütüphane (örnek arama):**
96
+ ```python
97
+ from KekikStream import Manager
98
+ results = Manager().search("vikings")
99
+ print(results[0].title)
100
+ ```
101
+
102
+ ---
103
+
104
+ ## ✨ Özellikler
105
+
106
+ ### 🔌 Plugin Sistemi
107
+
108
+ KekikStream modüler bir plugin mimarisi kullanır; her medya kaynağı bağımsız bir plugin'dir.
109
+
110
+ **Mevcut Pluginler (örnek):** Dizilla, HDFilmCehennemi, Dizipal, Dizifon, RoketDizi, Sinefy, Moviesseed, FullHDFilmizlesene, HDBestMovies, SuperFilmGeldi, Sinezy ve daha fazlası.
111
+
112
+ **Plugin Geliştirme:**
113
+ ```python
114
+ from KekikStream.Core import PluginBase, MainPageResult, SearchResult, MovieInfo, SeriesInfo
115
+
116
+ class MyPlugin(PluginBase):
117
+ name = "MyPlugin"
118
+ language = "en"
119
+ main_url = "https://example.com"
120
+ favicon = f"https://www.google.com/s2/favicons?domain={main_url}&sz=64"
121
+ description = "MyPlugin description"
122
+
123
+ main_page = {
124
+ f"{main_url}/category/" : "Category Name"
125
+ }
126
+
127
+ async def get_main_page(self, page: int, url: str, category: str) -> list[MainPageResult]:
128
+ return results
129
+
130
+ async def search(self, query: str) -> list[SearchResult]:
131
+ return results
132
+
133
+ async def load_item(self, url: str) -> MovieInfo | SeriesInfo:
134
+ return details
135
+
136
+ async def load_links(self, url: str) -> list[dict]:
137
+ return links
138
+ ```
139
+
140
+ ### 🎬 Oynatıcı Desteği
141
+
142
+ | Oynatıcı | Platform | Özellikler |
143
+ |----------|----------|------------|
144
+ | **VLC** | Desktop | Custom headers, subtitles, varsayılan |
145
+ | **MPV** | Desktop | Custom headers, subtitles |
146
+ | **MX Player** | Android | ADB üzerinden |
147
+
148
+ > Özel durumlar için (Google Drive vb.) arka planda otomatik olarak yt-dlp devreye girer.
149
+
150
+ ### 🔗 Extractor Sistemi
151
+
152
+ Vidmoly, Filemoon, Sibnet, Sendvid, Voe, Doodstream, Streamtape, Upstream, Dailymotion, JWPlayer ve birçok kaynaktan direkt streaming linki çıkarır.
153
+
99
154
  ---
100
155
 
101
156
  ## 🏗️ Mimari
@@ -164,69 +219,6 @@ graph TB
164
219
 
165
220
  ---
166
221
 
167
- ## ✨ Özellikler
168
-
169
- ### 🔌 Plugin Sistemi
170
-
171
- KekikStream modüler bir plugin mimarisi kullanır. Her medya kaynağı bağımsız bir plugin'dir.
172
-
173
- **Mevcut Pluginler:**
174
- - Dizilla, HDFilmCehennemi, Dizipal, Dizifon
175
- - RoketDizi, Sinefy, Moviesseed, FullHDFilmizlesene
176
- - HDBestMovies, SuperFilmGeldi, Sinezy ve daha fazlası...
177
-
178
- **Plugin Geliştirme:**
179
- ```python
180
- from KekikStream.Core import PluginBase, MainPageResult, SearchResult, MovieInfo, SeriesInfo
181
-
182
- class MyPlugin(PluginBase):
183
- name = "MyPlugin"
184
- language = "en"
185
- main_url = "https://example.com"
186
- favicon = f"https://www.google.com/s2/favicons?domain={main_url}&sz=64"
187
- description = "MyPlugin description"
188
-
189
- main_page = {
190
- f"{main_url}/category/" : "Category Name"
191
- }
192
-
193
- async def get_main_page(self, page: int, url: str, category: str) -> list[MainPageResult]:
194
- # Ana sayfa implementasyonu
195
- return results
196
-
197
- async def search(self, query: str) -> list[SearchResult]:
198
- # Arama implementasyonu
199
- return results
200
-
201
- async def load_item(self, url: str) -> MovieInfo | SeriesInfo:
202
- # İçerik detayları
203
- return details
204
-
205
- async def load_links(self, url: str) -> list[dict]:
206
- # Video bağlantıları
207
- return links
208
- ```
209
-
210
- ### 🎬 Oynatıcı Desteği
211
-
212
- | Oynatıcı | Platform | Özellikler |
213
- |----------|----------|------------|
214
- | **VLC** | Desktop | Custom headers, subtitles, varsayılan |
215
- | **MPV** | Desktop | Custom headers, subtitles |
216
- | **MX Player** | Android | ADB üzerinden |
217
-
218
- > **Not:** Özel durumlar için (Google Drive, vb.) arka planda otomatik olarak yt-dlp kullanılabilir.
219
-
220
- ### 🔗 Extractor Sistemi
221
-
222
- Video barındırma sitelerinden direkt streaming linkleri çıkarır:
223
-
224
- - Vidmoly, Filemoon, Sibnet, Sendvid
225
- - Voe, Doodstream, Streamtape, Upstream
226
- - Dailymotion, JWPlayer ve daha fazlası...
227
-
228
- ---
229
-
230
222
  ## 🛠️ Geliştirme
231
223
 
232
224
  ### Proje Yapısı
@@ -245,12 +237,10 @@ KekikStream/
245
237
 
246
238
  ### Yeni Plugin Ekleme
247
239
 
248
- 1. `KekikStream/Plugins/` altına yeni dosya oluşturun
249
- 2. `PluginBase` sınıfından türetin
250
- 3. Gerekli metodları implemente edin (`get_main_page`, `search`, `load_item`, `load_links`)
251
- 4. Plugin'i test edin
252
-
253
- **Örnek:** [Tests/Single.py](https://github.com/keyiflerolsun/KekikStream/blob/master/Tests/Single.py)
240
+ 1. `KekikStream/Plugins/` altına yeni dosya oluşturun.
241
+ 2. `PluginBase` sınıfından türetin.
242
+ 3. `get_main_page`, `search`, `load_item`, `load_links` metodlarını implemente edin.
243
+ 4. Plugin'i test edin (örnek: `Tests/Single.py`).
254
244
 
255
245
  ---
256
246
 
@@ -270,12 +260,10 @@ KekikStream/
270
260
 
271
261
  Projeyi geliştirmek için katkılarınızı bekliyoruz!
272
262
 
273
- ### Nasıl Katkıda Bulunulur?
274
-
275
- 1. **Yeni Plugin Ekleyin:** Türkçe medya sitesi desteği ekleyin
276
- 2. **Bug Raporu:** GitHub Issues kullanın
277
- 3. **Feature Request:** Yeni özellik önerileri
278
- 4. **Dokümantasyon:** README ve kod dokümantasyonu iyileştirmeleri
263
+ 1. Yeni plugin ekleyin
264
+ 2. Bug raporu açın
265
+ 3. Feature request gönderin
266
+ 4. Dokümantasyon iyileştirin
279
267
 
280
268
  ### 🎁 Teşekkürler
281
269
 
@@ -283,14 +271,13 @@ Projeyi geliştirmek için katkılarınızı bekliyoruz!
283
271
 
284
272
  ### 💻 Genişletme Referansları
285
273
 
286
- - [keyiflerolsun/Kekik-cloudstream](https://github.com/keyiflerolsun/Kekik-cloudstream)
274
+ - [keyiflerolsun/Kekik-cloudstream](https://github.com/keyiflerolsun/Kekik-cloudstream)
287
275
  - [keyiflerolsun/seyirTurk-Parser](https://github.com/keyiflerolsun/seyirTurk-Parser)
288
276
 
289
277
  ## 🌐 Telif Hakkı ve Lisans
290
278
 
291
- * *Copyright (C) 2024 by* [keyiflerolsun](https://github.com/keyiflerolsun) ❤️️
292
- * [GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007](https://github.com/keyiflerolsun/KekikStream/blob/master/LICENSE) *Koşullarına göre lisanslanmıştır..*
293
-
279
+ *Copyright (C) 2024 by* [keyiflerolsun](https://github.com/keyiflerolsun) ❤️️
280
+ [GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007](https://github.com/keyiflerolsun/KekikStream/blob/master/LICENSE) *Koşullarına göre lisanslanmıştır..*
294
281
 
295
282
  ---
296
283
 
@@ -14,8 +14,8 @@
14
14
 
15
15
  [![PyPI Yükle](https://github.com/keyiflerolsun/KekikStream/actions/workflows/pypiYukle.yml/badge.svg)](https://github.com/keyiflerolsun/KekikStream/actions/workflows/pypiYukle.yml)
16
16
 
17
- **Modüler ve Genişletilebilir Medya Streaming Kütüphanesi**
18
- Terminal üzerinden medya içeriği arayın, VLC/MPV ile doğrudan izleyin! 🚀
17
+ **Modüler ve genişletilebilir medya streaming kütüphanesi**
18
+ Terminal üzerinden içerik arayın, VLC/MPV ile doğrudan izleyin veya kendi API’nizi kurun. 🚀
19
19
 
20
20
  [![Video](https://github.com/user-attachments/assets/63d31bb0-0b69-40b4-84aa-66623f2a253f)](https://github.com/user-attachments/assets/63d31bb0-0b69-40b4-84aa-66623f2a253f)
21
21
 
@@ -24,41 +24,96 @@ Terminal üzerinden medya içeriği arayın, VLC/MPV ile doğrudan izleyin! 🚀
24
24
 
25
25
  ---
26
26
 
27
- ## 🌟 Genel Bakış
27
+ ## 🚦 Ne Sunar?
28
28
 
29
- **KekikStream**, Türkçe medya kaynaklarından içerik aramanızı ve popüler medya oynatıcılar ile izlemenizi sağlayan Python kütüphanesidir.
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
- ### Temel Özellikler
32
-
33
- - 🎥 **Çoklu Kaynak Desteği** - Onlarca Türkçe medya sitesi desteği
34
- - 🔌 **Plugin Mimarisi** - Kolayca yeni kaynaklar ekleyin
35
- - 🎬 **Çoklu Oynatıcı** - VLC, MPV, MX Player desteği
36
- - 🖥️ **CLI & Kütüphane** - Terminal veya kod içinde kullanın
37
- - 🌐 **API ve Web UI Desteği** - [KekikStreamAPI](https://github.com/keyiflerolsun/KekikStreamAPI) ile ağ üzerinden erişim
31
+ - 🎥 Çoklu kaynak desteği: Onlarca Türkçe medya sitesi
32
+ - 🔌 Plugin mimarisi: Yeni kaynak eklemek dakikalar sürer
33
+ - 🎬 Çoklu oynatıcı: VLC, MPV, MX Player
34
+ - 🖥️ CLI & kütüphane: Terminalde veya kod içinde kullanın
35
+ - 🌐 API/Web UI: KekikStreamAPI üzerinden uzak erişim
38
36
 
39
37
  ---
40
38
 
41
39
  ## 🚀 Hızlı Başlangıç
42
40
 
43
- ### Kurulum
41
+ > Gereksinimler: Python 3.11+, sistemde VLC veya MPV kurulu olmalı (Android için MX Player + ADB).
44
42
 
45
43
  ```bash
46
- # Yüklemek
44
+ # Kurulum
47
45
  pip install KekikStream
48
46
 
49
- # Güncellemek
47
+ # Güncelleme
50
48
  pip install -U KekikStream
51
49
  ```
52
50
 
53
- > **Gereksinimler:** Sisteminizde VLC veya MPV yüklü olmalıdır.
54
-
55
51
  ### Temel Kullanım
56
52
 
57
- **Terminal:**
53
+ **CLI:**
58
54
  ```bash
59
55
  KekikStream
60
56
  ```
61
57
 
58
+ **Kütüphane (örnek arama):**
59
+ ```python
60
+ from KekikStream import Manager
61
+ results = Manager().search("vikings")
62
+ print(results[0].title)
63
+ ```
64
+
65
+ ---
66
+
67
+ ## ✨ Özellikler
68
+
69
+ ### 🔌 Plugin Sistemi
70
+
71
+ KekikStream modüler bir plugin mimarisi kullanır; her medya kaynağı bağımsız bir plugin'dir.
72
+
73
+ **Mevcut Pluginler (örnek):** Dizilla, HDFilmCehennemi, Dizipal, Dizifon, RoketDizi, Sinefy, Moviesseed, FullHDFilmizlesene, HDBestMovies, SuperFilmGeldi, Sinezy ve daha fazlası.
74
+
75
+ **Plugin Geliştirme:**
76
+ ```python
77
+ from KekikStream.Core import PluginBase, MainPageResult, SearchResult, MovieInfo, SeriesInfo
78
+
79
+ class MyPlugin(PluginBase):
80
+ name = "MyPlugin"
81
+ language = "en"
82
+ main_url = "https://example.com"
83
+ favicon = f"https://www.google.com/s2/favicons?domain={main_url}&sz=64"
84
+ description = "MyPlugin description"
85
+
86
+ main_page = {
87
+ f"{main_url}/category/" : "Category Name"
88
+ }
89
+
90
+ async def get_main_page(self, page: int, url: str, category: str) -> list[MainPageResult]:
91
+ return results
92
+
93
+ async def search(self, query: str) -> list[SearchResult]:
94
+ return results
95
+
96
+ async def load_item(self, url: str) -> MovieInfo | SeriesInfo:
97
+ return details
98
+
99
+ async def load_links(self, url: str) -> list[dict]:
100
+ return links
101
+ ```
102
+
103
+ ### 🎬 Oynatıcı Desteği
104
+
105
+ | Oynatıcı | Platform | Özellikler |
106
+ |----------|----------|------------|
107
+ | **VLC** | Desktop | Custom headers, subtitles, varsayılan |
108
+ | **MPV** | Desktop | Custom headers, subtitles |
109
+ | **MX Player** | Android | ADB üzerinden |
110
+
111
+ > Özel durumlar için (Google Drive vb.) arka planda otomatik olarak yt-dlp devreye girer.
112
+
113
+ ### 🔗 Extractor Sistemi
114
+
115
+ Vidmoly, Filemoon, Sibnet, Sendvid, Voe, Doodstream, Streamtape, Upstream, Dailymotion, JWPlayer ve birçok kaynaktan direkt streaming linki çıkarır.
116
+
62
117
  ---
63
118
 
64
119
  ## 🏗️ Mimari
@@ -127,69 +182,6 @@ graph TB
127
182
 
128
183
  ---
129
184
 
130
- ## ✨ Özellikler
131
-
132
- ### 🔌 Plugin Sistemi
133
-
134
- KekikStream modüler bir plugin mimarisi kullanır. Her medya kaynağı bağımsız bir plugin'dir.
135
-
136
- **Mevcut Pluginler:**
137
- - Dizilla, HDFilmCehennemi, Dizipal, Dizifon
138
- - RoketDizi, Sinefy, Moviesseed, FullHDFilmizlesene
139
- - HDBestMovies, SuperFilmGeldi, Sinezy ve daha fazlası...
140
-
141
- **Plugin Geliştirme:**
142
- ```python
143
- from KekikStream.Core import PluginBase, MainPageResult, SearchResult, MovieInfo, SeriesInfo
144
-
145
- class MyPlugin(PluginBase):
146
- name = "MyPlugin"
147
- language = "en"
148
- main_url = "https://example.com"
149
- favicon = f"https://www.google.com/s2/favicons?domain={main_url}&sz=64"
150
- description = "MyPlugin description"
151
-
152
- main_page = {
153
- f"{main_url}/category/" : "Category Name"
154
- }
155
-
156
- async def get_main_page(self, page: int, url: str, category: str) -> list[MainPageResult]:
157
- # Ana sayfa implementasyonu
158
- return results
159
-
160
- async def search(self, query: str) -> list[SearchResult]:
161
- # Arama implementasyonu
162
- return results
163
-
164
- async def load_item(self, url: str) -> MovieInfo | SeriesInfo:
165
- # İçerik detayları
166
- return details
167
-
168
- async def load_links(self, url: str) -> list[dict]:
169
- # Video bağlantıları
170
- return links
171
- ```
172
-
173
- ### 🎬 Oynatıcı Desteği
174
-
175
- | Oynatıcı | Platform | Özellikler |
176
- |----------|----------|------------|
177
- | **VLC** | Desktop | Custom headers, subtitles, varsayılan |
178
- | **MPV** | Desktop | Custom headers, subtitles |
179
- | **MX Player** | Android | ADB üzerinden |
180
-
181
- > **Not:** Özel durumlar için (Google Drive, vb.) arka planda otomatik olarak yt-dlp kullanılabilir.
182
-
183
- ### 🔗 Extractor Sistemi
184
-
185
- Video barındırma sitelerinden direkt streaming linkleri çıkarır:
186
-
187
- - Vidmoly, Filemoon, Sibnet, Sendvid
188
- - Voe, Doodstream, Streamtape, Upstream
189
- - Dailymotion, JWPlayer ve daha fazlası...
190
-
191
- ---
192
-
193
185
  ## 🛠️ Geliştirme
194
186
 
195
187
  ### Proje Yapısı
@@ -208,12 +200,10 @@ KekikStream/
208
200
 
209
201
  ### Yeni Plugin Ekleme
210
202
 
211
- 1. `KekikStream/Plugins/` altına yeni dosya oluşturun
212
- 2. `PluginBase` sınıfından türetin
213
- 3. Gerekli metodları implemente edin (`get_main_page`, `search`, `load_item`, `load_links`)
214
- 4. Plugin'i test edin
215
-
216
- **Örnek:** [Tests/Single.py](https://github.com/keyiflerolsun/KekikStream/blob/master/Tests/Single.py)
203
+ 1. `KekikStream/Plugins/` altına yeni dosya oluşturun.
204
+ 2. `PluginBase` sınıfından türetin.
205
+ 3. `get_main_page`, `search`, `load_item`, `load_links` metodlarını implemente edin.
206
+ 4. Plugin'i test edin (örnek: `Tests/Single.py`).
217
207
 
218
208
  ---
219
209
 
@@ -233,12 +223,10 @@ KekikStream/
233
223
 
234
224
  Projeyi geliştirmek için katkılarınızı bekliyoruz!
235
225
 
236
- ### Nasıl Katkıda Bulunulur?
237
-
238
- 1. **Yeni Plugin Ekleyin:** Türkçe medya sitesi desteği ekleyin
239
- 2. **Bug Raporu:** GitHub Issues kullanın
240
- 3. **Feature Request:** Yeni özellik önerileri
241
- 4. **Dokümantasyon:** README ve kod dokümantasyonu iyileştirmeleri
226
+ 1. Yeni plugin ekleyin
227
+ 2. Bug raporu açın
228
+ 3. Feature request gönderin
229
+ 4. Dokümantasyon iyileştirin
242
230
 
243
231
  ### 🎁 Teşekkürler
244
232
 
@@ -246,14 +234,13 @@ Projeyi geliştirmek için katkılarınızı bekliyoruz!
246
234
 
247
235
  ### 💻 Genişletme Referansları
248
236
 
249
- - [keyiflerolsun/Kekik-cloudstream](https://github.com/keyiflerolsun/Kekik-cloudstream)
237
+ - [keyiflerolsun/Kekik-cloudstream](https://github.com/keyiflerolsun/Kekik-cloudstream)
250
238
  - [keyiflerolsun/seyirTurk-Parser](https://github.com/keyiflerolsun/seyirTurk-Parser)
251
239
 
252
240
  ## 🌐 Telif Hakkı ve Lisans
253
241
 
254
- * *Copyright (C) 2024 by* [keyiflerolsun](https://github.com/keyiflerolsun) ❤️️
255
- * [GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007](https://github.com/keyiflerolsun/KekikStream/blob/master/LICENSE) *Koşullarına göre lisanslanmıştır..*
256
-
242
+ *Copyright (C) 2024 by* [keyiflerolsun](https://github.com/keyiflerolsun) ❤️️
243
+ [GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007](https://github.com/keyiflerolsun/KekikStream/blob/master/LICENSE) *Koşullarına göre lisanslanmıştır..*
257
244
 
258
245
  ---
259
246
 
@@ -6,7 +6,7 @@ from io import open
6
6
  setup(
7
7
  # ? Genel Bilgiler
8
8
  name = "KekikStream",
9
- version = "1.8.7",
9
+ version = "1.8.8",
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