Pyckplayer 1.0.5__tar.gz → 1.0.6__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 (60) hide show
  1. {pyckplayer-1.0.5/src/Pyckplayer.egg-info → pyckplayer-1.0.6}/PKG-INFO +1 -1
  2. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/setup.py +1 -1
  3. {pyckplayer-1.0.5 → pyckplayer-1.0.6/src/Pyckplayer.egg-info}/PKG-INFO +1 -1
  4. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/core.py +20 -2
  5. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/LICENSE +0 -0
  6. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/MANIFEST.in +0 -0
  7. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/README.md +0 -0
  8. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/pyproject.toml +0 -0
  9. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/setup.cfg +0 -0
  10. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/Pyckplayer.egg-info/SOURCES.txt +0 -0
  11. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/Pyckplayer.egg-info/dependency_links.txt +0 -0
  12. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/Pyckplayer.egg-info/entry_points.txt +0 -0
  13. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/Pyckplayer.egg-info/requires.txt +0 -0
  14. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/Pyckplayer.egg-info/top_level.txt +0 -0
  15. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/__init__.py +0 -0
  16. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/LICENSE +0 -0
  17. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/css/ckplayer.css +0 -0
  18. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/css/ckplayer.ixigua.css +0 -0
  19. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/css/ckplayer.red.css +0 -0
  20. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/css/images/adclose.png +0 -0
  21. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/css/images/buffer.png +0 -0
  22. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/css/images/ckplayer.48.png +0 -0
  23. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/css/images/ckplayer.png +0 -0
  24. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/css/images/ckplayer_ixigua.48.png +0 -0
  25. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/css/images/ckplayer_ixigua.png +0 -0
  26. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/css/images/ckplayer_red.48.png +0 -0
  27. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/css/images/ckplayer_red.png +0 -0
  28. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/css/images/favicon.ico +0 -0
  29. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/css/images/loading.png +0 -0
  30. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/css/images/logo.png +0 -0
  31. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/css/images/play.png +0 -0
  32. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/flv.js/LICENSE +0 -0
  33. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/flv.js/README.md +0 -0
  34. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/flv.js/flv.js +0 -0
  35. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/flv.js/flv.js.map +0 -0
  36. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/flv.js/flv.min.js +0 -0
  37. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/flv.js/flv.min.js.map +0 -0
  38. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/hls.js/LICENSE +0 -0
  39. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/hls.js/README.md +0 -0
  40. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/hls.js/hls-demo.js +0 -0
  41. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/hls.js/hls-demo.js.map +0 -0
  42. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/hls.js/hls.js +0 -0
  43. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/hls.js/hls.js.d.ts +0 -0
  44. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/hls.js/hls.js.map +0 -0
  45. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/hls.js/hls.light.js +0 -0
  46. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/hls.js/hls.light.js.map +0 -0
  47. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/hls.js/hls.light.min.js +0 -0
  48. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/hls.js/hls.light.min.js.map +0 -0
  49. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/hls.js/hls.min.js +0 -0
  50. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/hls.js/hls.min.js.map +0 -0
  51. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/js/ckplayer.js +0 -0
  52. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/js/ckplayer.min.js +0 -0
  53. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/language/en.js +0 -0
  54. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/language/zh.cn.js +0 -0
  55. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/language/zh.hk.js +0 -0
  56. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/mpegts.js/LICENSE +0 -0
  57. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/mpegts.js/mpegts.js +0 -0
  58. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/mpegts.js/mpegts.js.map +0 -0
  59. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/ckplayer/mpegts.js/mpegts.min.js +0 -0
  60. {pyckplayer-1.0.5 → pyckplayer-1.0.6}/src/pyckplayer/cli.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Pyckplayer
3
- Version: 1.0.5
3
+ Version: 1.0.6
4
4
  Summary: 一个基于CKPlayer的Python视频播放器包装器
5
5
  Home-page: https://github.com/yourusername/pyckplayer
6
6
  Author: lenvy1
@@ -5,7 +5,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
5
5
 
6
6
  setuptools.setup(
7
7
  name="Pyckplayer",
8
- version="1.0.5",
8
+ version="1.0.6",
9
9
  author="lenvy1",
10
10
  author_email="lenvy1@163.com",
11
11
  description="一个基于CKPlayer的Python视频播放器包装器",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Pyckplayer
3
- Version: 1.0.5
3
+ Version: 1.0.6
4
4
  Summary: 一个基于CKPlayer的Python视频播放器包装器
5
5
  Home-page: https://github.com/yourusername/pyckplayer
6
6
  Author: lenvy1
@@ -91,6 +91,18 @@ def download_cover(poster_url: Optional[str], silent: bool = True) -> Optional[s
91
91
  return None
92
92
 
93
93
 
94
+ def is_live_url(url: str) -> bool:
95
+ url_lower = url.lower()
96
+ live_keywords = [
97
+ '/live/', '/stream/', '/broadcast/', '/live-stream/',
98
+ 'live.', 'stream.', 'live_', 'stream_',
99
+ '?live', '&live', '=live',
100
+ 'douyincdn.com', 'live.kuaishou.com', 'live.bilibili.com',
101
+ 'live.douyin.com', 'live.qq.com', 'live.weibo.com'
102
+ ]
103
+ return any(keyword in url_lower for keyword in live_keywords)
104
+
105
+
94
106
  def detect_stream_type(url: str) -> str:
95
107
  url_lower = url.lower()
96
108
  if '.m3u8' in url_lower or '/hls/' in url_lower:
@@ -114,6 +126,7 @@ def generate_html(video_url: str,
114
126
  favicon_path = quote((script_dir / "ckplayer" / "css" / "images" / "logo.png").as_posix())
115
127
 
116
128
  stream_type = detect_stream_type(video_url)
129
+ is_live = is_live_url(video_url)
117
130
 
118
131
  video_object = {
119
132
  "container": "#player",
@@ -126,12 +139,17 @@ def generate_html(video_url: str,
126
139
 
127
140
  if stream_type == 'hls':
128
141
  video_object["plug"] = "hls.js"
129
- video_object["live"] = True
142
+ if is_live:
143
+ video_object["live"] = True
130
144
  elif stream_type == 'flv':
131
145
  video_object["plug"] = "flv.js"
132
- video_object["live"] = True
146
+ if is_live:
147
+ video_object["live"] = True
133
148
  elif stream_type == 'ts':
134
149
  video_object["plug"] = "mpegts.js"
150
+ if is_live:
151
+ video_object["live"] = True
152
+ elif stream_type == 'mp4' and is_live:
135
153
  video_object["live"] = True
136
154
 
137
155
  if poster_url:
File without changes
File without changes
File without changes
File without changes
File without changes