PyChromecast 13.1.0__tar.gz → 14.0.1__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 (55) hide show
  1. {PyChromecast-13.1.0/PyChromecast.egg-info → PyChromecast-14.0.1}/PKG-INFO +26 -12
  2. PyChromecast-13.1.0/README.rst → PyChromecast-14.0.1/PyChromecast.egg-info/PKG-INFO +38 -4
  3. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/PyChromecast.egg-info/SOURCES.txt +9 -5
  4. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/PyChromecast.egg-info/requires.txt +1 -1
  5. PyChromecast-13.1.0/PKG-INFO → PyChromecast-14.0.1/README.rst +21 -24
  6. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/pychromecast/__init__.py +148 -86
  7. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/pychromecast/config.py +9 -4
  8. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/pychromecast/const.py +6 -2
  9. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/pychromecast/controllers/__init__.py +94 -43
  10. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/pychromecast/controllers/bbciplayer.py +14 -4
  11. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/pychromecast/controllers/bbcsounds.py +14 -3
  12. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/pychromecast/controllers/bubbleupnp.py +2 -2
  13. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/pychromecast/controllers/dashcast.py +24 -6
  14. PyChromecast-14.0.1/pychromecast/controllers/homeassistant.py +225 -0
  15. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/pychromecast/controllers/homeassistant_media.py +1 -1
  16. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/pychromecast/controllers/media.py +211 -185
  17. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/pychromecast/controllers/multizone.py +135 -91
  18. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/pychromecast/controllers/nrkradio.py +2 -1
  19. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/pychromecast/controllers/nrktv.py +2 -1
  20. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/pychromecast/controllers/plex.py +151 -88
  21. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/pychromecast/controllers/receiver.py +131 -60
  22. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/pychromecast/controllers/shaka.py +1 -1
  23. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/pychromecast/controllers/supla.py +22 -16
  24. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/pychromecast/controllers/yleareena.py +26 -24
  25. PyChromecast-14.0.1/pychromecast/controllers/youtube.py +184 -0
  26. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/pychromecast/dial.py +85 -60
  27. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/pychromecast/discovery.py +157 -91
  28. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/pychromecast/error.py +22 -16
  29. PyChromecast-14.0.1/pychromecast/generated/authority_keys_pb2.py +29 -0
  30. PyChromecast-14.0.1/pychromecast/generated/authority_keys_pb2.pyi +19 -0
  31. PyChromecast-14.0.1/pychromecast/generated/cast_channel_pb2.py +45 -0
  32. PyChromecast-14.0.1/pychromecast/generated/cast_channel_pb2.pyi +103 -0
  33. {PyChromecast-13.1.0/pychromecast → PyChromecast-14.0.1/pychromecast/generated}/logging_pb2.py +29 -161
  34. PyChromecast-14.0.1/pychromecast/generated/logging_pb2.pyi +267 -0
  35. PyChromecast-14.0.1/pychromecast/generated/readme.txt +2 -0
  36. PyChromecast-14.0.1/pychromecast/models.py +45 -0
  37. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/pychromecast/quick_play.py +12 -2
  38. PyChromecast-14.0.1/pychromecast/response_handler.py +73 -0
  39. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/pychromecast/socket_client.py +203 -196
  40. PyChromecast-14.0.1/pyproject.toml +48 -0
  41. PyChromecast-14.0.1/requirements.txt +3 -0
  42. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/setup.cfg +3 -1
  43. PyChromecast-13.1.0/pychromecast/authority_keys_pb2.py +0 -46
  44. PyChromecast-13.1.0/pychromecast/cast_channel_pb2.py +0 -98
  45. PyChromecast-13.1.0/pychromecast/controllers/homeassistant.py +0 -150
  46. PyChromecast-13.1.0/pychromecast/controllers/youtube.py +0 -114
  47. PyChromecast-13.1.0/pychromecast/models.py +0 -27
  48. PyChromecast-13.1.0/pyproject.toml +0 -2
  49. PyChromecast-13.1.0/requirements.txt +0 -3
  50. PyChromecast-13.1.0/setup.py +0 -28
  51. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/LICENSE +0 -0
  52. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/MANIFEST.in +0 -0
  53. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/PyChromecast.egg-info/dependency_links.txt +0 -0
  54. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/PyChromecast.egg-info/not-zip-safe +0 -0
  55. {PyChromecast-13.1.0 → PyChromecast-14.0.1}/PyChromecast.egg-info/top_level.txt +0 -0
@@ -1,11 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyChromecast
3
- Version: 13.1.0
3
+ Version: 14.0.1
4
4
  Summary: Python module to talk to Google Chromecast.
5
- Home-page: https://github.com/balloob/pychromecast
6
- Author: Paulus Schoutsen
7
- Author-email: paulus@paulusschoutsen.nl
8
- License: MIT
5
+ Author-email: Paulus Schoutsen <paulus@paulusschoutsen.nl>
6
+ Project-URL: Homepage, https://github.com/home-assistant-libs/pychromecast
9
7
  Platform: any
10
8
  Classifier: Intended Audience :: Developers
11
9
  Classifier: License :: OSI Approved :: MIT License
@@ -13,10 +11,9 @@ Classifier: Operating System :: OS Independent
13
11
  Classifier: Programming Language :: Python
14
12
  Classifier: Programming Language :: Python :: 3
15
13
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
14
+ Requires-Python: >=3.11.0
15
+ Description-Content-Type: text/x-rst
16
16
  License-File: LICENSE
17
- Requires-Dist: protobuf>=3.19.1
18
- Requires-Dist: zeroconf>=0.25.1
19
- Requires-Dist: casttube>=0.2.0
20
17
 
21
18
  pychromecast |Build Status|
22
19
  ===========================
@@ -24,7 +21,7 @@ pychromecast |Build Status|
24
21
  .. |Build Status| image:: https://travis-ci.org/balloob/pychromecast.svg?branch=master
25
22
  :target: https://travis-ci.org/balloob/pychromecast
26
23
 
27
- Library for Python 3.6+ to communicate with the Google Chromecast. It
24
+ Library for Python 3.11+ to communicate with the Google Chromecast. It
28
25
  currently supports:
29
26
 
30
27
  - Auto discovering connected Chromecasts on the network
@@ -67,6 +64,16 @@ How to use
67
64
  >> [cc.cast_info.friendly_name for cc in chromecasts]
68
65
  ['Living Room']
69
66
 
67
+ >> # Discover and connect to more than one device
68
+ >> chromecasts, browser = pychromecast.get_listed_chromecasts(friendly_names=["Living Room","Bed Room","Kitchen"])
69
+ >> [cc.device.friendly_name for cc in chromecasts]
70
+ ["Living Room","Bed Room","Kitchen"]
71
+
72
+ >> # If you are seeing less devices get discovered than expected add the below parameter. You can lessen or extend the timeout as needed.
73
+ >> chromecasts, browser = pychromecast.get_listed_chromecasts(friendly_names=["Living Room","Bed Room","Kitchen"],discovery_timeout=30)
74
+ >> [cc.device.friendly_name for cc in chromecasts]
75
+ ["Living Room","Bed Room","Kitchen"]
76
+
70
77
  >> cast = chromecasts[0]
71
78
  >> # Start worker thread and wait for cast device to be ready
72
79
  >> cast.wait()
@@ -167,6 +174,16 @@ to the IGNORE\_CEC list in PyChromecast like in the example below.
167
174
  pychromecast.IGNORE_CEC.append('*') # Ignore CEC on all devices
168
175
  pychromecast.IGNORE_CEC.append('Living Room') # Ignore CEC on Chromecasts named Living Room
169
176
 
177
+ Networking requirements
178
+ -----------------------
179
+ Pychromecast relies on mDNS to discover cast devices. The mDNS protocol relies on multicast UDP on port 5353 which comes with several implications for discovery to work:
180
+
181
+ - Multicast UDP must be forwarded by WiFI routers; some WiFi routers are known to drop multicast UDP traffic.
182
+ - The device running pychromecast must allow both inbound and outbound traffic on port 5353.
183
+ - The device running pychromecast must be on the same subnet as the cast devices because mDNS packets are not routed across subnets.
184
+
185
+ If not all of these conditions are met, discovery will not work. In cases where these conditions are impossible to meet, it's possible to pass a list of known IP-addresses or host names to the discovery functions.
186
+
170
187
  Thanks
171
188
  ------
172
189
 
@@ -174,7 +191,4 @@ I would like to thank `Fred Clift`_ for laying the socket client ground
174
191
  work. Without him it would not have been possible!
175
192
 
176
193
  .. _Linux style wildcard: http://tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm
177
- .. _@am0s: https://github.com/am0s
178
- .. _@rmkraus: https://github.com/rmkraus
179
- .. _@balloob: https://github.com/balloob
180
194
  .. _Fred Clift: https://github.com/minektur
@@ -1,10 +1,27 @@
1
+ Metadata-Version: 2.1
2
+ Name: PyChromecast
3
+ Version: 14.0.1
4
+ Summary: Python module to talk to Google Chromecast.
5
+ Author-email: Paulus Schoutsen <paulus@paulusschoutsen.nl>
6
+ Project-URL: Homepage, https://github.com/home-assistant-libs/pychromecast
7
+ Platform: any
8
+ Classifier: Intended Audience :: Developers
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Operating System :: OS Independent
11
+ Classifier: Programming Language :: Python
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
14
+ Requires-Python: >=3.11.0
15
+ Description-Content-Type: text/x-rst
16
+ License-File: LICENSE
17
+
1
18
  pychromecast |Build Status|
2
19
  ===========================
3
20
 
4
21
  .. |Build Status| image:: https://travis-ci.org/balloob/pychromecast.svg?branch=master
5
22
  :target: https://travis-ci.org/balloob/pychromecast
6
23
 
7
- Library for Python 3.6+ to communicate with the Google Chromecast. It
24
+ Library for Python 3.11+ to communicate with the Google Chromecast. It
8
25
  currently supports:
9
26
 
10
27
  - Auto discovering connected Chromecasts on the network
@@ -47,6 +64,16 @@ How to use
47
64
  >> [cc.cast_info.friendly_name for cc in chromecasts]
48
65
  ['Living Room']
49
66
 
67
+ >> # Discover and connect to more than one device
68
+ >> chromecasts, browser = pychromecast.get_listed_chromecasts(friendly_names=["Living Room","Bed Room","Kitchen"])
69
+ >> [cc.device.friendly_name for cc in chromecasts]
70
+ ["Living Room","Bed Room","Kitchen"]
71
+
72
+ >> # If you are seeing less devices get discovered than expected add the below parameter. You can lessen or extend the timeout as needed.
73
+ >> chromecasts, browser = pychromecast.get_listed_chromecasts(friendly_names=["Living Room","Bed Room","Kitchen"],discovery_timeout=30)
74
+ >> [cc.device.friendly_name for cc in chromecasts]
75
+ ["Living Room","Bed Room","Kitchen"]
76
+
50
77
  >> cast = chromecasts[0]
51
78
  >> # Start worker thread and wait for cast device to be ready
52
79
  >> cast.wait()
@@ -147,6 +174,16 @@ to the IGNORE\_CEC list in PyChromecast like in the example below.
147
174
  pychromecast.IGNORE_CEC.append('*') # Ignore CEC on all devices
148
175
  pychromecast.IGNORE_CEC.append('Living Room') # Ignore CEC on Chromecasts named Living Room
149
176
 
177
+ Networking requirements
178
+ -----------------------
179
+ Pychromecast relies on mDNS to discover cast devices. The mDNS protocol relies on multicast UDP on port 5353 which comes with several implications for discovery to work:
180
+
181
+ - Multicast UDP must be forwarded by WiFI routers; some WiFi routers are known to drop multicast UDP traffic.
182
+ - The device running pychromecast must allow both inbound and outbound traffic on port 5353.
183
+ - The device running pychromecast must be on the same subnet as the cast devices because mDNS packets are not routed across subnets.
184
+
185
+ If not all of these conditions are met, discovery will not work. In cases where these conditions are impossible to meet, it's possible to pass a list of known IP-addresses or host names to the discovery functions.
186
+
150
187
  Thanks
151
188
  ------
152
189
 
@@ -154,7 +191,4 @@ I would like to thank `Fred Clift`_ for laying the socket client ground
154
191
  work. Without him it would not have been possible!
155
192
 
156
193
  .. _Linux style wildcard: http://tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm
157
- .. _@am0s: https://github.com/am0s
158
- .. _@rmkraus: https://github.com/rmkraus
159
- .. _@balloob: https://github.com/balloob
160
194
  .. _Fred Clift: https://github.com/minektur
@@ -4,7 +4,6 @@ README.rst
4
4
  pyproject.toml
5
5
  requirements.txt
6
6
  setup.cfg
7
- setup.py
8
7
  PyChromecast.egg-info/PKG-INFO
9
8
  PyChromecast.egg-info/SOURCES.txt
10
9
  PyChromecast.egg-info/dependency_links.txt
@@ -12,16 +11,14 @@ PyChromecast.egg-info/not-zip-safe
12
11
  PyChromecast.egg-info/requires.txt
13
12
  PyChromecast.egg-info/top_level.txt
14
13
  pychromecast/__init__.py
15
- pychromecast/authority_keys_pb2.py
16
- pychromecast/cast_channel_pb2.py
17
14
  pychromecast/config.py
18
15
  pychromecast/const.py
19
16
  pychromecast/dial.py
20
17
  pychromecast/discovery.py
21
18
  pychromecast/error.py
22
- pychromecast/logging_pb2.py
23
19
  pychromecast/models.py
24
20
  pychromecast/quick_play.py
21
+ pychromecast/response_handler.py
25
22
  pychromecast/socket_client.py
26
23
  pychromecast/controllers/__init__.py
27
24
  pychromecast/controllers/bbciplayer.py
@@ -39,4 +36,11 @@ pychromecast/controllers/receiver.py
39
36
  pychromecast/controllers/shaka.py
40
37
  pychromecast/controllers/supla.py
41
38
  pychromecast/controllers/yleareena.py
42
- pychromecast/controllers/youtube.py
39
+ pychromecast/controllers/youtube.py
40
+ pychromecast/generated/authority_keys_pb2.py
41
+ pychromecast/generated/authority_keys_pb2.pyi
42
+ pychromecast/generated/cast_channel_pb2.py
43
+ pychromecast/generated/cast_channel_pb2.pyi
44
+ pychromecast/generated/logging_pb2.py
45
+ pychromecast/generated/logging_pb2.pyi
46
+ pychromecast/generated/readme.txt
@@ -1,3 +1,3 @@
1
- protobuf>=3.19.1
1
+ protobuf>=4.25.1
2
2
  zeroconf>=0.25.1
3
3
  casttube>=0.2.0
@@ -1,30 +1,10 @@
1
- Metadata-Version: 2.1
2
- Name: PyChromecast
3
- Version: 13.1.0
4
- Summary: Python module to talk to Google Chromecast.
5
- Home-page: https://github.com/balloob/pychromecast
6
- Author: Paulus Schoutsen
7
- Author-email: paulus@paulusschoutsen.nl
8
- License: MIT
9
- Platform: any
10
- Classifier: Intended Audience :: Developers
11
- Classifier: License :: OSI Approved :: MIT License
12
- Classifier: Operating System :: OS Independent
13
- Classifier: Programming Language :: Python
14
- Classifier: Programming Language :: Python :: 3
15
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
16
- License-File: LICENSE
17
- Requires-Dist: protobuf>=3.19.1
18
- Requires-Dist: zeroconf>=0.25.1
19
- Requires-Dist: casttube>=0.2.0
20
-
21
1
  pychromecast |Build Status|
22
2
  ===========================
23
3
 
24
4
  .. |Build Status| image:: https://travis-ci.org/balloob/pychromecast.svg?branch=master
25
5
  :target: https://travis-ci.org/balloob/pychromecast
26
6
 
27
- Library for Python 3.6+ to communicate with the Google Chromecast. It
7
+ Library for Python 3.11+ to communicate with the Google Chromecast. It
28
8
  currently supports:
29
9
 
30
10
  - Auto discovering connected Chromecasts on the network
@@ -67,6 +47,16 @@ How to use
67
47
  >> [cc.cast_info.friendly_name for cc in chromecasts]
68
48
  ['Living Room']
69
49
 
50
+ >> # Discover and connect to more than one device
51
+ >> chromecasts, browser = pychromecast.get_listed_chromecasts(friendly_names=["Living Room","Bed Room","Kitchen"])
52
+ >> [cc.device.friendly_name for cc in chromecasts]
53
+ ["Living Room","Bed Room","Kitchen"]
54
+
55
+ >> # If you are seeing less devices get discovered than expected add the below parameter. You can lessen or extend the timeout as needed.
56
+ >> chromecasts, browser = pychromecast.get_listed_chromecasts(friendly_names=["Living Room","Bed Room","Kitchen"],discovery_timeout=30)
57
+ >> [cc.device.friendly_name for cc in chromecasts]
58
+ ["Living Room","Bed Room","Kitchen"]
59
+
70
60
  >> cast = chromecasts[0]
71
61
  >> # Start worker thread and wait for cast device to be ready
72
62
  >> cast.wait()
@@ -167,6 +157,16 @@ to the IGNORE\_CEC list in PyChromecast like in the example below.
167
157
  pychromecast.IGNORE_CEC.append('*') # Ignore CEC on all devices
168
158
  pychromecast.IGNORE_CEC.append('Living Room') # Ignore CEC on Chromecasts named Living Room
169
159
 
160
+ Networking requirements
161
+ -----------------------
162
+ Pychromecast relies on mDNS to discover cast devices. The mDNS protocol relies on multicast UDP on port 5353 which comes with several implications for discovery to work:
163
+
164
+ - Multicast UDP must be forwarded by WiFI routers; some WiFi routers are known to drop multicast UDP traffic.
165
+ - The device running pychromecast must allow both inbound and outbound traffic on port 5353.
166
+ - The device running pychromecast must be on the same subnet as the cast devices because mDNS packets are not routed across subnets.
167
+
168
+ If not all of these conditions are met, discovery will not work. In cases where these conditions are impossible to meet, it's possible to pass a list of known IP-addresses or host names to the discovery functions.
169
+
170
170
  Thanks
171
171
  ------
172
172
 
@@ -174,7 +174,4 @@ I would like to thank `Fred Clift`_ for laying the socket client ground
174
174
  work. Without him it would not have been possible!
175
175
 
176
176
  .. _Linux style wildcard: http://tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm
177
- .. _@am0s: https://github.com/am0s
178
- .. _@rmkraus: https://github.com/rmkraus
179
- .. _@balloob: https://github.com/balloob
180
177
  .. _Fred Clift: https://github.com/minektur