rx-player 4.4.0-dev.2025063000 → 4.4.0-dev.2025072300

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 (212) hide show
  1. package/.aider.chat.history.md +98 -81
  2. package/CHANGELOG.md +6 -1
  3. package/VERSION +1 -1
  4. package/dist/commonjs/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  5. package/dist/commonjs/__GENERATED_CODE/embedded_worker.js +1 -1
  6. package/dist/commonjs/compat/browser_compatibility_types.d.ts +8 -2
  7. package/dist/commonjs/compat/browser_compatibility_types.d.ts.map +1 -1
  8. package/dist/commonjs/compat/eme/eme-api-implementation.d.ts +9 -10
  9. package/dist/commonjs/compat/eme/eme-api-implementation.d.ts.map +1 -1
  10. package/dist/commonjs/compat/eme/eme-api-implementation.js +6 -11
  11. package/dist/commonjs/compat/eme/index.d.ts +2 -2
  12. package/dist/commonjs/compat/eme/index.d.ts.map +1 -1
  13. package/dist/commonjs/core/main/worker/content_preparer.d.ts +2 -6
  14. package/dist/commonjs/core/main/worker/content_preparer.d.ts.map +1 -1
  15. package/dist/commonjs/core/main/worker/content_preparer.js +2 -10
  16. package/dist/commonjs/core/main/worker/worker_main.d.ts.map +1 -1
  17. package/dist/commonjs/core/main/worker/worker_main.js +353 -319
  18. package/dist/commonjs/core/stream/orchestrator/get_time_ranges_for_content.d.ts +2 -2
  19. package/dist/commonjs/core/stream/orchestrator/get_time_ranges_for_content.d.ts.map +1 -1
  20. package/dist/commonjs/core/stream/orchestrator/get_time_ranges_for_content.js +38 -5
  21. package/dist/commonjs/core/stream/orchestrator/stream_orchestrator.d.ts +2 -2
  22. package/dist/commonjs/core/stream/orchestrator/stream_orchestrator.d.ts.map +1 -1
  23. package/dist/commonjs/experimental/tools/DummyMediaElement/eme.d.ts +225 -0
  24. package/dist/commonjs/experimental/tools/DummyMediaElement/eme.d.ts.map +1 -0
  25. package/dist/commonjs/experimental/tools/DummyMediaElement/eme.js +895 -0
  26. package/dist/commonjs/experimental/tools/DummyMediaElement/html5.d.ts +376 -0
  27. package/dist/commonjs/experimental/tools/DummyMediaElement/html5.d.ts.map +1 -0
  28. package/dist/commonjs/experimental/tools/DummyMediaElement/html5.js +970 -0
  29. package/dist/commonjs/experimental/tools/DummyMediaElement/index.d.ts +3 -0
  30. package/dist/commonjs/experimental/tools/DummyMediaElement/index.d.ts.map +1 -0
  31. package/dist/commonjs/experimental/tools/DummyMediaElement/index.js +4 -0
  32. package/dist/commonjs/experimental/tools/DummyMediaElement/mse.d.ts +217 -0
  33. package/dist/commonjs/experimental/tools/DummyMediaElement/mse.d.ts.map +1 -0
  34. package/dist/commonjs/experimental/tools/DummyMediaElement/mse.js +702 -0
  35. package/dist/commonjs/experimental/tools/DummyMediaElement/utils.d.ts +33 -0
  36. package/dist/commonjs/experimental/tools/DummyMediaElement/utils.d.ts.map +1 -0
  37. package/dist/commonjs/experimental/tools/DummyMediaElement/utils.js +510 -0
  38. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/api.d.ts.map +1 -1
  39. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/api.js +4 -4
  40. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.d.ts.map +1 -1
  41. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.js +4 -4
  42. package/dist/commonjs/main_thread/api/public_api.d.ts.map +1 -1
  43. package/dist/commonjs/main_thread/api/public_api.js +3 -2
  44. package/dist/commonjs/main_thread/decrypt/content_decryptor.d.ts +7 -8
  45. package/dist/commonjs/main_thread/decrypt/content_decryptor.d.ts.map +1 -1
  46. package/dist/commonjs/main_thread/decrypt/content_decryptor.js +6 -13
  47. package/dist/commonjs/main_thread/decrypt/find_key_system.d.ts +5 -2
  48. package/dist/commonjs/main_thread/decrypt/find_key_system.d.ts.map +1 -1
  49. package/dist/commonjs/main_thread/decrypt/find_key_system.js +8 -7
  50. package/dist/commonjs/main_thread/decrypt/get_media_keys.d.ts +3 -1
  51. package/dist/commonjs/main_thread/decrypt/get_media_keys.d.ts.map +1 -1
  52. package/dist/commonjs/main_thread/decrypt/get_media_keys.js +3 -2
  53. package/dist/commonjs/main_thread/decrypt/init_media_keys.d.ts +3 -1
  54. package/dist/commonjs/main_thread/decrypt/init_media_keys.d.ts.map +1 -1
  55. package/dist/commonjs/main_thread/decrypt/init_media_keys.js +3 -2
  56. package/dist/commonjs/main_thread/decrypt/utils/persistent_sessions_store.d.ts.map +1 -1
  57. package/dist/commonjs/main_thread/decrypt/utils/persistent_sessions_store.js +16 -1
  58. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts +7 -1
  59. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -1
  60. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.js +140 -66
  61. package/dist/commonjs/main_thread/init/utils/create_media_source.d.ts.map +1 -1
  62. package/dist/commonjs/main_thread/init/utils/create_media_source.js +1 -1
  63. package/dist/commonjs/main_thread/init/utils/initial_seek_and_play.js +2 -2
  64. package/dist/commonjs/main_thread/init/utils/initialize_content_decryption.d.ts.map +1 -1
  65. package/dist/commonjs/main_thread/init/utils/initialize_content_decryption.js +5 -2
  66. package/dist/commonjs/main_thread/text_displayer/html/html_text_displayer.d.ts.map +1 -1
  67. package/dist/commonjs/main_thread/text_displayer/html/html_text_displayer.js +2 -1
  68. package/dist/commonjs/mse/main_media_source_interface.d.ts +2 -2
  69. package/dist/commonjs/mse/main_media_source_interface.d.ts.map +1 -1
  70. package/dist/commonjs/mse/main_media_source_interface.js +2 -2
  71. package/dist/commonjs/multithread_types.d.ts +16 -3
  72. package/dist/commonjs/multithread_types.d.ts.map +1 -1
  73. package/dist/commonjs/parsers/containers/isobmff/drm/playready.d.ts +1 -1
  74. package/dist/commonjs/parsers/containers/isobmff/drm/playready.js +1 -1
  75. package/dist/commonjs/parsers/containers/isobmff/extract_complete_chunks.d.ts +5 -0
  76. package/dist/commonjs/parsers/containers/isobmff/extract_complete_chunks.d.ts.map +1 -1
  77. package/dist/commonjs/parsers/containers/isobmff/extract_complete_chunks.js +19 -0
  78. package/dist/commonjs/parsers/containers/isobmff/index.d.ts +2 -1
  79. package/dist/commonjs/parsers/containers/isobmff/index.d.ts.map +1 -1
  80. package/dist/commonjs/parsers/containers/isobmff/index.js +2 -1
  81. package/dist/commonjs/tools/TextTrackRenderer/text_track_renderer.d.ts +1 -1
  82. package/dist/commonjs/tools/TextTrackRenderer/text_track_renderer.d.ts.map +1 -1
  83. package/dist/commonjs/tools/TextTrackRenderer/text_track_renderer.js +2 -1
  84. package/dist/es2017/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  85. package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
  86. package/dist/es2017/compat/browser_compatibility_types.d.ts +8 -2
  87. package/dist/es2017/compat/browser_compatibility_types.d.ts.map +1 -1
  88. package/dist/es2017/compat/eme/eme-api-implementation.d.ts +9 -10
  89. package/dist/es2017/compat/eme/eme-api-implementation.d.ts.map +1 -1
  90. package/dist/es2017/compat/eme/eme-api-implementation.js +6 -12
  91. package/dist/es2017/compat/eme/index.d.ts +2 -2
  92. package/dist/es2017/compat/eme/index.d.ts.map +1 -1
  93. package/dist/es2017/compat/eme/index.js +2 -2
  94. package/dist/es2017/core/main/worker/content_preparer.d.ts +2 -6
  95. package/dist/es2017/core/main/worker/content_preparer.d.ts.map +1 -1
  96. package/dist/es2017/core/main/worker/content_preparer.js +2 -10
  97. package/dist/es2017/core/main/worker/worker_main.d.ts.map +1 -1
  98. package/dist/es2017/core/main/worker/worker_main.js +336 -302
  99. package/dist/es2017/core/stream/orchestrator/get_time_ranges_for_content.d.ts +2 -2
  100. package/dist/es2017/core/stream/orchestrator/get_time_ranges_for_content.d.ts.map +1 -1
  101. package/dist/es2017/core/stream/orchestrator/get_time_ranges_for_content.js +24 -4
  102. package/dist/es2017/core/stream/orchestrator/stream_orchestrator.d.ts +2 -2
  103. package/dist/es2017/core/stream/orchestrator/stream_orchestrator.d.ts.map +1 -1
  104. package/dist/es2017/experimental/tools/DummyMediaElement/eme.d.ts +225 -0
  105. package/dist/es2017/experimental/tools/DummyMediaElement/eme.d.ts.map +1 -0
  106. package/dist/es2017/experimental/tools/DummyMediaElement/eme.js +806 -0
  107. package/dist/es2017/experimental/tools/DummyMediaElement/html5.d.ts +376 -0
  108. package/dist/es2017/experimental/tools/DummyMediaElement/html5.d.ts.map +1 -0
  109. package/dist/es2017/experimental/tools/DummyMediaElement/html5.js +863 -0
  110. package/dist/es2017/experimental/tools/DummyMediaElement/index.d.ts +3 -0
  111. package/dist/es2017/experimental/tools/DummyMediaElement/index.d.ts.map +1 -0
  112. package/dist/es2017/experimental/tools/DummyMediaElement/index.js +2 -0
  113. package/dist/es2017/experimental/tools/DummyMediaElement/mse.d.ts +217 -0
  114. package/dist/es2017/experimental/tools/DummyMediaElement/mse.d.ts.map +1 -0
  115. package/dist/es2017/experimental/tools/DummyMediaElement/mse.js +586 -0
  116. package/dist/es2017/experimental/tools/DummyMediaElement/utils.d.ts +33 -0
  117. package/dist/es2017/experimental/tools/DummyMediaElement/utils.d.ts.map +1 -0
  118. package/dist/es2017/experimental/tools/DummyMediaElement/utils.js +457 -0
  119. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/api.d.ts.map +1 -1
  120. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/api.js +3 -3
  121. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.d.ts.map +1 -1
  122. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.js +3 -3
  123. package/dist/es2017/main_thread/api/public_api.d.ts.map +1 -1
  124. package/dist/es2017/main_thread/api/public_api.js +3 -2
  125. package/dist/es2017/main_thread/decrypt/content_decryptor.d.ts +7 -8
  126. package/dist/es2017/main_thread/decrypt/content_decryptor.d.ts.map +1 -1
  127. package/dist/es2017/main_thread/decrypt/content_decryptor.js +7 -14
  128. package/dist/es2017/main_thread/decrypt/find_key_system.d.ts +5 -2
  129. package/dist/es2017/main_thread/decrypt/find_key_system.d.ts.map +1 -1
  130. package/dist/es2017/main_thread/decrypt/find_key_system.js +5 -4
  131. package/dist/es2017/main_thread/decrypt/get_media_keys.d.ts +3 -1
  132. package/dist/es2017/main_thread/decrypt/get_media_keys.d.ts.map +1 -1
  133. package/dist/es2017/main_thread/decrypt/get_media_keys.js +3 -2
  134. package/dist/es2017/main_thread/decrypt/init_media_keys.d.ts +3 -1
  135. package/dist/es2017/main_thread/decrypt/init_media_keys.d.ts.map +1 -1
  136. package/dist/es2017/main_thread/decrypt/init_media_keys.js +3 -2
  137. package/dist/es2017/main_thread/decrypt/utils/persistent_sessions_store.d.ts.map +1 -1
  138. package/dist/es2017/main_thread/decrypt/utils/persistent_sessions_store.js +12 -1
  139. package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts +7 -1
  140. package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -1
  141. package/dist/es2017/main_thread/init/multi_thread_content_initializer.js +140 -66
  142. package/dist/es2017/main_thread/init/utils/create_media_source.d.ts.map +1 -1
  143. package/dist/es2017/main_thread/init/utils/create_media_source.js +1 -1
  144. package/dist/es2017/main_thread/init/utils/initial_seek_and_play.js +2 -2
  145. package/dist/es2017/main_thread/init/utils/initialize_content_decryption.d.ts.map +1 -1
  146. package/dist/es2017/main_thread/init/utils/initialize_content_decryption.js +5 -2
  147. package/dist/es2017/main_thread/text_displayer/html/html_text_displayer.d.ts.map +1 -1
  148. package/dist/es2017/main_thread/text_displayer/html/html_text_displayer.js +2 -1
  149. package/dist/es2017/mse/main_media_source_interface.d.ts +2 -2
  150. package/dist/es2017/mse/main_media_source_interface.d.ts.map +1 -1
  151. package/dist/es2017/mse/main_media_source_interface.js +2 -2
  152. package/dist/es2017/multithread_types.d.ts +16 -3
  153. package/dist/es2017/multithread_types.d.ts.map +1 -1
  154. package/dist/es2017/parsers/containers/isobmff/drm/playready.d.ts +1 -1
  155. package/dist/es2017/parsers/containers/isobmff/drm/playready.js +1 -1
  156. package/dist/es2017/parsers/containers/isobmff/extract_complete_chunks.d.ts +5 -0
  157. package/dist/es2017/parsers/containers/isobmff/extract_complete_chunks.d.ts.map +1 -1
  158. package/dist/es2017/parsers/containers/isobmff/extract_complete_chunks.js +18 -0
  159. package/dist/es2017/parsers/containers/isobmff/index.d.ts +2 -1
  160. package/dist/es2017/parsers/containers/isobmff/index.d.ts.map +1 -1
  161. package/dist/es2017/parsers/containers/isobmff/index.js +2 -1
  162. package/dist/es2017/tools/TextTrackRenderer/text_track_renderer.d.ts +1 -1
  163. package/dist/es2017/tools/TextTrackRenderer/text_track_renderer.d.ts.map +1 -1
  164. package/dist/es2017/tools/TextTrackRenderer/text_track_renderer.js +2 -1
  165. package/dist/rx-player.js +112 -44
  166. package/dist/rx-player.min.js +20 -20
  167. package/dist/worker.js +6 -6
  168. package/package.json +8 -8
  169. package/src/__GENERATED_CODE/embedded_worker.ts +1 -1
  170. package/src/compat/browser_compatibility_types.ts +10 -2
  171. package/src/compat/eme/eme-api-implementation.ts +9 -17
  172. package/src/compat/eme/index.ts +2 -2
  173. package/src/core/main/worker/content_preparer.ts +2 -15
  174. package/src/core/main/worker/worker_main.ts +443 -386
  175. package/src/core/stream/orchestrator/README.md +0 -1
  176. package/src/core/stream/orchestrator/get_time_ranges_for_content.ts +28 -6
  177. package/src/core/stream/orchestrator/stream_orchestrator.ts +2 -2
  178. package/src/experimental/tools/DummyMediaElement/eme.ts +1079 -0
  179. package/src/experimental/tools/DummyMediaElement/html5.ts +1176 -0
  180. package/src/experimental/tools/DummyMediaElement/index.ts +2 -0
  181. package/src/experimental/tools/DummyMediaElement/mse.ts +834 -0
  182. package/src/experimental/tools/DummyMediaElement/utils.ts +524 -0
  183. package/src/experimental/tools/mediaCapabilitiesProber/api.ts +4 -3
  184. package/src/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.ts +4 -3
  185. package/src/experimental/tools/mediaCapabilitiesProber/probers/__tests__/HDCPPolicy.test.ts +7 -7
  186. package/src/main_thread/api/public_api.ts +3 -2
  187. package/src/main_thread/decrypt/__tests__/__global__/find_key_system.test.ts +33 -17
  188. package/src/main_thread/decrypt/__tests__/__global__/get_license.test.ts +5 -1
  189. package/src/main_thread/decrypt/__tests__/__global__/init_data.test.ts +37 -9
  190. package/src/main_thread/decrypt/__tests__/__global__/media_key_system_access.test.ts +21 -4
  191. package/src/main_thread/decrypt/__tests__/__global__/media_keys.test.ts +42 -11
  192. package/src/main_thread/decrypt/__tests__/__global__/server_certificate.test.ts +23 -7
  193. package/src/main_thread/decrypt/__tests__/__global__/utils.ts +26 -25
  194. package/src/main_thread/decrypt/__tests__/find_key_system.test.ts +25 -3
  195. package/src/main_thread/decrypt/content_decryptor.ts +17 -15
  196. package/src/main_thread/decrypt/find_key_system.ts +7 -3
  197. package/src/main_thread/decrypt/get_media_keys.ts +4 -0
  198. package/src/main_thread/decrypt/init_media_keys.ts +4 -0
  199. package/src/main_thread/decrypt/utils/persistent_sessions_store.ts +53 -1
  200. package/src/main_thread/init/multi_thread_content_initializer.ts +135 -40
  201. package/src/main_thread/init/utils/__tests__/update_manifest_codec_support.test.ts +17 -8
  202. package/src/main_thread/init/utils/create_media_source.ts +4 -1
  203. package/src/main_thread/init/utils/initial_seek_and_play.ts +2 -2
  204. package/src/main_thread/init/utils/initialize_content_decryption.ts +4 -2
  205. package/src/main_thread/text_displayer/html/html_text_displayer.ts +2 -1
  206. package/src/mse/main_media_source_interface.ts +3 -2
  207. package/src/multithread_types.ts +17 -2
  208. package/src/parsers/containers/isobmff/drm/playready.ts +1 -1
  209. package/src/parsers/containers/isobmff/extract_complete_chunks.ts +21 -0
  210. package/src/parsers/containers/isobmff/index.ts +2 -1
  211. package/src/parsers/manifest/dash/wasm-parser/README.md +0 -1
  212. package/src/tools/TextTrackRenderer/text_track_renderer.ts +2 -2
@@ -88,17 +88,20 @@
88
88
  > > "quotaId": "GenerateContentInputTokensPerModelPerDay-FreeTier",\n "quotaDimensions":
89
89
  > > {\n "model": "gemini-2.0-pro-exp",\n "location": "global"\n }\n }\n ]\n },\n {\n
90
90
  > > "@type": "type.googleapis.com/google.rpc.Help",\n "links": [\n {\n "description": > >
91
+ > >
91
92
  > > > > "Learn more > > about Gemini API quotas",\n "url": > > > >
92
- > > "https://ai.google.dev/gemini-api/docs/rate-limits"\n > > }\n ]\n },\n {\n "@type":
93
- > > "type.googleapis.com/google.rpc.RetryInfo",\n "retryDelay": "30s"\n }\n ]\n }\n}\n'
94
- > > The API provider has rate limited you. Try again later or check your quotas.
95
- > > Retrying in 0.2 seconds...
96
- > > litellm.RateLimitError: litellm.RateLimitError: VertexAIException - b'{\n "error": {\n
97
- > > "code": 429,\n "message": "You exceeded your current quota, please check your plan and
98
- > > billing details. For more information on this error, head to:
99
- > > https://ai.google.dev/gemini-api/docs/rate-limits.",\n "status":
100
- > > "RESOURCE_EXHAUSTED",\n "details": [\n {\n "@type":
101
- > > "type.googleapis.com/google.rpc.QuotaFailure",\n "violations": [\n {\n "quotaMetric":
93
+ > > > > "https://ai.google.dev/gemini-api/docs/rate-limits"\n > > }\n ]\n },\n {\n
94
+ > > > > "@type": "type.googleapis.com/google.rpc.RetryInfo",\n "retryDelay": "30s"\n }\n
95
+ > > > > ]\n }\n}\n'
96
+ > > > > The API provider has rate limited you. Try again later or check your quotas.
97
+ > > > > Retrying in 0.2 seconds...
98
+ > > > > litellm.RateLimitError: litellm.RateLimitError: VertexAIException - b'{\n "error":
99
+ > > > > {\n "code": 429,\n "message": "You exceeded your current quota, please check your
100
+ > > > > plan and billing details. For more information on this error, head to:
101
+ > > > > https://ai.google.dev/gemini-api/docs/rate-limits.",\n "status":
102
+ > > > > "RESOURCE_EXHAUSTED",\n "details": [\n {\n "@type":
103
+ > > > > "type.googleapis.com/google.rpc.QuotaFailure",\n "violations": [\n {\n
104
+ > > > > "quotaMetric":
102
105
  > >
103
106
  > > > > "generativelanguage.googleapis.com/generate_content_free_tier_input_token_count",\n >
104
107
  > > > > "quotaId": "GenerateContentInputTokensPerModelPerMinute-FreeTier",\n
@@ -120,18 +123,20 @@
120
123
  > > > > "quotaDimensions": {\n > > "model": "gemini-2.0-pro-exp",\n "location": "global"\n
121
124
  > > > > }\n }\n ]\n },\n {\n "@type": "type.googleapis.com/google.rpc.Help",\n "links":
122
125
  > > > > [\n {\n "description": > > "Learn more > > about Gemini API quotas",\n "url": > >
126
+ > > > >
123
127
  > > > > > > > > "https://ai.google.dev/gemini-api/docs/rate-limits"\n > > }\n ]\n },\n {\n
124
- > > > > "@type": "type.googleapis.com/google.rpc.RetryInfo",\n "retryDelay": "30s"\n }\n
125
- > > > > ]\n }\n}\n'
126
- > > > > The API provider has rate limited you. Try again later or check your quotas.
127
- > > > > Retrying in 0.5 seconds...
128
- > > > > litellm.RateLimitError: litellm.RateLimitError: VertexAIException - b'{\n "error":
129
- > > > > {\n "code": 429,\n "message": "You exceeded your current quota, please check your
130
- > > > > plan and billing details. For more information on this error, head to:
131
- > > > > https://ai.google.dev/gemini-api/docs/rate-limits.",\n "status":
132
- > > > > "RESOURCE_EXHAUSTED",\n "details": [\n {\n "@type":
133
- > > > > "type.googleapis.com/google.rpc.QuotaFailure",\n "violations": [\n {\n
134
- > > > > "quotaMetric":
128
+ > > > > > > > > "@type": "type.googleapis.com/google.rpc.RetryInfo",\n "retryDelay":
129
+ > > > > > > > > "30s"\n }\n ]\n }\n}\n'
130
+ > > > > > > > > The API provider has rate limited you. Try again later or check your
131
+ > > > > > > > > quotas.
132
+ > > > > > > > > Retrying in 0.5 seconds...
133
+ > > > > > > > > litellm.RateLimitError: litellm.RateLimitError: VertexAIException - b'{\n
134
+ > > > > > > > > "error": {\n "code": 429,\n "message": "You exceeded your current quota,
135
+ > > > > > > > > please check your plan and billing details. For more information on this
136
+ > > > > > > > > error, head to: https://ai.google.dev/gemini-api/docs/rate-limits.",\n
137
+ > > > > > > > > "status": "RESOURCE_EXHAUSTED",\n "details": [\n {\n "@type":
138
+ > > > > > > > > "type.googleapis.com/google.rpc.QuotaFailure",\n "violations": [\n {\n
139
+ > > > > > > > > "quotaMetric":
135
140
  > > > >
136
141
  > > > > "generativelanguage.googleapis.com/generate_content_free_tier_input_token_count",\n >
137
142
  > > > > "quotaId": "GenerateContentInputTokensPerModelPerMinute-FreeTier",\n
@@ -153,30 +158,33 @@
153
158
  > > > > "quotaDimensions": {\n > > "model": "gemini-2.0-pro-exp",\n "location": "global"\n
154
159
  > > > > }\n }\n ]\n },\n {\n "@type": "type.googleapis.com/google.rpc.Help",\n "links":
155
160
  > > > > [\n {\n > > "description": "Learn more > > about Gemini API quotas",\n "url": > >
161
+ > > > >
156
162
  > > > > > > > > "https://ai.google.dev/gemini-api/docs/rate-limits"\n > > }\n ]\n },\n {\n
157
- > > > > "@type": "type.googleapis.com/google.rpc.RetryInfo",\n "retryDelay": "29s"\n }\n
158
- > > > > ]\n }\n}\n'
159
- > > > > The API provider has rate limited you. Try again later or check your quotas.
160
- > > > > Retrying in 1.0 seconds...
161
- > > > > litellm.RateLimitError: litellm.RateLimitError: VertexAIException - b'{\n "error":
162
- > > > > {\n "code": 429,\n "message": "You exceeded your current quota, please check your
163
- > > > > plan and billing details. For more information on this error, head to:
164
- > > > > https://ai.google.dev/gemini-api/docs/rate-limits.",\n "status":
165
- > > > > "RESOURCE_EXHAUSTED",\n "details": [\n {\n "@type":
166
- > > > > "type.googleapis.com/google.rpc.QuotaFailure",\n "violations": [\n {\n
167
- > > > > "quotaMetric": > > > >
168
- > > > > "generativelanguage.googleapis.com/generate_content_free_tier_requests",\n > >
169
- > > > > "quotaId": > > "GenerateRequestsPerDayPerProjectPerModel-FreeTier",\n > >
170
- > > > > "quotaDimensions": {\n > > "location": "global",\n "model": "gemini-2.0-pro-exp"\n
171
- > > > > }\n > > },\n {\n "quotaMetric": > > > >
172
- > > > > "generativelanguage.googleapis.com/generate_content_free_tier_requests",\n
173
- > > > > "quotaId": > > > > "GenerateRequestsPerMinutePerProjectPerModel-FreeTier",\n
174
- > > > > "quotaDimensions": {\n > > > > "location": "global",\n "model":
175
- > > > > "gemini-2.0-pro-exp"\n }\n },\n {\n "quotaMetric": > > > >
176
- > > > > "generativelanguage.googleapis.com/generate_requests_per_model_per_day",\n > >
177
- > > > > "quotaId": > > "GenerateRequestsPerDayPerProjectPerModel"\n },\n {\n
178
- > > > > "quotaMetric": > > > >
179
- > > > > "generativelanguage.googleapis.com/generate_content_free_tier_input_token_count",\n
163
+ > > > > > > > > "@type": "type.googleapis.com/google.rpc.RetryInfo",\n "retryDelay":
164
+ > > > > > > > > "29s"\n }\n ]\n }\n}\n'
165
+ > > > > > > > > The API provider has rate limited you. Try again later or check your
166
+ > > > > > > > > quotas.
167
+ > > > > > > > > Retrying in 1.0 seconds...
168
+ > > > > > > > > litellm.RateLimitError: litellm.RateLimitError: VertexAIException - b'{\n
169
+ > > > > > > > > "error": {\n "code": 429,\n "message": "You exceeded your current quota,
170
+ > > > > > > > > please check your plan and billing details. For more information on this
171
+ > > > > > > > > error, head to: https://ai.google.dev/gemini-api/docs/rate-limits.",\n
172
+ > > > > > > > > "status": "RESOURCE_EXHAUSTED",\n "details": [\n {\n "@type":
173
+ > > > > > > > > "type.googleapis.com/google.rpc.QuotaFailure",\n "violations": [\n {\n
174
+ > > > > > > > > "quotaMetric": > > > >
175
+ > > > > > > > > "generativelanguage.googleapis.com/generate_content_free_tier_requests",\n > >
176
+ > > > > > > > > "quotaId": > > "GenerateRequestsPerDayPerProjectPerModel-FreeTier",\n > >
177
+ > > > > > > > > "quotaDimensions": {\n > > "location": "global",\n "model":
178
+ > > > > > > > > "gemini-2.0-pro-exp"\n }\n > > },\n {\n "quotaMetric": > > > >
179
+ > > > > > > > > "generativelanguage.googleapis.com/generate_content_free_tier_requests",\n
180
+ > > > > > > > > "quotaId": > > > >
181
+ > > > > > > > > "GenerateRequestsPerMinutePerProjectPerModel-FreeTier",\n
182
+ > > > > > > > > "quotaDimensions": {\n > > > > "location": "global",\n "model":
183
+ > > > > > > > > "gemini-2.0-pro-exp"\n }\n },\n {\n "quotaMetric": > > > >
184
+ > > > > > > > > "generativelanguage.googleapis.com/generate_requests_per_model_per_day",\n > >
185
+ > > > > > > > > "quotaId": > > "GenerateRequestsPerDayPerProjectPerModel"\n },\n {\n
186
+ > > > > > > > > "quotaMetric": > > > >
187
+ > > > > > > > > "generativelanguage.googleapis.com/generate_content_free_tier_input_token_count",\n
180
188
  > > > >
181
189
  > > > > > > > > "quotaId": "GenerateContentInputTokensPerModelPerDay-FreeTier",\n > >
182
190
  > > > > > > > > "quotaDimensions": {\n > > "location": "global",\n "model":
@@ -187,19 +195,21 @@
187
195
  > > > > > > > > "global"\n }\n > > }\n ]\n },\n {\n "@type":
188
196
  > > > > > > > > "type.googleapis.com/google.rpc.Help",\n "links": [\n {\n > >
189
197
  > > > > > > > > "description": "Learn > > more about Gemini API quotas",\n > > > > "url":
198
+ > > > > > > > >
190
199
  > > > > > > > > > > > > "https://ai.google.dev/gemini-api/docs/rate-limits"\n }\n ]\n },\n
191
- > > > > > > > > {\n "@type": "type.googleapis.com/google.rpc.RetryInfo",\n "retryDelay":
192
- > > > > > > > > "28s"\n }\n ]\n }\n}\n'
193
- > > > > > > > > The API provider has rate limited you. Try again later or check your
194
- > > > > > > > > quotas.
195
- > > > > > > > > Retrying in 2.0 seconds...
196
- > > > > > > > > litellm.RateLimitError: litellm.RateLimitError: VertexAIException - b'{\n
197
- > > > > > > > > "error": {\n "code": 429,\n "message": "You exceeded your current quota,
198
- > > > > > > > > please check your plan and billing details. For more information on this
199
- > > > > > > > > error, head to: https://ai.google.dev/gemini-api/docs/rate-limits.",\n
200
- > > > > > > > > "status": "RESOURCE_EXHAUSTED",\n "details": [\n {\n "@type":
201
- > > > > > > > > "type.googleapis.com/google.rpc.QuotaFailure",\n "violations": [\n {\n
202
- > > > > > > > > "quotaMetric":
200
+ > > > > > > > > > > > > {\n "@type": "type.googleapis.com/google.rpc.RetryInfo",\n
201
+ > > > > > > > > > > > > "retryDelay": "28s"\n }\n ]\n }\n}\n'
202
+ > > > > > > > > > > > > The API provider has rate limited you. Try again later or check
203
+ > > > > > > > > > > > > your quotas.
204
+ > > > > > > > > > > > > Retrying in 2.0 seconds...
205
+ > > > > > > > > > > > > litellm.RateLimitError: litellm.RateLimitError:
206
+ > > > > > > > > > > > > VertexAIException - b'{\n "error": {\n "code": 429,\n "message":
207
+ > > > > > > > > > > > > "You exceeded your current quota, please check your plan and
208
+ > > > > > > > > > > > > billing details. For more information on this error, head to:
209
+ > > > > > > > > > > > > https://ai.google.dev/gemini-api/docs/rate-limits.",\n "status":
210
+ > > > > > > > > > > > > "RESOURCE_EXHAUSTED",\n "details": [\n {\n "@type":
211
+ > > > > > > > > > > > > "type.googleapis.com/google.rpc.QuotaFailure",\n "violations": [\n
212
+ > > > > > > > > > > > > {\n "quotaMetric":
203
213
  > > > >
204
214
  > > > > "generativelanguage.googleapis.com/generate_content_free_tier_input_token_count",\n >
205
215
  > > > > "quotaId": "GenerateContentInputTokensPerModelPerMinute-FreeTier",\n
@@ -221,18 +231,20 @@
221
231
  > > > > "quotaDimensions": {\n > > "location": "global",\n "model": "gemini-2.0-pro-exp"\n
222
232
  > > > > }\n }\n ]\n },\n {\n "@type": "type.googleapis.com/google.rpc.Help",\n "links":
223
233
  > > > > [\n {\n "description": > > "Learn more > > about Gemini API quotas",\n "url": > >
234
+ > > > >
224
235
  > > > > > > > > "https://ai.google.dev/gemini-api/docs/rate-limits"\n > > }\n ]\n },\n {\n
225
- > > > > "@type": "type.googleapis.com/google.rpc.RetryInfo",\n "retryDelay": "25s"\n }\n
226
- > > > > ]\n }\n}\n'
227
- > > > > The API provider has rate limited you. Try again later or check your quotas.
228
- > > > > Retrying in 4.0 seconds...
229
- > > > > litellm.RateLimitError: litellm.RateLimitError: VertexAIException - b'{\n "error":
230
- > > > > {\n "code": 429,\n "message": "You exceeded your current quota, please check your
231
- > > > > plan and billing details. For more information on this error, head to:
232
- > > > > https://ai.google.dev/gemini-api/docs/rate-limits.",\n "status":
233
- > > > > "RESOURCE_EXHAUSTED",\n "details": [\n {\n "@type":
234
- > > > > "type.googleapis.com/google.rpc.QuotaFailure",\n "violations": [\n {\n
235
- > > > > "quotaMetric":
236
+ > > > > > > > > "@type": "type.googleapis.com/google.rpc.RetryInfo",\n "retryDelay":
237
+ > > > > > > > > "25s"\n }\n ]\n }\n}\n'
238
+ > > > > > > > > The API provider has rate limited you. Try again later or check your
239
+ > > > > > > > > quotas.
240
+ > > > > > > > > Retrying in 4.0 seconds...
241
+ > > > > > > > > litellm.RateLimitError: litellm.RateLimitError: VertexAIException - b'{\n
242
+ > > > > > > > > "error": {\n "code": 429,\n "message": "You exceeded your current quota,
243
+ > > > > > > > > please check your plan and billing details. For more information on this
244
+ > > > > > > > > error, head to: https://ai.google.dev/gemini-api/docs/rate-limits.",\n
245
+ > > > > > > > > "status": "RESOURCE_EXHAUSTED",\n "details": [\n {\n "@type":
246
+ > > > > > > > > "type.googleapis.com/google.rpc.QuotaFailure",\n "violations": [\n {\n
247
+ > > > > > > > > "quotaMetric":
236
248
  > > > >
237
249
  > > > > "generativelanguage.googleapis.com/generate_content_free_tier_input_token_count",\n >
238
250
  > > > > "quotaId": "GenerateContentInputTokensPerModelPerDay-FreeTier",\n
@@ -290,17 +302,20 @@
290
302
  > > "quotaId": "GenerateContentInputTokensPerModelPerDay-FreeTier",\n "quotaDimensions":
291
303
  > > {\n "location": "global",\n "model": "gemini-2.0-pro-exp"\n }\n }\n ]\n },\n {\n
292
304
  > > "@type": "type.googleapis.com/google.rpc.Help",\n "links": [\n {\n "description": > >
305
+ > >
293
306
  > > > > "Learn more > > about Gemini API quotas",\n "url": > > > >
294
- > > "https://ai.google.dev/gemini-api/docs/rate-limits"\n > > }\n ]\n },\n {\n "@type":
295
- > > "type.googleapis.com/google.rpc.RetryInfo",\n "retryDelay": "12s"\n }\n ]\n }\n}\n'
296
- > > The API provider has rate limited you. Try again later or check your quotas.
297
- > > Retrying in 0.2 seconds...
298
- > > litellm.RateLimitError: litellm.RateLimitError: VertexAIException - b'{\n "error": {\n
299
- > > "code": 429,\n "message": "You exceeded your current quota, please check your plan and
300
- > > billing details. For more information on this error, head to:
301
- > > https://ai.google.dev/gemini-api/docs/rate-limits.",\n "status":
302
- > > "RESOURCE_EXHAUSTED",\n "details": [\n {\n "@type":
303
- > > "type.googleapis.com/google.rpc.QuotaFailure",\n "violations": [\n {\n "quotaMetric":
307
+ > > > > "https://ai.google.dev/gemini-api/docs/rate-limits"\n > > }\n ]\n },\n {\n
308
+ > > > > "@type": "type.googleapis.com/google.rpc.RetryInfo",\n "retryDelay": "12s"\n }\n
309
+ > > > > ]\n }\n}\n'
310
+ > > > > The API provider has rate limited you. Try again later or check your quotas.
311
+ > > > > Retrying in 0.2 seconds...
312
+ > > > > litellm.RateLimitError: litellm.RateLimitError: VertexAIException - b'{\n "error":
313
+ > > > > {\n "code": 429,\n "message": "You exceeded your current quota, please check your
314
+ > > > > plan and billing details. For more information on this error, head to:
315
+ > > > > https://ai.google.dev/gemini-api/docs/rate-limits.",\n "status":
316
+ > > > > "RESOURCE_EXHAUSTED",\n "details": [\n {\n "@type":
317
+ > > > > "type.googleapis.com/google.rpc.QuotaFailure",\n "violations": [\n {\n
318
+ > > > > "quotaMetric":
304
319
  > >
305
320
  > > > > "generativelanguage.googleapis.com/generate_requests_per_model_per_day",\n
306
321
  > > > > "quotaId": > > "GenerateRequestsPerDayPerProjectPerModel"\n },\n {\n
@@ -356,11 +371,13 @@
356
371
  > > > > "quotaDimensions": {\n > > "location": "global",\n "model": "gemini-2.0-pro-exp"\n
357
372
  > > > > }\n }\n ]\n },\n {\n "@type": "type.googleapis.com/google.rpc.Help",\n "links":
358
373
  > > > > [\n {\n "description": > > "Learn more > > about Gemini API quotas",\n "url": > >
374
+ > > > >
359
375
  > > > > > > > > "https://ai.google.dev/gemini-api/docs/rate-limits"\n > > }\n ]\n },\n {\n
360
- > > > > "@type": "type.googleapis.com/google.rpc.RetryInfo",\n "retryDelay": "10s"\n }\n
361
- > > > > ]\n }\n}\n'
362
- > > > > The API provider has rate limited you. Try again later or check your quotas.
363
- > > > > Retrying in 1.0 seconds...
376
+ > > > > > > > > "@type": "type.googleapis.com/google.rpc.RetryInfo",\n "retryDelay":
377
+ > > > > > > > > "10s"\n }\n ]\n }\n}\n'
378
+ > > > > > > > > The API provider has rate limited you. Try again later or check your
379
+ > > > > > > > > quotas.
380
+ > > > > > > > > Retrying in 1.0 seconds...
364
381
  >
365
382
  > ^C again to exit
366
383
  >
package/CHANGELOG.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Changelog
2
2
 
3
- ## Current dev build: v4.4.0-dev.2025063000
3
+ ## Current dev build: v4.4.0-dev.2025072300
4
4
 
5
5
  ### Features
6
6
 
@@ -15,14 +15,19 @@
15
15
 
16
16
  ### Bug fixes
17
17
 
18
+ - Subtitles: Fix some subtitle missing on multiple period assets [#1708]
18
19
  - DRM: renew the mediaKeySystemAccess on Edge and Firefox when using a Playready keySystem
19
20
  to work-around frequent DRM issues. [#1694]
20
21
  - DRM: On Firefox check extensively Playready DRMs support before using them to
21
22
  work-around recent firefox issue with PlayReady integration [#1691]
23
+ - DRM: Fix persistent session loading when content has no key id [#1713]
22
24
  - fix(safari): wait for canplay event to seek on safari [#1707]
23
25
 
24
26
  ### Other improvements
25
27
 
28
+ - Add hidden experimental API "Dummy media API" to facilitate tests and debugging of the
29
+ RxPlayer behavior without having to support the content in the current environment
30
+ [#1478]
26
31
  - Improve on freeze resolution, especially for encrypted contents [#1705]
27
32
  - Detect that `fetch` / `AbortController` is native to provide a better experience for
28
33
  application relying on (broken) polyfills instead [#1698]
package/VERSION CHANGED
@@ -1 +1 @@
1
- 4.4.0-dev.2025063000
1
+ 4.4.0-dev.2025072300
@@ -1 +1 @@
1
- {"version":3,"file":"embedded_worker.d.ts","sourceRoot":"","sources":["../../../src/__GENERATED_CODE/embedded_worker.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,IAAI,MAAirnU,CAAC;AAC5rnU,OAAO,EAAE,IAAI,IAAI,eAAe,EAAE,CAAC;AACnC,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"embedded_worker.d.ts","sourceRoot":"","sources":["../../../src/__GENERATED_CODE/embedded_worker.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,IAAI,MAAm4oU,CAAC;AAC94oU,OAAO,EAAE,IAAI,IAAI,eAAe,EAAE,CAAC;AACnC,eAAe,IAAI,CAAC"}