KekikStream 0.6.7__tar.gz → 0.7.0__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Core/MediaHandler.py +34 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Plugins/DiziYou.py +4 -2
- kekikstream-0.6.7/KekikStream/Plugins/__RecTV.py → kekikstream-0.7.0/KekikStream/Plugins/RecTV.py +4 -2
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Plugins/SineWix.py +1 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/__init__.py +1 -1
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream.egg-info/PKG-INFO +13 -2
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream.egg-info/SOURCES.txt +2 -2
- {kekikstream-0.6.7 → kekikstream-0.7.0}/PKG-INFO +13 -2
- {kekikstream-0.6.7 → kekikstream-0.7.0}/setup.py +1 -1
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/CLI/__init__.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/CLI/pypi_kontrol.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Core/ExtractorBase.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Core/ExtractorLoader.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Core/ExtractorModels.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Core/PluginBase.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Core/PluginLoader.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Core/PluginModels.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Core/__init__.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Extractors/CloseLoad.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Extractors/ContentX.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Extractors/FourCX.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Extractors/FourPichive.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Extractors/FourPlayRu.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Extractors/HDStreamAble.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Extractors/Hotlinger.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Extractors/MailRu.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Extractors/MixPlayHD.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Extractors/Odnoklassniki.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Extractors/OkRuHTTP.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Extractors/OkRuSSL.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Extractors/PeaceMakerst.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Extractors/Pichive.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Extractors/PixelDrain.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Extractors/PlayRu.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Extractors/RapidVid.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Extractors/SibNet.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Extractors/Sobreatsesuyp.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Extractors/TRsTX.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Extractors/TauVideo.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Extractors/TurboImgz.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Extractors/VidMoly.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Extractors/VidMoxy.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Extractors/VideoSeyred.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Managers/ExtractorManager.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Managers/MediaManager.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Managers/PluginManager.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Managers/UIManager.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Managers/__init__.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Plugins/DiziBox.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Plugins/Dizilla.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Plugins/FilmMakinesi.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Plugins/FullHDFilmizlesene.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Plugins/JetFilmizle.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Plugins/SezonlukDizi.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/Plugins/UgurFilm.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/__main__.py +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream/requirements.txt +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream.egg-info/dependency_links.txt +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream.egg-info/entry_points.txt +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream.egg-info/requires.txt +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/KekikStream.egg-info/top_level.txt +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/LICENSE +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/MANIFEST.in +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/README.md +0 -0
- {kekikstream-0.6.7 → kekikstream-0.7.0}/setup.cfg +0 -0
@@ -13,6 +13,9 @@ class MediaHandler:
|
|
13
13
|
self.title = title
|
14
14
|
|
15
15
|
def play_media(self, extract_data: ExtractResult):
|
16
|
+
if self.headers.get("User-Agent") == "googleusercontent":
|
17
|
+
return self.play_with_ytdlp(extract_data)
|
18
|
+
|
16
19
|
if subprocess.check_output(['uname', '-o']).strip() == b'Android':
|
17
20
|
return self.play_with_android_mxplayer(extract_data)
|
18
21
|
|
@@ -77,6 +80,37 @@ class MediaHandler:
|
|
77
80
|
konsol.print("[red]mpv bulunamadı! mpv kurulu olduğundan emin olun.[/red]")
|
78
81
|
konsol.print({"title": self.title, "url": extract_data.url, "headers": self.headers})
|
79
82
|
|
83
|
+
def play_with_ytdlp(self, extract_data: ExtractResult):
|
84
|
+
try:
|
85
|
+
ytdlp_command = ["yt-dlp", "--quiet", "--no-warnings", "--downloader", "ffmpeg", "--hls-use-mpegts"]
|
86
|
+
|
87
|
+
for key, value in self.headers.items():
|
88
|
+
ytdlp_command.extend(["--add-header", f"{key}: {value}"])
|
89
|
+
|
90
|
+
ytdlp_command.extend([
|
91
|
+
"-o", "-",
|
92
|
+
extract_data.url
|
93
|
+
])
|
94
|
+
|
95
|
+
mpv_command = ["mpv", "--really-quiet", "-"]
|
96
|
+
|
97
|
+
if self.title:
|
98
|
+
mpv_command.append(f"--force-media-title={self.title}")
|
99
|
+
|
100
|
+
mpv_command.extend(
|
101
|
+
f"--sub-file={subtitle.url}" for subtitle in extract_data.subtitles
|
102
|
+
)
|
103
|
+
|
104
|
+
with subprocess.Popen(ytdlp_command, stdout=subprocess.PIPE) as ytdlp_proc:
|
105
|
+
subprocess.run(mpv_command, stdin=ytdlp_proc.stdout, check=True)
|
106
|
+
|
107
|
+
except subprocess.CalledProcessError as hata:
|
108
|
+
print(f"[red]Oynatma hatası: {hata}[/red]")
|
109
|
+
print({"title": self.title, "url": extract_data.url, "headers": self.headers})
|
110
|
+
except FileNotFoundError:
|
111
|
+
print("[red]yt-dlp veya mpv bulunamadı! Kurulumlarından emin olun.[/red]")
|
112
|
+
print({"title": self.title, "url": extract_data.url, "headers": self.headers})
|
113
|
+
|
80
114
|
def play_with_android_mxplayer(self, extract_data: ExtractResult):
|
81
115
|
paketler = [
|
82
116
|
"com.mxtech.videoplayer.ad/.ActivityScreen", # Free sürüm
|
@@ -71,7 +71,8 @@ class DiziYou(PluginBase):
|
|
71
71
|
istek = await self.oturum.get(url)
|
72
72
|
secici = Selector(istek.text)
|
73
73
|
|
74
|
-
|
74
|
+
item_title = secici.css("div.title h1::text").get().strip()
|
75
|
+
item_id = secici.css("iframe#diziyouPlayer::attr(src)").get().split("/")[-1].replace(".html", "")
|
75
76
|
|
76
77
|
subtitles = []
|
77
78
|
stream_urls = []
|
@@ -112,7 +113,8 @@ class DiziYou(PluginBase):
|
|
112
113
|
|
113
114
|
for stream in stream_urls:
|
114
115
|
self._data[stream.get("url")] = {
|
115
|
-
"name" : f"{self.name} | {stream.get('dil')}",
|
116
|
+
"name" : f"{self.name} | {stream.get('dil')} | {item_title}",
|
117
|
+
"ext_name" : f"{self.name} | {stream.get('dil')}",
|
116
118
|
"referer" : url,
|
117
119
|
"subtitles" : subtitles
|
118
120
|
}
|
kekikstream-0.6.7/KekikStream/Plugins/__RecTV.py → kekikstream-0.7.0/KekikStream/Plugins/RecTV.py
RENAMED
@@ -10,7 +10,7 @@ import re
|
|
10
10
|
|
11
11
|
class RecTV(PluginBase):
|
12
12
|
name = "RecTV"
|
13
|
-
main_url = "https://
|
13
|
+
main_url = "https://b.prectv14.sbs"
|
14
14
|
|
15
15
|
sw_key = "4F5A9C3D9A86FA54EACEDDD635185/c3c5bd17-e37b-4b94-a944-8a3688a30452"
|
16
16
|
http2 = AsyncClient(http2=True)
|
@@ -97,13 +97,15 @@ class RecTV(PluginBase):
|
|
97
97
|
continue
|
98
98
|
|
99
99
|
self._data[video_link] = {
|
100
|
+
"ext_name" : self.name,
|
100
101
|
"name" : veri.get("title"),
|
101
102
|
"referer" : "https://twitter.com/",
|
102
103
|
"subtitles" : []
|
103
104
|
}
|
104
105
|
videolar.append(video_link)
|
105
106
|
|
106
|
-
|
107
|
+
self.media_handler.headers.update({"User-Agent": "googleusercontent"})
|
108
|
+
return videolar
|
107
109
|
|
108
110
|
async def play(self, name: str, url: str, referer: str, subtitles: list[Subtitle]):
|
109
111
|
extract_result = ExtractResult(name=name, url=url, referer=referer, subtitles=subtitles)
|
@@ -180,7 +180,7 @@ class KekikStream:
|
|
180
180
|
if not haritalama:
|
181
181
|
secilen_link = await self.arayuz_yonetici.select_from_list(
|
182
182
|
message = "Doğrudan oynatmak için bir bağlantı seçin:",
|
183
|
-
choices = [{"name": value["
|
183
|
+
choices = [{"name": value["ext_name"], "value": key} for key, value in self.suanki_eklenti._data.items()]
|
184
184
|
)
|
185
185
|
if secilen_link:
|
186
186
|
await self.medya_oynat(secilen_link)
|
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.2
|
2
2
|
Name: KekikStream
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.7.0
|
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,17 @@ Requires-Dist: cloudscraper
|
|
21
21
|
Requires-Dist: parsel
|
22
22
|
Requires-Dist: pydantic
|
23
23
|
Requires-Dist: InquirerPy
|
24
|
+
Dynamic: author
|
25
|
+
Dynamic: author-email
|
26
|
+
Dynamic: classifier
|
27
|
+
Dynamic: description
|
28
|
+
Dynamic: description-content-type
|
29
|
+
Dynamic: home-page
|
30
|
+
Dynamic: keywords
|
31
|
+
Dynamic: license
|
32
|
+
Dynamic: requires-dist
|
33
|
+
Dynamic: requires-python
|
34
|
+
Dynamic: summary
|
24
35
|
|
25
36
|
# <img src="https://github.com/keyiflerolsun/KekikStream/raw/master/.github/icons/KekikStream.png?raw=True" height="32" align="center"> KekikStream
|
26
37
|
|
@@ -57,7 +57,7 @@ KekikStream/Plugins/Dizilla.py
|
|
57
57
|
KekikStream/Plugins/FilmMakinesi.py
|
58
58
|
KekikStream/Plugins/FullHDFilmizlesene.py
|
59
59
|
KekikStream/Plugins/JetFilmizle.py
|
60
|
+
KekikStream/Plugins/RecTV.py
|
60
61
|
KekikStream/Plugins/SezonlukDizi.py
|
61
62
|
KekikStream/Plugins/SineWix.py
|
62
|
-
KekikStream/Plugins/UgurFilm.py
|
63
|
-
KekikStream/Plugins/__RecTV.py
|
63
|
+
KekikStream/Plugins/UgurFilm.py
|
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.2
|
2
2
|
Name: KekikStream
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.7.0
|
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,17 @@ Requires-Dist: cloudscraper
|
|
21
21
|
Requires-Dist: parsel
|
22
22
|
Requires-Dist: pydantic
|
23
23
|
Requires-Dist: InquirerPy
|
24
|
+
Dynamic: author
|
25
|
+
Dynamic: author-email
|
26
|
+
Dynamic: classifier
|
27
|
+
Dynamic: description
|
28
|
+
Dynamic: description-content-type
|
29
|
+
Dynamic: home-page
|
30
|
+
Dynamic: keywords
|
31
|
+
Dynamic: license
|
32
|
+
Dynamic: requires-dist
|
33
|
+
Dynamic: requires-python
|
34
|
+
Dynamic: summary
|
24
35
|
|
25
36
|
# <img src="https://github.com/keyiflerolsun/KekikStream/raw/master/.github/icons/KekikStream.png?raw=True" height="32" align="center"> KekikStream
|
26
37
|
|
@@ -6,7 +6,7 @@ from io import open
|
|
6
6
|
setup(
|
7
7
|
# ? Genel Bilgiler
|
8
8
|
name = "KekikStream",
|
9
|
-
version = "0.
|
9
|
+
version = "0.7.0",
|
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
|
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
|
File without changes
|