StreamingCommunity 3.3.1__tar.gz → 3.3.2__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.

Potentially problematic release.


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

Files changed (118) hide show
  1. {streamingcommunity-3.3.1/StreamingCommunity.egg-info → streamingcommunity-3.3.2}/PKG-INFO +314 -490
  2. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/README.md +309 -485
  3. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/mediasetinfinity/util/get_license.py +28 -1
  4. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/raiplay/site.py +6 -4
  5. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/raiplay/util/ScrapeSerie.py +6 -2
  6. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/streamingcommunity/site.py +0 -3
  7. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/streamingwatch/site.py +0 -3
  8. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/Downloader/DASH/cdm_helpher.py +1 -18
  9. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/Downloader/DASH/downloader.py +18 -14
  10. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/Downloader/HLS/downloader.py +22 -10
  11. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/M3U8/decryptor.py +0 -14
  12. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/TMBD/tmdb.py +0 -12
  13. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Upload/version.py +1 -1
  14. streamingcommunity-3.3.1/StreamingCommunity/Util/bento4_installer.py → streamingcommunity-3.3.2/StreamingCommunity/Util/installer/bento4_install.py +15 -33
  15. streamingcommunity-3.3.2/StreamingCommunity/Util/installer/binary_paths.py +83 -0
  16. streamingcommunity-3.3.1/StreamingCommunity/Util/ffmpeg_installer.py → streamingcommunity-3.3.2/StreamingCommunity/Util/installer/ffmpeg_install.py +11 -54
  17. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Util/logger.py +3 -8
  18. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Util/os.py +67 -68
  19. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/run.py +1 -1
  20. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2/StreamingCommunity.egg-info}/PKG-INFO +314 -490
  21. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity.egg-info/SOURCES.txt +4 -3
  22. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/setup.py +4 -4
  23. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/LICENSE +0 -0
  24. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/MANIFEST.in +0 -0
  25. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Player/Helper/Vixcloud/js_parser.py +0 -0
  26. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Player/Helper/Vixcloud/util.py +0 -0
  27. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Player/ddl.py +0 -0
  28. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Player/hdplayer.py +0 -0
  29. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Player/maxstream.py +0 -0
  30. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Player/mediapolisvod.py +0 -0
  31. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Player/mixdrop.py +0 -0
  32. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Player/supervideo.py +0 -0
  33. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Player/sweetpixel.py +0 -0
  34. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Player/vixcloud.py +0 -0
  35. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/altadefinizione/__init__.py +0 -0
  36. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/altadefinizione/film.py +0 -0
  37. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/altadefinizione/series.py +0 -0
  38. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/altadefinizione/site.py +0 -0
  39. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/altadefinizione/util/ScrapeSerie.py +0 -0
  40. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/animeunity/__init__.py +0 -0
  41. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/animeunity/film.py +0 -0
  42. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/animeunity/serie.py +0 -0
  43. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/animeunity/site.py +0 -0
  44. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/animeunity/util/ScrapeSerie.py +0 -0
  45. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/animeworld/__init__.py +0 -0
  46. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/animeworld/film.py +0 -0
  47. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/animeworld/serie.py +0 -0
  48. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/animeworld/site.py +0 -0
  49. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/animeworld/util/ScrapeSerie.py +0 -0
  50. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/crunchyroll/__init__.py +0 -0
  51. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/crunchyroll/film.py +0 -0
  52. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/crunchyroll/series.py +0 -0
  53. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/crunchyroll/site.py +0 -0
  54. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/crunchyroll/util/ScrapeSerie.py +0 -0
  55. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/crunchyroll/util/get_license.py +0 -0
  56. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/guardaserie/__init__.py +0 -0
  57. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/guardaserie/series.py +0 -0
  58. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/guardaserie/site.py +0 -0
  59. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/guardaserie/util/ScrapeSerie.py +0 -0
  60. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/mediasetinfinity/__init__.py +0 -0
  61. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/mediasetinfinity/film.py +0 -0
  62. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/mediasetinfinity/series.py +0 -0
  63. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/mediasetinfinity/site.py +0 -0
  64. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/mediasetinfinity/util/ScrapeSerie.py +0 -0
  65. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/mediasetinfinity/util/fix_mpd.py +0 -0
  66. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/raiplay/__init__.py +0 -0
  67. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/raiplay/film.py +0 -0
  68. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/raiplay/series.py +0 -0
  69. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/raiplay/util/get_license.py +0 -0
  70. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/streamingcommunity/__init__.py +0 -0
  71. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/streamingcommunity/film.py +0 -0
  72. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/streamingcommunity/series.py +0 -0
  73. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/streamingcommunity/util/ScrapeSerie.py +0 -0
  74. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/streamingwatch/__init__.py +0 -0
  75. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/streamingwatch/film.py +0 -0
  76. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/streamingwatch/series.py +0 -0
  77. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/streamingwatch/util/ScrapeSerie.py +0 -0
  78. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Template/Class/SearchType.py +0 -0
  79. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Template/Util/__init__.py +0 -0
  80. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Template/Util/manage_ep.py +0 -0
  81. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Template/__init__.py +0 -0
  82. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Template/config_loader.py +0 -0
  83. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Template/site.py +0 -0
  84. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/Downloader/DASH/decrypt.py +0 -0
  85. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/Downloader/DASH/parser.py +0 -0
  86. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/Downloader/DASH/segments.py +0 -0
  87. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/Downloader/HLS/segments.py +0 -0
  88. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/Downloader/MP4/downloader.py +0 -0
  89. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/Downloader/TOR/downloader.py +0 -0
  90. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/Downloader/__init__.py +0 -0
  91. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/FFmpeg/__init__.py +0 -0
  92. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/FFmpeg/capture.py +0 -0
  93. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/FFmpeg/command.py +0 -0
  94. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/FFmpeg/util.py +0 -0
  95. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/M3U8/__init__.py +0 -0
  96. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/M3U8/estimator.py +0 -0
  97. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/M3U8/parser.py +0 -0
  98. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/M3U8/url_fixer.py +0 -0
  99. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/TMBD/__init__.py +0 -0
  100. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/TMBD/obj_tmbd.py +0 -0
  101. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/TelegramHelp/__init__.py +0 -0
  102. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/TelegramHelp/config.json +0 -0
  103. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/TelegramHelp/telegram_bot.py +0 -0
  104. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Upload/update.py +0 -0
  105. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Util/color.py +0 -0
  106. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Util/config_json.py +0 -0
  107. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Util/headers.py +0 -0
  108. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Util/http_client.py +0 -0
  109. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Util/message.py +0 -0
  110. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/Util/table.py +0 -0
  111. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/__init__.py +0 -0
  112. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity/global_search.py +0 -0
  113. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity.egg-info/dependency_links.txt +0 -0
  114. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity.egg-info/entry_points.txt +0 -0
  115. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity.egg-info/requires.txt +0 -0
  116. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/StreamingCommunity.egg-info/top_level.txt +0 -0
  117. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/requirements.txt +0 -0
  118. {streamingcommunity-3.3.1 → streamingcommunity-3.3.2}/setup.cfg +0 -0
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: StreamingCommunity
3
- Version: 3.3.1
4
- Home-page: https://github.com/Lovi-0/StreamingCommunity
5
- Author: Lovi-0
6
- Project-URL: Bug Reports, https://github.com/Lovi-0/StreamingCommunity/issues
7
- Project-URL: Source, https://github.com/Lovi-0/StreamingCommunity
3
+ Version: 3.3.2
4
+ Home-page: https://github.com/Arrowar/StreamingCommunity
5
+ Author: Arrowar
6
+ Project-URL: Bug Reports, https://github.com/Arrowar/StreamingCommunity/issues
7
+ Project-URL: Source, https://github.com/Arrowar/StreamingCommunity
8
8
  Keywords: streaming community
9
9
  Requires-Python: >=3.8
10
10
  Description-Content-Type: text/markdown
@@ -45,181 +45,184 @@ Dynamic: requires-python
45
45
  [![License](https://img.shields.io/github/license/Arrowar/StreamingCommunity?logo=gnu&logoColor=white&labelColor=2d3748&color=e53e3e&style=for-the-badge)](https://github.com/Arrowar/StreamingCommunity/blob/main/LICENSE)
46
46
 
47
47
  ## 💝 Support the Project
48
-
49
48
  [![Donate PayPal](https://img.shields.io/badge/💳_Donate-PayPal-00457C?style=for-the-badge&logo=paypal&logoColor=white&labelColor=2d3748)](https://www.paypal.com/donate/?hosted_button_id=UXTWMT8P6HE2C)
50
- ## 🚀 Download & Install
51
49
 
50
+ ## 🚀 Download & Install
52
51
  [![Windows](https://img.shields.io/badge/🪟_Windows-0078D4?style=for-the-badge&logo=windows&logoColor=white&labelColor=2d3748)](https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity_win.exe)
53
52
  [![macOS](https://img.shields.io/badge/🍎_macOS-000000?style=for-the-badge&logo=apple&logoColor=white&labelColor=2d3748)](https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity_mac)
54
53
  [![Linux latest](https://img.shields.io/badge/🐧_Linux_latest-FCC624?style=for-the-badge&logo=linux&logoColor=black&labelColor=2d3748)](https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity_linux_latest)
55
54
  [![Linux 22.04](https://img.shields.io/badge/🐧_Linux_22.04-FCC624?style=for-the-badge&logo=linux&logoColor=black&labelColor=2d3748)](https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity_linux_previous)
55
+
56
56
  ---
57
57
 
58
- *⚡ **Quick Start:** `pip install streamingcommunity` or download the executable for your platform above*
58
+ *⚡ **Quick Start:** `pip install StreamingCommunity && StreamingCommunity`*
59
59
 
60
60
  </div>
61
61
 
62
- # 📋 Table of Contents
62
+ ---
63
+
64
+ ## 📖 Table of Contents
65
+ - [Installation](#manual-installation)
66
+ - [Quick Start](#quick-start)
67
+ - [Downloaders](#downloaders)
68
+ - [Configuration](#configuration)
69
+ - [Login](.github/.site/login.md)
70
+ - [Usage Examples](#usage-examples)
71
+ - [Global Search](#global-search)
72
+ - [Advanced Features](#advanced-options)
73
+ - [Deployment](#docker)
74
+ - [Tutorials](#tutorials)
75
+ - [Related Projects](#useful-project)
76
+
77
+ ---
78
+
79
+ ## Manual Installation
63
80
 
64
81
  <details>
65
- <summary>📦 Installation</summary>
66
-
67
- - 🔄 [Update Domains](#update-domains)
68
- - 🌐 [Available Sites](https://arrowar.github.io/StreamingCommunity/)
69
- - 🛠️ [Installation](#installation)
70
- - 📦 [PyPI Installation](#1-pypi-installation)
71
- - 🔄 [Automatic Installation](#2-automatic-installation)
72
- - 🔧 [Binary Location](#binary-location)
73
- - 📝 [Manual Installation](#3-manual-installation)
74
- - 💻 [Win 7](https://github.com/Ghost6446/StreamingCommunity_api/wiki/Installation#win-7)
75
- - 📱 [Termux](https://github.com/Ghost6446/StreamingCommunity_api/wiki/Termux)
76
- </details>
82
+ <summary>📝 Manual Installation & Update</summary>
77
83
 
78
84
  <details>
79
- <summary>⚙️ Configuration & Usage</summary>
80
-
81
- - ⚙️ [Configuration](#configuration)
82
- - 🔧 [Default](#default-settings)
83
- - 📩 [Request](#requests-settings)
84
- - 📥 [Download](#m3u8_download-settings)
85
- - 🔍 [Parser](#m3u8_parser-settings)
86
- - 📝 [Command](#command)
87
- - 🔍 [Global search](#global-search)
88
- - 💻 [Examples of terminal](#examples-of-terminal-usage)
85
+ <summary>📋 Requirements</summary>
86
+
87
+ Prerequisites:
88
+ * [Python](https://www.python.org/downloads/) > 3.8
89
89
  </details>
90
90
 
91
91
  <details>
92
- <summary>🔧 Advanced Features</summary>
92
+ <summary>⚙️ Python Dependencies</summary>
93
93
 
94
- - 🔧 [Manual domain configuration](#update-domains)
95
- - 🐳 [Docker](#docker)
96
- - 📝 [Telegram Usage](#telegram-usage)
97
- - 🧩 [Hook/Plugin System](#hookplugin-system)
94
+ ```bash
95
+ pip install -r requirements.txt
96
+ ```
98
97
  </details>
99
98
 
100
99
  <details>
101
- <summary>ℹ️ Help & Support</summary>
100
+ <summary>🚀 Usage</summary>
101
+
102
+ #### On Windows:
102
103
 
103
- - 🎓 [Tutorial](#tutorials)
104
- - 📝 [To do](#to-do)
105
- - ⚠️ [Disclaimer](#disclaimer)
104
+ ```powershell
105
+ python test_run.py
106
+ ```
107
+
108
+ #### On Linux/MacOS:
109
+
110
+ ```bash
111
+ python3 test_run.py
112
+ ```
106
113
  </details>
107
114
 
108
- # Installation
115
+ ## Update
109
116
 
110
- ## 1. PyPI Installation
117
+ Keep your script up to date with the latest features by running:
111
118
 
112
- Install directly from PyPI:
119
+ ### On Windows:
113
120
 
114
- ```bash
115
- pip install StreamingCommunity
121
+ ```powershell
122
+ python update.py
116
123
  ```
117
124
 
118
- Update to the latest version:
125
+ ### On Linux/MacOS:
119
126
 
120
127
  ```bash
121
- pip install --upgrade StreamingCommunity
128
+ python3 update.py
122
129
  ```
123
130
 
124
- ## Quick Start
131
+ </details>
125
132
 
126
- Create a simple script (`run_streaming.py`) to launch the main application:
133
+ ---
127
134
 
128
- ```python
129
- from StreamingCommunity.run import main
135
+ ## Quick Start
130
136
 
131
- if __name__ == "__main__":
132
- main()
137
+ After installing via pip, just run:
138
+ ```bash
139
+ StreamingCommunity
133
140
  ```
141
+ to start the application.
134
142
 
135
143
  Run the script:
136
-
137
144
  ```bash
138
145
  python run_streaming.py
139
146
  ```
140
147
 
141
- ## Modules
148
+ **Manual execution:**
149
+
150
+ **Windows:**
151
+ ```powershell
152
+ python test_run.py
153
+ ```
154
+
155
+ **Linux/MacOS:**
156
+ ```bash
157
+ python3 test_run.py
158
+ ```
159
+
160
+ ---
161
+
162
+ ## Downloaders
142
163
 
143
164
  <details>
144
- <summary>📥 HLS Downloader</summary>
165
+ <summary>📥 HLS</summary>
145
166
 
146
167
  Download HTTP Live Streaming (HLS) content from m3u8 URLs.
147
168
 
148
169
  ```python
149
170
  from StreamingCommunity import HLS_Downloader
150
171
 
151
- # Initialize with m3u8 URL and optional output path
152
172
  downloader = HLS_Downloader(
153
173
  m3u8_url="https://example.com/stream.m3u8",
154
- output_path="/downloads/video.mp4" # Optional
174
+ output_path="/downloads/video.mp4"
155
175
  )
156
176
 
157
- # Start the download
158
177
  downloader.download()
159
178
  ```
160
179
 
161
- See [HLS example](./Test/Download/HLS.py) for complete usage.
180
+ See [HLS example](./Test/EasyDownload//HLS.py) for complete usage.
162
181
  </details>
163
182
 
164
183
  <details>
165
- <summary>📽️ MP4 Downloader</summary>
184
+ <summary>📽️ MP4</summary>
166
185
 
167
186
  Direct MP4 file downloader with support for custom headers and referrer.
168
187
 
169
188
  ```python
170
189
  from StreamingCommunity import MP4_downloader
171
190
 
172
- # Basic usage
173
191
  downloader = MP4_downloader(
174
192
  url="https://example.com/video.mp4",
175
193
  path="/downloads/saved_video.mp4"
176
194
  )
177
195
 
178
- # Advanced usage with custom headers and referrer
179
- headers = {
180
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
181
- }
182
- downloader = MP4_downloader(
183
- url="https://example.com/video.mp4",
184
- path="/downloads/saved_video.mp4",
185
- referer="https://example.com",
186
- headers_=headers
187
- )
188
-
189
- # Start download
190
196
  downloader.download()
191
197
  ```
192
198
 
193
- See [MP4 example](./Test/Download/MP4.py) for complete usage.
199
+ See [MP4 example](./Test/EasyDownload/MP4.py) for complete usage.
194
200
  </details>
195
201
 
196
202
  <details>
197
- <summary>🧲 Torrent Client</summary>
203
+ <summary>🧲 TOR</summary>
198
204
 
199
205
  Download content via torrent magnet links.
200
206
 
201
207
  ```python
202
208
  from StreamingCommunity import TOR_downloader
203
209
 
204
- # Initialize torrent client
205
210
  client = TOR_downloader()
206
211
 
207
- # Add magnet link
208
212
  client.add_magnet_link("magnet:?xt=urn:btih:example_hash&dn=example_name", save_path=".")
209
213
 
210
- # Start download
211
214
  client.start_download()
212
215
  ```
213
216
 
214
- See [Torrent example](./Test/Download/TOR.py) for complete usage.
217
+ See [Torrent example](./Test/EasyDownload/TOR.py) for complete usage.
215
218
  </details>
216
219
 
217
220
  <details>
218
- <summary>🎞️ DASH Downloader</summary>
221
+ <summary>🎞️ DASH</summary>
219
222
 
220
223
  ```python
221
- license_url = "https://example.com/stream.mpd"
222
- mpd_url = "https://example.com/get_license"
224
+ mpd_url = "https://example.com/stream.mpd"
225
+ license_url = "https://example.com/get_license"
223
226
 
224
227
  dash_process = DASH_Downloader(
225
228
  cdm_device=get_wvd_path(),
@@ -235,249 +238,12 @@ if dash_process.download_and_decrypt():
235
238
  dash_process.get_status()
236
239
  ```
237
240
 
241
+ See [DASH example](./Test/EasyDownload/DASH.py) for complete usage.
238
242
  </details>
239
243
 
240
- ## Binary Location
241
-
242
- <details>
243
- <summary>📂 Default Locations</summary>
244
-
245
- - **Windows**: `C:\binary`
246
- - **MacOS**: `~/Applications/binary`
247
- - **Linux**: `~/.local/bin/binary`
248
- </details>
249
-
250
- <details>
251
- <summary>🪟 Windows Configuration</summary>
252
-
253
- 1. Move the binary folder from `C:\binary` to your desired location
254
- 2. Add the new path to Windows environment variables:
255
- - Open Start menu and search for "Environment Variables"
256
- - Click "Edit the system environment variables"
257
- - Click "Environment Variables" button
258
- - Under "System Variables", find and select "Path"
259
- - Click "Edit"
260
- - Add the new binary folder path
261
- - Click "OK" to save changes
262
-
263
- For detailed Windows PATH instructions, see the [Windows PATH guide](https://www.eukhost.com/kb/how-to-add-to-the-path-on-windows-10-and-windows-11/).
264
- </details>
265
-
266
- <details>
267
- <summary>🍎 MacOS Configuration</summary>
268
-
269
- 1. Move the binary folder from `~/Applications/binary` to your desired location
270
- 2. Add the new path to your shell's configuration file:
271
- ```bash
272
- # For bash (edit ~/.bash_profile)
273
- export PATH="/your/custom/path:$PATH"
274
-
275
- # For zsh (edit ~/.zshrc)
276
- export PATH="/your/custom/path:$PATH"
277
- ```
278
- 3. Reload your shell configuration:
279
- ```bash
280
- # For bash
281
- source ~/.bash_profile
282
-
283
- # For zsh
284
- source ~/.zshrc
285
- ```
286
- </details>
287
-
288
- <details>
289
- <summary>🐧 Linux Configuration</summary>
290
-
291
- 1. Move the binary folder from `~/.local/bin/binary` to your desired location
292
- 2. Add the new path to your shell's configuration file:
293
- ```bash
294
- # For bash (edit ~/.bashrc)
295
- export PATH="/your/custom/path:$PATH"
296
-
297
- # For zsh (edit ~/.zshrc)
298
- export PATH="/your/custom/path:$PATH"
299
- ```
300
- 3. Apply the changes:
301
- ```bash
302
- source ~/.bashrc # for bash
303
- # or
304
- source ~/.zshrc # for zsh
305
- ```
306
- </details>
307
-
308
- > [!IMPORTANT]
309
- > After moving the binary folder, ensure that all executables (ffmpeg, ffprobe, ffplay) are present in the new location and have the correct permissions:
310
- > - Windows: `.exe` extensions required
311
- > - MacOS/Linux: Ensure files have execute permissions (`chmod +x filename`)
312
-
313
- ## 3. Manual Installation
314
-
315
- <details>
316
- <summary>📋 Requirements</summary>
317
-
318
- Prerequisites:
319
- * [Python](https://www.python.org/downloads/) > 3.8
320
- * [FFmpeg](https://www.gyan.dev/ffmpeg/builds/)
321
- </details>
322
-
323
- <details>
324
- <summary>⚙️ Python Dependencies</summary>
325
-
326
- ```bash
327
- pip install -r requirements.txt
328
- ```
329
- </details>
330
-
331
- <details>
332
- <summary>🚀 Usage</summary>
333
-
334
- #### On Windows:
335
-
336
- ```powershell
337
- python test_run.py
338
- ```
339
-
340
- #### On Linux/MacOS:
341
-
342
- ```bash
343
- python3 test_run.py
344
- ```
345
- </details>
346
-
347
- ## Update
348
-
349
- Keep your script up to date with the latest features by running:
350
-
351
- ### On Windows:
352
-
353
- ```powershell
354
- python update.py
355
- ```
356
-
357
- ### On Linux/MacOS:
358
-
359
- ```bash
360
- python3 update.py
361
- ```
362
-
363
- <br>
364
-
365
- ## Update Domains
366
-
367
- <details>
368
- <summary>🌐 Domain Configuration Methods</summary>
369
-
370
- There are two ways to manage the domains for the supported websites:
371
-
372
- ### 1. Online Domain Fetching (Recommended)
373
-
374
- Set `fetch_domain_online` to `true` in your `config.json`:
375
-
376
- ```json
377
- {
378
- "DEFAULT": {
379
- "fetch_domain_online": true
380
- }
381
- }
382
- ```
383
-
384
- This will:
385
- - Download the latest domains from the GitHub repository
386
- - Automatically save them to a local `domains.json` file
387
- - Ensure you always have the most up-to-date streaming site domains
388
-
389
- ### 2. Local Domain Configuration
390
-
391
- Set `fetch_domain_online` to `false` to use a local configuration:
392
-
393
- ```json
394
- {
395
- "DEFAULT": {
396
- "fetch_domain_online": false
397
- }
398
- }
399
- ```
400
-
401
- Then create a `domains.json` file in the root directory with your domain configuration:
402
-
403
- ```json
404
- {
405
- "altadefinizione": {
406
- "domain": "si",
407
- "full_url": "https://altadefinizione.si/"
408
- },
409
- "streamingcommunity": {
410
- "domain": "best",
411
- "full_url": "https://streamingcommunity.best/"
412
- }
413
- }
414
- ```
415
-
416
- ### 3. Automatic Fallback
417
-
418
- If online fetching fails, the script will automatically attempt to use the local `domains.json` file as a fallback, ensuring maximum reliability.
419
-
420
- #### 💡 Adding a New Site
421
- If you want to request a new site to be added to the repository, message us on the Discord server!
422
-
423
- </details>
424
-
425
- ## Hook/Plugin System
426
-
427
- <details>
428
- <summary>🧩 Run custom scripts before/after the main execution</summary>
429
-
430
- Define pre/post hooks in `config.json` under the `HOOKS` section. Supported types:
431
-
432
- - **python**: runs `script.py` with the current Python interpreter
433
- - **bash/sh**: runs via `bash`/`sh` on macOS/Linux
434
- - **bat/cmd**: runs via `cmd /c` on Windows
435
- - Inline **command**: use `command` instead of `path`
436
-
437
- Sample configuration:
438
-
439
- ```json
440
- {
441
- "HOOKS": {
442
- "pre_run": [
443
- {
444
- "name": "prepare-env",
445
- "type": "python",
446
- "path": "scripts/prepare.py",
447
- "args": ["--clean"],
448
- "env": {"MY_FLAG": "1"},
449
- "cwd": "~",
450
- "os": ["linux", "darwin"],
451
- "timeout": 60,
452
- "enabled": true,
453
- "continue_on_error": true
454
- }
455
- ],
456
- "post_run": [
457
- {
458
- "name": "notify",
459
- "type": "bash",
460
- "command": "echo 'Download completed'"
461
- }
462
- ]
463
- }
464
- }
465
- ```
466
-
467
- Notes:
468
-
469
- - **os**: optional OS filter (`windows`, `darwin` (`darwin` is used for MacOS), `linux`).
470
- - **args**: list of arguments passed to the script.
471
- - **env**: additional environment variables.
472
- - **cwd**: working directory for the script; supports `~` and environment variables.
473
- - **continue_on_error**: if `false`, the app stops when the hook fails.
474
- - **timeout**: in seconds; when exceeded the hook fails.
475
-
476
- Hooks are executed automatically by `run.py` before (`pre_run`) and after (`post_run`) the main execution.
477
-
478
- </details>
244
+ ---
479
245
 
480
- # Configuration
246
+ ## Configuration
481
247
 
482
248
  <details>
483
249
  <summary>⚙️ Overview</summary>
@@ -486,31 +252,7 @@ You can change some behaviors by tweaking the configuration file. The configurat
486
252
  </details>
487
253
 
488
254
  <details>
489
- <summary>🔧 DEFAULT Settings</summary>
490
-
491
- ```json
492
- {
493
- "DEFAULT": {
494
- "debug": false,
495
- "show_message": true,
496
- "show_trending": true,
497
- "fetch_domain_online": true,
498
- "telegram_bot": false,
499
- "validate_github_config": false
500
- }
501
- }
502
- ```
503
-
504
- - `debug`: Enables debug logging
505
- - `show_message`: Displays informational messages
506
- - `show_trending`: Shows trending content
507
- - `fetch_domain_online`: If true, downloads domains from GitHub repository and saves to local file; if false, uses existing local domains.json file
508
- - `telegram_bot`: Enables Telegram bot integration
509
- - `validate_github_config`: If set to false, disables validation and updating of configuration from GitHub
510
- </details>
511
-
512
- <details>
513
- <summary>📁 OUT_FOLDER Settings</summary>
255
+ <summary>📁 OUT_FOLDER</summary>
514
256
 
515
257
  ```json
516
258
  {
@@ -564,51 +306,12 @@ You can change some behaviors by tweaking the configuration file. The configurat
564
306
  To enable qBittorrent integration, follow the setup guide [here](https://github.com/lgallard/qBittorrent-Controller/wiki/How-to-enable-the-qBittorrent-Web-UI).
565
307
  </details>
566
308
 
567
- <details>
568
- <summary>📡 REQUESTS Settings</summary>
569
-
570
- ```json
571
- {
572
- "REQUESTS": {
573
- "verify": false,
574
- "timeout": 20,
575
- "max_retry": 8,
576
- "proxy": {
577
- "http": "http://username:password@host:port",
578
- "https": "https://username:password@host:port"
579
- }
580
- }
581
- }
582
- ```
583
-
584
- - `verify`: Verifies SSL certificates
585
- - `timeout`: Maximum timeout (in seconds) for each request
586
- - `max_retry`: Number of retry attempts per segment during M3U8 index download
587
- - `proxy`: Proxy configuration for HTTP/HTTPS requests
588
- * Set to empty string `""` to disable proxies (default)
589
- * Example with authentication:
590
- ```json
591
- "proxy": {
592
- "http": "http://username:password@host:port",
593
- "https": "https://username:password@host:port"
594
- }
595
- ```
596
- * Example without authentication:
597
- ```json
598
- "proxy": {
599
- "http": "http://host:port",
600
- "https": "https://host:port"
601
- }
602
- ```
603
- </details>
604
-
605
309
  <details>
606
310
  <summary>📥 M3U8_DOWNLOAD Settings</summary>
607
311
 
608
312
  ```json
609
313
  {
610
314
  "M3U8_DOWNLOAD": {
611
- "tqdm_delay": 0.01,
612
315
  "default_video_workser": 12,
613
316
  "default_audio_workser": 12,
614
317
  "segment_timeout": 8,
@@ -621,26 +324,23 @@ To enable qBittorrent integration, follow the setup guide [here](https://github.
621
324
  "ita", // Specify language codes or use ["*"] to download all available subtitles
622
325
  "eng"
623
326
  ],
624
- "cleanup_tmp_folder": true
327
+ "cleanup_tmp_folder": true,
328
+ "get_only_link": false
625
329
  }
626
330
  }
627
331
  ```
628
332
 
629
333
  #### Performance Settings
630
- - `tqdm_delay`: Delay between progress bar updates
631
334
  - `default_video_workser`: Number of threads for video download
632
335
  * Can be changed with `--default_video_worker <number>`
633
336
  - `default_audio_workser`: Number of threads for audio download
634
337
  * Can be changed with `--default_audio_worker <number>`
635
- - `segment_timeout`: Timeout for downloading individual segments
636
338
 
637
339
  #### Audio Settings
638
- - `download_audio`: Whether to download audio tracks
639
340
  - `specific_list_audio`: List of audio languages to download
640
341
  * Can be changed with `--specific_list_audio ita,eng`
641
342
 
642
343
  #### Subtitle Settings
643
- - `download_subtitle`: Whether to download subtitles
644
344
  - `merge_subs`: Whether to merge subtitles with video
645
345
  - `specific_list_subtitles`: List of subtitle languages to download
646
346
  * Use `["*"]` to download all available subtitles
@@ -651,66 +351,6 @@ To enable qBittorrent integration, follow the setup guide [here](https://github.
651
351
  - `cleanup_tmp_folder`: Remove temporary .ts files after download
652
352
  </details>
653
353
 
654
- <details>
655
- <summary>🌍 Available Language Codes</summary>
656
-
657
- | European | Asian | Middle Eastern | Others |
658
- |-----------------|-----------------|-----------------|-----------------|
659
- | ita - Italian | chi - Chinese | ara - Arabic | eng - English |
660
- | spa - Spanish | jpn - Japanese | heb - Hebrew | por - Portuguese|
661
- | fre - French | kor - Korean | tur - Turkish | fil - Filipino |
662
- | ger - German | hin - Hindi | | ind - Indonesian|
663
- | rus - Russian | mal - Malayalam | | may - Malay |
664
- | swe - Swedish | tam - Tamil | | vie - Vietnamese|
665
- | pol - Polish | tel - Telugu | | |
666
- | ukr - Ukrainian | tha - Thai | | |
667
- </details>
668
-
669
- <details>
670
- <summary>🎥 M3U8_CONVERSION Settings</summary>
671
-
672
- ```json
673
- {
674
- "M3U8_CONVERSION": {
675
- "use_codec": false,
676
- "use_vcodec": true,
677
- "use_acodec": true,
678
- "use_bitrate": true,
679
- "use_gpu": false,
680
- "default_preset": "ultrafast"
681
- }
682
- }
683
- ```
684
-
685
- #### Basic Settings
686
- - `use_codec`: Use specific codec settings
687
- - `use_vcodec`: Use specific video codec
688
- - `use_acodec`: Use specific audio codec
689
- - `use_bitrate`: Apply bitrate settings
690
- - `use_gpu`: Enable GPU acceleration (if available)
691
- - `default_preset`: FFmpeg encoding preset
692
-
693
- #### Encoding Presets
694
- The `default_preset` configuration can be set to:
695
- - `ultrafast`: Extremely fast conversion but larger file size
696
- - `superfast`: Very fast with good quality/size ratio
697
- - `veryfast`: Fast with good compression
698
- - `faster`: Optimal balance for most users
699
- - `fast`: Good compression, moderate time
700
- - `medium`: FFmpeg default setting
701
- - `slow`: High quality, slower process
702
- - `slower`: Very high quality, slow process
703
- - `veryslow`: Maximum quality, very slow process
704
-
705
- #### GPU Acceleration
706
- When `use_gpu` is enabled, supports:
707
- - NVIDIA: NVENC
708
- - AMD: AMF
709
- - Intel: QSV
710
-
711
- Note: Requires updated drivers and FFmpeg with hardware acceleration support.
712
- </details>
713
-
714
354
  <details>
715
355
  <summary>🔍 M3U8_PARSER Settings</summary>
716
356
 
@@ -732,13 +372,130 @@ Note: Requires updated drivers and FFmpeg with hardware acceleration support.
732
372
  - 720p (1280x720)
733
373
  - 480p (640x480)
734
374
  - 360p (640x360)
735
- - 320p (480x320)
736
- - 240p (426x240)
737
- - 240p (320x240)
738
- - 144p (256x144)
375
+
376
+ #### Link options
377
+ - `get_only_link`: Return M3U8 playlist/index URL instead of downloading
739
378
 
740
379
  </details>
741
380
 
381
+ ## Update Domains
382
+
383
+ <details>
384
+ <summary>🌐 Domain Configuration Methods</summary>
385
+
386
+ There are two ways to manage the domains for the supported websites:
387
+
388
+ ### 1. Online Domain Fetching (Recommended)
389
+
390
+ Set `fetch_domain_online` to `true` in your `config.json`:
391
+
392
+ ```json
393
+ {
394
+ "DEFAULT": {
395
+ "fetch_domain_online": true
396
+ }
397
+ }
398
+ ```
399
+
400
+ This will:
401
+ - Download the latest domains from the GitHub repository
402
+ - Automatically save them to a local `domains.json` file
403
+ - Ensure you always have the most up-to-date streaming site domains
404
+
405
+ ### 2. Local Domain Configuration
406
+
407
+ Set `fetch_domain_online` to `false` to use a local configuration:
408
+
409
+ ```json
410
+ {
411
+ "DEFAULT": {
412
+ "fetch_domain_online": false
413
+ }
414
+ }
415
+ ```
416
+
417
+ Then create a `domains.json` file in the root directory with your domain configuration:
418
+
419
+ ```json
420
+ {
421
+ "altadefinizione": {
422
+ "domain": "si",
423
+ "full_url": "https://altadefinizione.si/"
424
+ },
425
+ "streamingcommunity": {
426
+ "domain": "best",
427
+ "full_url": "https://streamingcommunity.best/"
428
+ }
429
+ }
430
+ ```
431
+
432
+ ### 3. Automatic Fallback
433
+
434
+ If online fetching fails, the script will automatically attempt to use the local `domains.json` file as a fallback, ensuring maximum reliability.
435
+
436
+ #### 💡 Adding a New Site
437
+ If you want to request a new site to be added to the repository, message us on the Discord server!
438
+
439
+ </details>
440
+
441
+ ---
442
+
443
+ ## Usage Examples
444
+
445
+ ### Basic Commands
446
+
447
+ ```bash
448
+ # Show help (includes available sites by name and by index)
449
+ python test_run.py -h
450
+
451
+ # Run a specific site by name with a search term
452
+ python test_run.py --site streamingcommunity --search "interstellar"
453
+
454
+ # Run a specific site by numeric index
455
+ python test_run.py --site 0 --search "interstellar"
456
+
457
+ # Auto-download the first result from search
458
+ python test_run.py --site streamingcommunity --search "interstellar" --auto-first
459
+ ```
460
+
461
+ ### Advanced Options
462
+
463
+ ```bash
464
+ # Change video and audio workers
465
+ python test_run.py --default_video_worker 8 --default_audio_worker 8
466
+
467
+ # Set specific languages
468
+ python test_run.py --specific_list_audio ita,eng --specific_list_subtitles eng,spa
469
+
470
+ # Keep console open after download
471
+ python test_run.py --not_close true
472
+ ```
473
+
474
+ ### Global Search Commands
475
+
476
+ ```bash
477
+ # Use global search
478
+ python test_run.py --global -s "cars"
479
+
480
+ # Select specific category
481
+ python test_run.py --category 1 # Search in anime category
482
+ python test_run.py --category 2 # Search in movies & series
483
+ python test_run.py --category 3 # Search in series
484
+ python test_run.py --category 4 # Search in torrent category
485
+ ```
486
+
487
+ ### PyPI Installation Usage
488
+
489
+ ```bash
490
+ # If installed via pip, you can simply run:
491
+ StreamingCommunity
492
+
493
+ # Or use the entrypoint with arguments, for example:
494
+ StreamingCommunity --site streamingcommunity --search "interstellar" --auto-first
495
+ ```
496
+
497
+ ---
498
+
742
499
  # Global Search
743
500
 
744
501
  <details>
@@ -781,42 +538,66 @@ The Global Search can be configured from the command line:
781
538
  - `-s`, `--search` - Specify the search terms.
782
539
  </details>
783
540
 
784
- # Examples of terminal usage
541
+ ---
785
542
 
786
- ```bash
787
- # Run a specific site by name with a search term
788
- python test_run.py --site streamingcommunity --search "interstellar"
543
+ ## 🧩 Advanced Features
789
544
 
790
- # Run a specific site by numeric index (as shown in -h help)
791
- python test_run.py --site 0 --search "interstellar"
545
+ ## Hook/Plugin System
792
546
 
793
- # Auto-download the first result from search (requires --site and --search)
794
- python test_run.py --site streamingcommunity --search "interstellar" --auto-first
547
+ <details>
548
+ <summary>🧩 Run custom scripts before/after the main execution</summary>
795
549
 
796
- # Show help (includes available sites by name and by index)
797
- python test_run.py -h
550
+ Define pre/post hooks in `config.json` under the `HOOKS` section. Supported types:
798
551
 
799
- # Change video and audio workers
800
- python test_run.py --default_video_worker 8 --default_audio_worker 8
552
+ - **python**: runs `script.py` with the current Python interpreter
553
+ - **bash/sh**: runs via `bash`/`sh` on macOS/Linux
554
+ - **bat/cmd**: runs via `cmd /c` on Windows
555
+ - Inline **command**: use `command` instead of `path`
801
556
 
802
- # Set specific languages
803
- python test_run.py --specific_list_audio ita,eng --specific_list_subtitles eng,spa
557
+ Sample configuration:
804
558
 
805
- # Keep console open after download
806
- python test_run.py --not_close true
559
+ ```json
560
+ {
561
+ "HOOKS": {
562
+ "pre_run": [
563
+ {
564
+ "name": "prepare-env",
565
+ "type": "python",
566
+ "path": "scripts/prepare.py",
567
+ "args": ["--clean"],
568
+ "env": {"MY_FLAG": "1"},
569
+ "cwd": "~",
570
+ "os": ["linux", "darwin"],
571
+ "timeout": 60,
572
+ "enabled": true,
573
+ "continue_on_error": true
574
+ }
575
+ ],
576
+ "post_run": [
577
+ {
578
+ "name": "notify",
579
+ "type": "bash",
580
+ "command": "echo 'Download completed'"
581
+ }
582
+ ]
583
+ }
584
+ }
585
+ ```
807
586
 
808
- # Use global search
809
- python test_run.py --global -s "cars"
587
+ Notes:
810
588
 
811
- # Select specific category
812
- python test_run.py --category 1 # Search in anime category
813
- python test_run.py --category 2 # Search in movies & series
814
- python test_run.py --category 3 # Search in series
815
- python test_run.py --category 4 # Search in torrent category
589
+ - **os**: optional OS filter (`windows`, `darwin` (`darwin` is used for MacOS), `linux`).
590
+ - **args**: list of arguments passed to the script.
591
+ - **env**: additional environment variables.
592
+ - **cwd**: working directory for the script; supports `~` and environment variables.
593
+ - **continue_on_error**: if `false`, the app stops when the hook fails.
594
+ - **timeout**: in seconds; when exceeded the hook fails.
816
595
 
817
- # If installed via pip, you can also use the entrypoint directly
818
- streamingcommunity --site streamingcommunity --search "interstellar" --auto-first
819
- ```
596
+ Hooks are executed automatically by `run.py` before (`pre_run`) and after (`post_run`) the main execution.
597
+
598
+ </details>
599
+
600
+ ---
820
601
 
821
602
  # Docker
822
603
 
@@ -830,7 +611,13 @@ docker build -t streaming-community-api .
830
611
 
831
612
  Run the container with Cloudflare DNS for better connectivity:
832
613
  ```
833
- docker run -it --dns 1.1.1.1 -p 8000:8000 streaming-community-api
614
+ docker run -d --name streaming-community --dns 1.1.1.1 -p 8000:8000 streaming-community-api
615
+ ```
616
+
617
+ Tip CLI:
618
+ - To run the CLI inside the container, attach to the container and execute:
619
+ ```
620
+ docker exec -it streaming-community python test_run.py
834
621
  ```
835
622
  </details>
836
623
 
@@ -859,6 +646,7 @@ make LOCAL_DIR=/path/to/download run-container
859
646
  The `run-container` command mounts also the `config.json` file, so any change to the configuration file is reflected immediately without having to rebuild the image.
860
647
  </details>
861
648
 
649
+
862
650
  # Telegram Usage
863
651
 
864
652
  <details>
@@ -905,7 +693,35 @@ Start the bot (from /StreamingCommunity/TelegramHelp):
905
693
  ```bash
906
694
  python3 telegram_bot.py
907
695
  ```
908
- </details>
696
+ </details>d
697
+ - 🔹 `/list` – Displays the status of active downloads, with options to:
698
+ - Stop an incorrect download using `/stop <ID>`
699
+ - View the real-time output of a download using `/screen <ID>`
700
+
701
+ ⚠️ **Warning:** If a download is interrupted, incomplete files may remain in the folder specified in config.json. These files must be deleted manually.
702
+
703
+ #### Setup
704
+ 1. Create an `.env` file with your Telegram token and user ID:
705
+ ```env
706
+ TOKEN_TELEGRAM=IlTuo2131TOKEN$12D3Telegram
707
+ AUTHORIZED_USER_ID=12345678
708
+ DEBUG=False
709
+ ```
710
+
711
+ 2. Install dependencies:
712
+ ```bash
713
+ pip install -r requirements.txt
714
+ ```
715
+
716
+ 3. Start the bot (from `/StreamingCommunity/TelegramHelp`):
717
+ ```bash
718
+ python3 telegram_bot.py
719
+ ```
720
+
721
+ **Running in background:**
722
+ Start the bot inside a screen session and press Ctrl + A, followed by D, to detach from the session without stopping the bot.
723
+
724
+ ---
909
725
 
910
726
  # Tutorials
911
727
 
@@ -914,19 +730,27 @@ python3 telegram_bot.py
914
730
  - [Pypy](https://www.youtube.com/watch?v=C6m9ZKOK0p4)
915
731
  - [Compiled](https://www.youtube.com/watch?v=pm4lqsxkTVo)
916
732
 
917
- ## Useful Project
918
733
 
919
- ### 🎯 [Unit3Dup](https://github.com/31December99/Unit3Dup)
734
+ # Useful Project
735
+
736
+ ## 🎯 [Unit3Dup](https://github.com/31December99/Unit3Dup)
920
737
  Bot in Python per la generazione e l'upload automatico di torrent su tracker basati su Unit3D.
921
738
 
922
- ### 🇮🇹 [MammaMia](https://github.com/UrloMythus/MammaMia)
739
+ ## 🇮🇹 [MammaMia](https://github.com/UrloMythus/MammaMia)
923
740
  Addon per Stremio che consente lo streaming HTTPS di film, serie, anime e TV in diretta in lingua italiana.
924
741
 
925
- ### 🧩 [streamingcommunity-unofficialapi](https://github.com/Blu-Tiger/streamingcommunity-unofficialapi)
742
+ ## 🧩 [streamingcommunity-unofficialapi](https://github.com/Blu-Tiger/streamingcommunity-unofficialapi)
926
743
  API non ufficiale per accedere ai contenuti del sito italiano StreamingCommunity.
927
744
 
928
- # Disclaimer
929
745
 
930
- This software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages, or other liability, whether in an action of contract, tort, or otherwise, arising from, out of, or in connection with the software or the use or other dealings in the software.
746
+ # Disclaimer
747
+ > **Note:** This software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages, or other liability, whether in an action of contract, tort, or otherwise, arising from, out of, or in connection with the software or the use or other dealings in the software.
931
748
 
932
749
  > **Note:** DASH downloads require a valid L3 CDM (Content Decryption Module) to proceed. This project does not provide, include, or facilitate obtaining any CDM. Users are responsible for ensuring compliance with all applicable laws and requirements regarding DRM and decryption modules.
750
+
751
+ ---
752
+ <div align="center">
753
+ **Made with ❤️ for streaming lovers**
754
+
755
+ *If you find this project useful, consider starring it! ⭐*
756
+ </div>