KekikStream 0.6.8__py3-none-any.whl → 0.7.0__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

@@ -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
@@ -10,7 +10,7 @@ import re
10
10
 
11
11
  class RecTV(PluginBase):
12
12
  name = "RecTV"
13
- main_url = "https://m.prectv8.sbs"
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
- return videolar
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)
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: KekikStream
3
- Version: 0.6.8
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 @@ KekikStream/CLI/pypi_kontrol.py,sha256=MchatOwCWCpFBtgt09yag9Rjal9XFyh2W_oVs2p7S
6
6
  KekikStream/Core/ExtractorBase.py,sha256=wmGl-Xiem4s5M7baVOxYLba7UdygCDAXggo6Up8pFJE,1409
7
7
  KekikStream/Core/ExtractorLoader.py,sha256=rrll3F2CyVmx3foa57PG0FocQMrFuMpdlG0Uf0-2Fz4,3915
8
8
  KekikStream/Core/ExtractorModels.py,sha256=huIcPQ5VIRfMx0LcL5SS1u4dldZbHjzHKEdSEtOPlc0,456
9
- KekikStream/Core/MediaHandler.py,sha256=eV0ugdIwxRlWQtgYt--XmfPJP8K9FL1Q0T1d04YUls0,4517
9
+ KekikStream/Core/MediaHandler.py,sha256=DFw2Npd9fantyERjnUzr3jU7F283tVC7qA3j-zznzAA,5939
10
10
  KekikStream/Core/PluginBase.py,sha256=ZQx6adxOKuX50TPN5pxE8oG9FD-ZjPXSHpSiW086QPQ,2479
11
11
  KekikStream/Core/PluginLoader.py,sha256=5HQF8Em1TjvqMBPLKB7M_i2y6zPH6JZao-uekeacoSs,2574
12
12
  KekikStream/Core/PluginModels.py,sha256=q8tjkt_-uiJ7uNxOThYR0FgTQLZglVAOAaM0Kske-28,2063
@@ -47,13 +47,13 @@ KekikStream/Plugins/Dizilla.py,sha256=zJni028hCJlz2Xh8BXVrxHsZGJJ-oN88_yz4Fs9MaL
47
47
  KekikStream/Plugins/FilmMakinesi.py,sha256=rz8TQeL41PJbeEmksgPHIhp6J-4vbSCBTeEH0ukExz4,2822
48
48
  KekikStream/Plugins/FullHDFilmizlesene.py,sha256=Fa0gRP_NoMfPC8HIKRxERjQVOv8Fyb-ayMJ2EooZ7BE,3080
49
49
  KekikStream/Plugins/JetFilmizle.py,sha256=FXkMSQtjYoxwIonjRENFa91rC42L_8SYRhjhuSgsu60,3919
50
+ KekikStream/Plugins/RecTV.py,sha256=oLjchx6-a6Xhd3dqrTcCwETsJTrfh5UI3yF1CgQQv94,4941
50
51
  KekikStream/Plugins/SezonlukDizi.py,sha256=5BZVzQ2eQtymHxO0bzjA2ho4FFNahPFQly4hoHuH8lo,4441
51
52
  KekikStream/Plugins/SineWix.py,sha256=P_ujixGubpsJzAdbRUzVy5ziRGYfSEDc90RMXie6VyE,4866
52
53
  KekikStream/Plugins/UgurFilm.py,sha256=yYXee5uxwNnPqFJZ6s6cRkmUyqS3Vv8x-iesPalc4j4,2930
53
- KekikStream/Plugins/__RecTV.py,sha256=TYPuab97yD7mwsu37cZ9_eG3mZSkmImBqlC9VgtetSk,4820
54
- KekikStream-0.6.8.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
55
- KekikStream-0.6.8.dist-info/METADATA,sha256=1a_98RUX35PSShP2zQ_VOdZMobG9ny5JeKh147YZAK0,3994
56
- KekikStream-0.6.8.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
57
- KekikStream-0.6.8.dist-info/entry_points.txt,sha256=dFwdiTx8djyehI0Gsz-rZwjAfZzUzoBSrmzRu9ubjJc,50
58
- KekikStream-0.6.8.dist-info/top_level.txt,sha256=DNmGJDXl27Drdfobrak8KYLmocW_uznVYFJOzcjUgmY,12
59
- KekikStream-0.6.8.dist-info/RECORD,,
54
+ KekikStream-0.7.0.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
55
+ KekikStream-0.7.0.dist-info/METADATA,sha256=tZNKqe94-7btL5NIYU-D5xWT1LeUAWbIT3YXIgOo6sA,4226
56
+ KekikStream-0.7.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
57
+ KekikStream-0.7.0.dist-info/entry_points.txt,sha256=dFwdiTx8djyehI0Gsz-rZwjAfZzUzoBSrmzRu9ubjJc,50
58
+ KekikStream-0.7.0.dist-info/top_level.txt,sha256=DNmGJDXl27Drdfobrak8KYLmocW_uznVYFJOzcjUgmY,12
59
+ KekikStream-0.7.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.6.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5