StreamingCommunity 2.8.0__py3-none-any.whl → 2.9.0__py3-none-any.whl

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 StreamingCommunity might be problematic. Click here for more details.

@@ -55,10 +55,8 @@ def download_film(select_title: MediaItem) -> str:
55
55
  output_path=os.path.join(mp4_path, title_name)
56
56
  ).start()
57
57
 
58
- if "error" in r_proc.keys():
59
- try:
60
- os.remove(r_proc['path'])
61
- except:
62
- pass
58
+ if r_proc['error'] is not None:
59
+ try: os.remove(r_proc['path'])
60
+ except: pass
63
61
 
64
62
  return r_proc['path']
@@ -72,13 +72,10 @@ def download_video(index_season_selected: int, index_episode_selected: int, scap
72
72
  m3u8_url=master_playlist,
73
73
  output_path=os.path.join(mp4_path, mp4_name)
74
74
  ).start()
75
-
76
-
77
- if "error" in r_proc.keys():
78
- try:
79
- os.remove(r_proc['path'])
80
- except:
81
- pass
75
+
76
+ if r_proc['error'] is not None:
77
+ try: os.remove(r_proc['path'])
78
+ except: pass
82
79
 
83
80
  return r_proc['path'], r_proc['stopped']
84
81
 
@@ -86,10 +86,8 @@ def download_film(movie_details: Json_film) -> str:
86
86
  output_path=os.path.join(mp4_path, title_name)
87
87
  ).start()
88
88
 
89
- if "error" in r_proc.keys():
90
- try:
91
- os.remove(r_proc['path'])
92
- except:
93
- pass
89
+ if r_proc['error'] is not None:
90
+ try: os.remove(r_proc['path'])
91
+ except: pass
94
92
 
95
93
  return r_proc['path']
@@ -80,10 +80,8 @@ def download_film(select_title: MediaItem) -> str:
80
80
  if script_id != "unknown":
81
81
  TelegramSession.deleteScriptId(script_id)
82
82
 
83
- if "error" in r_proc.keys():
84
- try:
85
- os.remove(r_proc['path'])
86
- except:
87
- pass
83
+ if r_proc['error'] is not None:
84
+ try: os.remove(r_proc['path'])
85
+ except: pass
88
86
 
89
87
  return r_proc['path']
@@ -86,11 +86,9 @@ def download_video(index_season_selected: int, index_episode_selected: int, scra
86
86
  output_path=os.path.join(mp4_path, mp4_name)
87
87
  ).start()
88
88
 
89
- if "error" in r_proc.keys():
90
- try:
91
- os.remove(r_proc['path'])
92
- except:
93
- pass
89
+ if r_proc['error'] is not None:
90
+ try: os.remove(r_proc['path'])
91
+ except: pass
94
92
 
95
93
  return r_proc['path'], r_proc['stopped']
96
94
 
@@ -429,7 +429,8 @@ class HLS_Downloader:
429
429
  'path': self.path_manager.output_path,
430
430
  'url': self.m3u8_url,
431
431
  'is_master': False,
432
- 'error': 'File already exists',
432
+ 'msg': 'File already exists',
433
+ 'error': None,
433
434
  'stopped': False
434
435
  }
435
436
  if TELEGRAM_BOT:
@@ -473,6 +474,8 @@ class HLS_Downloader:
473
474
  'path': self.path_manager.output_path,
474
475
  'url': self.m3u8_url,
475
476
  'is_master': self.m3u8_manager.is_master,
477
+ 'msg': None,
478
+ 'error': None,
476
479
  'stopped': download_stopped
477
480
  }
478
481
 
@@ -485,6 +488,7 @@ class HLS_Downloader:
485
488
  'path': None,
486
489
  'url': self.m3u8_url,
487
490
  'is_master': getattr(self.m3u8_manager, 'is_master', None),
491
+ 'msg': None,
488
492
  'error': error_msg,
489
493
  'stopped': False
490
494
  }
@@ -503,25 +503,35 @@ class M3U8_Parser:
503
503
  except Exception as e:
504
504
  logging.error(f"Error parsing video info: {e}")
505
505
 
506
- def __parse_encryption_keys__(self, m3u8_obj) -> None:
506
+ def __parse_encryption_keys__(self, obj) -> None:
507
507
  """
508
- Extracts encryption keys from the M3U8 object.
508
+ Extracts encryption keys either from the M3U8 object or from individual segments.
509
509
 
510
510
  Parameters:
511
- - m3u8_obj: The M3U8 object containing encryption keys.
511
+ - obj: Either the main M3U8 object or an individual segment.
512
512
  """
513
513
  try:
514
- if m3u8_obj.key is not None:
514
+ if hasattr(obj, 'key') and obj.key is not None:
515
+ key_info = {
516
+ 'method': obj.key.method,
517
+ 'iv': obj.key.iv,
518
+ 'uri': obj.key.uri
519
+ }
520
+
515
521
  if self.keys is None:
516
- self.keys = {
517
- 'method': m3u8_obj.key.method,
518
- 'iv': m3u8_obj.key.iv,
519
- 'uri': m3u8_obj.key.uri
520
- }
522
+ self.keys = key_info
523
+
524
+ """
525
+ elif obj.key.uri not in self.keys:
526
+ if isinstance(self.keys, dict):
527
+ self.keys[obj.key.uri] = key_info
528
+ else:
529
+ old_key = self.keys
530
+ self.keys = {'default': old_key, obj.key.uri: key_info}
531
+ """
521
532
 
522
533
  except Exception as e:
523
534
  logging.error(f"Error parsing encryption keys: {e}")
524
- sys.exit(0)
525
535
  pass
526
536
 
527
537
  def __parse_subtitles_and_audio__(self, m3u8_obj) -> None:
@@ -574,6 +584,10 @@ class M3U8_Parser:
574
584
  self.segments.append(segment.uri)
575
585
  else:
576
586
  self.subtitle.append(segment.uri)
587
+
588
+ # Second check if there is key in main m3u8 obj
589
+ if self.keys is None:
590
+ self.__parse_encryption_keys__(m3u8_obj)
577
591
 
578
592
  except Exception as e:
579
593
  logging.error(f"Error parsing segments: {e}")
@@ -1,5 +1,5 @@
1
1
  __title__ = 'StreamingCommunity'
2
- __version__ = '2.8.0'
2
+ __version__ = '2.9.0'
3
3
  __author__ = 'Arrowar'
4
4
  __description__ = 'A command-line program to download film'
5
5
  __copyright__ = 'Copyright 2024'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: StreamingCommunity
3
- Version: 2.8.0
3
+ Version: 2.9.0
4
4
  Home-page: https://github.com/Lovi-0/StreamingCommunity
5
5
  Author: Lovi-0
6
6
  Project-URL: Bug Reports, https://github.com/Lovi-0/StreamingCommunity/issues
@@ -14,21 +14,21 @@ StreamingCommunity/Api/Site/animeunity/film_serie.py,sha256=noYqH5NHUk_JO6GeqN7-
14
14
  StreamingCommunity/Api/Site/animeunity/site.py,sha256=TtInV7gV6sZBWooiihKWdXogV_AjqfB-bo3ymbRt1S0,5937
15
15
  StreamingCommunity/Api/Site/animeunity/util/ScrapeSerie.py,sha256=6Vbw5KVwUbgooGjUIRAuXr9cWSkHDkAFP7EiXF2T4OM,2709
16
16
  StreamingCommunity/Api/Site/cb01new/__init__.py,sha256=yOfCNYZU5M5rCvNtwvyTgGjJv7qGmNWRAzk0AtAgbhU,1393
17
- StreamingCommunity/Api/Site/cb01new/film.py,sha256=Pqyu4jq3264JzKfSGiHqibBgF29LriDjS752PYbsoIo,1649
17
+ StreamingCommunity/Api/Site/cb01new/film.py,sha256=trrEGcklB6FhqpJvGaEwHI0EThK__e9O6DuknKAFNHw,1628
18
18
  StreamingCommunity/Api/Site/cb01new/site.py,sha256=PaBBkydddvajDesutjLZPmk5zWs_EDhg6uZnq8TIO5U,2548
19
19
  StreamingCommunity/Api/Site/ddlstreamitaly/__init__.py,sha256=_tQbsAJgZufjszrFZ0Om3ia6oYJHMjiHfXAMScqf4yQ,1533
20
20
  StreamingCommunity/Api/Site/ddlstreamitaly/series.py,sha256=z3te51do5C_O77rDTR1N01aQ76BIGe5pm5i_PWJepQ4,3369
21
21
  StreamingCommunity/Api/Site/ddlstreamitaly/site.py,sha256=N-SF9nr09tBVVbzigwijTSr4ffRmuKOyNak6vy4g3cw,2938
22
22
  StreamingCommunity/Api/Site/ddlstreamitaly/util/ScrapeSerie.py,sha256=HY8YEvzWp3sy1q07rFLXLZhGYvapA1amMZByYvs0iJM,2553
23
23
  StreamingCommunity/Api/Site/guardaserie/__init__.py,sha256=ZR9Fz6v2cS2Ve8BfAlvTNK-d5_Xwp5_eqrnFupgxj5Q,1385
24
- StreamingCommunity/Api/Site/guardaserie/series.py,sha256=YNCr8ywqW1dmH8hkAQbYDMbwWB-i8CZSx2glXDxs18o,5694
24
+ StreamingCommunity/Api/Site/guardaserie/series.py,sha256=52OjjItPuVglqlpFFVeJiSXrUL5WFhC-GfyRo7yWnsM,5665
25
25
  StreamingCommunity/Api/Site/guardaserie/site.py,sha256=nXqpYyWQVAZlGtwfR_IL9T2DO-APCkZ-clYIEip9_bc,2563
26
26
  StreamingCommunity/Api/Site/guardaserie/util/ScrapeSerie.py,sha256=4sZRWm8r5X80q285hemRf7MAWeaN5yfOU6i1SjKU4Tg,3268
27
27
  StreamingCommunity/Api/Site/mostraguarda/__init__.py,sha256=rsM2_7FmwyV3ibUbpcflk-eyH8ouBv0ZdCA5tCCVB70,1234
28
- StreamingCommunity/Api/Site/mostraguarda/film.py,sha256=UvhAoU6NHhgpETqbLiQlw4GTbc_fK7_2FwMxEhrWUf0,2740
28
+ StreamingCommunity/Api/Site/mostraguarda/film.py,sha256=dA7Vo9bU7g8eY8Vaj06_n2MHlKBMHh4B_MIw2sO872A,2719
29
29
  StreamingCommunity/Api/Site/streamingcommunity/__init__.py,sha256=FV3ch-farw3tN_-Ay3JV_-TIoHzgQzxEJWPlFibE62Y,2351
30
- StreamingCommunity/Api/Site/streamingcommunity/film.py,sha256=qeNj542UvuOH4ucZ1wuGOLAO8zOUV1okZTZKh1xjQ1c,2551
31
- StreamingCommunity/Api/Site/streamingcommunity/series.py,sha256=Z1CQpue963yfkr7sDQm-8yCS7jISJiSYJCsuk0Em-Qs,7942
30
+ StreamingCommunity/Api/Site/streamingcommunity/film.py,sha256=LaZzEQms9t7r30_PjHPgIOUkVDyotX0qFDBMKMVNSWo,2530
31
+ StreamingCommunity/Api/Site/streamingcommunity/series.py,sha256=T4Yw-cjdQ8GsOLPJwd8iDIcTND1olg81MopsaSDd1Ik,7921
32
32
  StreamingCommunity/Api/Site/streamingcommunity/site.py,sha256=o_xhIxG23Q8klL0o6Yk2DOuJNDKTJGd2EOsPWOwR6Pc,2998
33
33
  StreamingCommunity/Api/Site/streamingcommunity/util/ScrapeSerie.py,sha256=YYetljW4yr6eoiLe6nDUuFZ9NI8K85tF6859ikITmsY,3571
34
34
  StreamingCommunity/Api/Template/__init__.py,sha256=oyfd_4_g5p5q6mxb_rKwSsudZnTM3W3kg1tLwxg-v-Q,46
@@ -39,7 +39,7 @@ StreamingCommunity/Api/Template/Util/__init__.py,sha256=GZZgT816VwTYekPOwLExHenp
39
39
  StreamingCommunity/Api/Template/Util/get_domain.py,sha256=VmBtv419J96qgceLlEecIG7Sw2EsPNM_YPcUMhxGXcE,2775
40
40
  StreamingCommunity/Api/Template/Util/manage_ep.py,sha256=xYDC3tlx6gjQqCqcyKCfQVQeE6aWU5sdrovj8uuvbd8,8118
41
41
  StreamingCommunity/Lib/Downloader/__init__.py,sha256=JhbBh5hOnSM7VmtkxJ7zZ_FtWEC1JdnKThsSBjLV5FY,140
42
- StreamingCommunity/Lib/Downloader/HLS/downloader.py,sha256=I5YaQvLPsTmyYIjQaSftNN7Ybnz6Z881-y2aTKvU3XM,21046
42
+ StreamingCommunity/Lib/Downloader/HLS/downloader.py,sha256=h-44aunSdcCbG4CXPeZP2LWypA9T905E4RnTP4kSyZ0,21168
43
43
  StreamingCommunity/Lib/Downloader/HLS/segments.py,sha256=4D-B_KfwiQq6suMgJxL_aMrOqqX5RVc4Vy0Ktc7tFKM,17609
44
44
  StreamingCommunity/Lib/Downloader/MP4/downloader.py,sha256=MNiWiG0-KcYpc1oth6kr5EOM8pyfbOZrLGXW9FsQzGE,7617
45
45
  StreamingCommunity/Lib/Downloader/TOR/downloader.py,sha256=KVZxCl1VB1-OuTjUhVS5Ycog_P0vCGTfRzhZPv8O7Ps,11267
@@ -50,7 +50,7 @@ StreamingCommunity/Lib/FFmpeg/util.py,sha256=Yyo-z9TOPGFdD_VscWi35Kcw88y4loGNLpN
50
50
  StreamingCommunity/Lib/M3U8/__init__.py,sha256=H_KS2eDd3kVXMziFJnD0FCPvPHEizaqfoA36ElTv_r8,170
51
51
  StreamingCommunity/Lib/M3U8/decryptor.py,sha256=kuxxsd3eN0VGRrMJWXzHo8gCpT0u3fSZs_lwxlE5Fqs,2948
52
52
  StreamingCommunity/Lib/M3U8/estimator.py,sha256=5Qevboxu1h5Q-72bkHy0-Vess9pOIaUrpFYfBVWNDN8,5709
53
- StreamingCommunity/Lib/M3U8/parser.py,sha256=VmYgMF6d3Jr2ucuiRzv8NUJ79oPGc3cgp2VB19-dh0Y,20990
53
+ StreamingCommunity/Lib/M3U8/parser.py,sha256=xN16pQZSCN9mQl_s7OcuH07-mNgVMpAS_hERq6zp7XM,21558
54
54
  StreamingCommunity/Lib/M3U8/url_fixer.py,sha256=zldE4yOuNBV6AAvL1KI6p7XdRI_R5YZRscbDgT1564M,1735
55
55
  StreamingCommunity/Lib/TMBD/__init__.py,sha256=XzE42tw3Ws59DD1PF8WmGtZ0D4D7Hk3Af8QthNE-22U,66
56
56
  StreamingCommunity/Lib/TMBD/obj_tmbd.py,sha256=dRSvJFS5yqmsBZcw2wqbStcBtXNjU_3n5czMyremAtU,1187
@@ -58,7 +58,7 @@ StreamingCommunity/Lib/TMBD/tmdb.py,sha256=LjO21d7iexnSwKBYjgXFECojVSE8WCspQszJJ
58
58
  StreamingCommunity/TelegramHelp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
59
  StreamingCommunity/TelegramHelp/telegram_bot.py,sha256=Qe1__aoK4PpDuing8JtWgdHzLee8LuYYyfeLNA7yADU,26307
60
60
  StreamingCommunity/Upload/update.py,sha256=TXWAOfvZr1So_oME11YvX_L5zRy2tM-ijF-_g1jf87o,2548
61
- StreamingCommunity/Upload/version.py,sha256=7JR_YWMxvHLgem5ngwXtwhWFFHvfG9zxK5Y3CpJVHTU,171
61
+ StreamingCommunity/Upload/version.py,sha256=GZp6mmmofJiy6A667jNKUXK_wKc_vosV2XhlVNUiZdI,171
62
62
  StreamingCommunity/Util/color.py,sha256=NvD0Eni-25oOOkY-szCEoc0lGvzQxyL7xhM0RE4EvUM,458
63
63
  StreamingCommunity/Util/config_json.py,sha256=dmo7FTboEuEs1nYf17RYaTyT03qRvOLJzGgBitYHXs4,19379
64
64
  StreamingCommunity/Util/ffmpeg_installer.py,sha256=q5yb_ZXKe9PhcG7JbKLfo1AZa8DNukgHqymPbudDuAY,13585
@@ -67,9 +67,9 @@ StreamingCommunity/Util/logger.py,sha256=9kGD6GmWj2pM8ADpJc85o7jm8DD0c5Aguqnq-9k
67
67
  StreamingCommunity/Util/message.py,sha256=SJaIPLvWeQqsIODVUKw3TgYRmBChovmlbcF6OUxqMI8,1425
68
68
  StreamingCommunity/Util/os.py,sha256=MUGJKQbNMWeoUrnJ2Ug3hoyYlrPDqU9BY94UmiUbxfA,14858
69
69
  StreamingCommunity/Util/table.py,sha256=X1t9VPYl9GemLMk_-x_WfpysQ-3Iv8vh0aTIJKm0fK0,8565
70
- StreamingCommunity-2.8.0.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
71
- StreamingCommunity-2.8.0.dist-info/METADATA,sha256=qyKRC4btZchkSAPdZDkuL0jU-PiGzpykRNpDMBg7Xu4,21498
72
- StreamingCommunity-2.8.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
73
- StreamingCommunity-2.8.0.dist-info/entry_points.txt,sha256=Qph9XYfDC8n4LfDLOSl6gJGlkb9eFb5f-JOr_Wb_5rk,67
74
- StreamingCommunity-2.8.0.dist-info/top_level.txt,sha256=YsOcxKP-WOhWpIWgBlh0coll9XUx7aqmRPT7kmt3fH0,19
75
- StreamingCommunity-2.8.0.dist-info/RECORD,,
70
+ StreamingCommunity-2.9.0.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
71
+ StreamingCommunity-2.9.0.dist-info/METADATA,sha256=om86R0CDw7hW8WO4wF9ghrTwBB_Afc9PCoii6eNNw_M,21498
72
+ StreamingCommunity-2.9.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
73
+ StreamingCommunity-2.9.0.dist-info/entry_points.txt,sha256=Qph9XYfDC8n4LfDLOSl6gJGlkb9eFb5f-JOr_Wb_5rk,67
74
+ StreamingCommunity-2.9.0.dist-info/top_level.txt,sha256=YsOcxKP-WOhWpIWgBlh0coll9XUx7aqmRPT7kmt3fH0,19
75
+ StreamingCommunity-2.9.0.dist-info/RECORD,,