wsc_sdk 1.3.1

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 (265) hide show
  1. checksums.yaml +7 -0
  2. data/.circleci/config.yml +146 -0
  3. data/.circleci/docker/build/Dockerfile +3 -0
  4. data/.circleci/helpers/add_preamble.rb +29 -0
  5. data/.circleci/helpers/build_docs.sh +5 -0
  6. data/.circleci/helpers/build_gem.sh +5 -0
  7. data/.circleci/helpers/debundle-context.sh +14 -0
  8. data/.circleci/helpers/finalize_release.sh +24 -0
  9. data/.circleci/helpers/publish_docs.sh +10 -0
  10. data/.circleci/helpers/release_gem.sh +8 -0
  11. data/.circleci/helpers/setup.sh +11 -0
  12. data/.circleci/helpers/setup_aws.sh +13 -0
  13. data/.circleci/helpers/setup_gem.sh +2 -0
  14. data/.circleci/helpers/setup_git.sh +27 -0
  15. data/.circleci/helpers/setup_rubygems.sh +15 -0
  16. data/.circleci/helpers/test_integration.sh +12 -0
  17. data/.circleci/helpers/test_unit.sh +6 -0
  18. data/.circleci/jobs/publish-production.sh +17 -0
  19. data/.circleci/jobs/publish-staging.sh +17 -0
  20. data/.circleci/jobs/release-production.sh +21 -0
  21. data/.circleci/jobs/test-integration.sh +9 -0
  22. data/.circleci/jobs/test-unit.sh +9 -0
  23. data/.circleci/tag_repo.rb +46 -0
  24. data/.gitignore +28 -0
  25. data/.rspec +2 -0
  26. data/.yard/config +2 -0
  27. data/.yard/template/default/fulldoc/html/css/custom.css +151 -0
  28. data/.yard/template/default/layout/html/footer.erb +0 -0
  29. data/.yard/template/default/layout/html/headers.erb +10 -0
  30. data/.yard/template/default/layout/html/layout.erb +45 -0
  31. data/.yard/template/default/layout/html/setup.rb +24 -0
  32. data/.yardopts +1 -0
  33. data/CODE_OF_CONDUCT.md +74 -0
  34. data/Gemfile +6 -0
  35. data/Gemfile.lock +99 -0
  36. data/LICENSE.txt +28 -0
  37. data/README.md +397 -0
  38. data/Rakefile +2 -0
  39. data/bin/console +14 -0
  40. data/bin/setup +8 -0
  41. data/doc/Hash.html +291 -0
  42. data/doc/WscSdk.html +570 -0
  43. data/doc/WscSdk/ApiResponse.html +242 -0
  44. data/doc/WscSdk/Attributes.html +128 -0
  45. data/doc/WscSdk/Attributes/Mode.html +191 -0
  46. data/doc/WscSdk/Attributes/Type.html +389 -0
  47. data/doc/WscSdk/Client.html +2677 -0
  48. data/doc/WscSdk/Configuration.html +595 -0
  49. data/doc/WscSdk/Endpoint.html +2974 -0
  50. data/doc/WscSdk/Endpoints.html +141 -0
  51. data/doc/WscSdk/Endpoints/CustomStreamTargets.html +383 -0
  52. data/doc/WscSdk/Endpoints/LiveStreams.html +197 -0
  53. data/doc/WscSdk/Endpoints/OutputStreamTargets.html +180 -0
  54. data/doc/WscSdk/Endpoints/Outputs.html +180 -0
  55. data/doc/WscSdk/Endpoints/StreamTargets.html +446 -0
  56. data/doc/WscSdk/Endpoints/Transcoders.html +197 -0
  57. data/doc/WscSdk/Endpoints/UllStreamTargets.html +383 -0
  58. data/doc/WscSdk/Endpoints/WowzaStreamTargets.html +383 -0
  59. data/doc/WscSdk/Enum.html +225 -0
  60. data/doc/WscSdk/Enums.html +321 -0
  61. data/doc/WscSdk/Enums/BillingMode.html +188 -0
  62. data/doc/WscSdk/Enums/BroadcastLocation.html +396 -0
  63. data/doc/WscSdk/Enums/BufferSize.html +301 -0
  64. data/doc/WscSdk/Enums/ClosedCaptionType.html +221 -0
  65. data/doc/WscSdk/Enums/CustomProvider.html +252 -0
  66. data/doc/WscSdk/Enums/DeliveryMethod.html +188 -0
  67. data/doc/WscSdk/Enums/DeliveryType.html +188 -0
  68. data/doc/WscSdk/Enums/Encoder.html +460 -0
  69. data/doc/WscSdk/Enums/Errors.html +555 -0
  70. data/doc/WscSdk/Enums/IdleTimeout.html +398 -0
  71. data/doc/WscSdk/Enums/ImagePosition.html +220 -0
  72. data/doc/WscSdk/Enums/ModelMode.html +175 -0
  73. data/doc/WscSdk/Enums/ModelType.html +373 -0
  74. data/doc/WscSdk/Enums/PlayerType.html +188 -0
  75. data/doc/WscSdk/Enums/Protocol.html +204 -0
  76. data/doc/WscSdk/Enums/TargetDeliveryProtocol.html +188 -0
  77. data/doc/WscSdk/Enums/TranscoderType.html +188 -0
  78. data/doc/WscSdk/Enums/UserRegion.html +383 -0
  79. data/doc/WscSdk/Enums/WowzaProvider.html +188 -0
  80. data/doc/WscSdk/Errors.html +683 -0
  81. data/doc/WscSdk/Loggable.html +346 -0
  82. data/doc/WscSdk/Model.html +3316 -0
  83. data/doc/WscSdk/ModelList.html +442 -0
  84. data/doc/WscSdk/ModelTemplate.html +267 -0
  85. data/doc/WscSdk/Models.html +141 -0
  86. data/doc/WscSdk/Models/CustomStreamTarget.html +192 -0
  87. data/doc/WscSdk/Models/Error.html +351 -0
  88. data/doc/WscSdk/Models/LiveStream.html +601 -0
  89. data/doc/WscSdk/Models/LiveStreamConnectionCode.html +192 -0
  90. data/doc/WscSdk/Models/LiveStreamState.html +200 -0
  91. data/doc/WscSdk/Models/LiveStreamStats.html +200 -0
  92. data/doc/WscSdk/Models/LiveStreamThumbnailUrl.html +200 -0
  93. data/doc/WscSdk/Models/Output.html +294 -0
  94. data/doc/WscSdk/Models/OutputStreamTarget.html +274 -0
  95. data/doc/WscSdk/Models/StreamTarget.html +273 -0
  96. data/doc/WscSdk/Models/Transcoder.html +793 -0
  97. data/doc/WscSdk/Models/TranscoderBooleanStat.html +278 -0
  98. data/doc/WscSdk/Models/TranscoderConnectionCode.html +192 -0
  99. data/doc/WscSdk/Models/TranscoderFloatStat.html +278 -0
  100. data/doc/WscSdk/Models/TranscoderIntegerStat.html +278 -0
  101. data/doc/WscSdk/Models/TranscoderState.html +196 -0
  102. data/doc/WscSdk/Models/TranscoderStats.html +196 -0
  103. data/doc/WscSdk/Models/TranscoderStreamTargetState.html +192 -0
  104. data/doc/WscSdk/Models/TranscoderStringStat.html +278 -0
  105. data/doc/WscSdk/Models/TranscoderThumbnailUrl.html +196 -0
  106. data/doc/WscSdk/Models/UllStreamTarget.html +360 -0
  107. data/doc/WscSdk/Models/WowzaStreamTarget.html +380 -0
  108. data/doc/WscSdk/Pagination.html +1277 -0
  109. data/doc/WscSdk/Schema.html +861 -0
  110. data/doc/WscSdk/SchemaAttribute.html +2400 -0
  111. data/doc/WscSdk/Templates.html +141 -0
  112. data/doc/WscSdk/Templates/CustomStreamTarget.html +1045 -0
  113. data/doc/WscSdk/Templates/LiveStream.html +1432 -0
  114. data/doc/WscSdk/Templates/Output.html +829 -0
  115. data/doc/WscSdk/Templates/Transcoder.html +699 -0
  116. data/doc/WscSdk/Templates/UllStreamTarget.html +411 -0
  117. data/doc/WscSdk/Templates/WowzaStreamTarget.html +447 -0
  118. data/doc/WscSdk/TranscoderSharedMethods.html +1113 -0
  119. data/doc/_index.html +705 -0
  120. data/doc/class_list.html +51 -0
  121. data/doc/css/bootstrap.css +5 -0
  122. data/doc/css/common.css +1 -0
  123. data/doc/css/custom.css +151 -0
  124. data/doc/css/full_list.css +58 -0
  125. data/doc/css/style.css +496 -0
  126. data/doc/file.README.html +570 -0
  127. data/doc/file_list.html +56 -0
  128. data/doc/frames.html +17 -0
  129. data/doc/images/wsc-ruby-1800x400.png +0 -0
  130. data/doc/index.html +570 -0
  131. data/doc/js/app.js +292 -0
  132. data/doc/js/full_list.js +216 -0
  133. data/doc/js/jquery.js +4 -0
  134. data/doc/method_list.html +1731 -0
  135. data/doc/top-level-namespace.html +182 -0
  136. data/examples/client.rb +40 -0
  137. data/examples/helpers.rb +100 -0
  138. data/examples/live_streams/create.rb +39 -0
  139. data/examples/live_streams/delete.rb +32 -0
  140. data/examples/live_streams/find.rb +22 -0
  141. data/examples/live_streams/flood.rb +126 -0
  142. data/examples/live_streams/list.rb +24 -0
  143. data/examples/live_streams/regenerate_connection_code.rb +29 -0
  144. data/examples/live_streams/reset.rb +32 -0
  145. data/examples/live_streams/reset_and_wait.rb +51 -0
  146. data/examples/live_streams/start.rb +33 -0
  147. data/examples/live_streams/start_and_wait.rb +51 -0
  148. data/examples/live_streams/state.rb +33 -0
  149. data/examples/live_streams/stats.rb +43 -0
  150. data/examples/live_streams/stop.rb +33 -0
  151. data/examples/live_streams/stop_and_wait.rb +51 -0
  152. data/examples/live_streams/thumbnail_url.rb +46 -0
  153. data/examples/live_streams/update.rb +43 -0
  154. data/examples/live_streams/workflow.rb +165 -0
  155. data/examples/output_stream_targets/create.rb +56 -0
  156. data/examples/output_stream_targets/delete.rb +45 -0
  157. data/examples/output_stream_targets/find.rb +37 -0
  158. data/examples/output_stream_targets/list.rb +36 -0
  159. data/examples/output_stream_targets/update.rb +56 -0
  160. data/examples/outputs/create.rb +49 -0
  161. data/examples/outputs/delete.rb +39 -0
  162. data/examples/outputs/find.rb +31 -0
  163. data/examples/outputs/list.rb +29 -0
  164. data/examples/outputs/update.rb +50 -0
  165. data/examples/stream_targets/custom/create.rb +42 -0
  166. data/examples/stream_targets/custom/delete.rb +31 -0
  167. data/examples/stream_targets/custom/find.rb +23 -0
  168. data/examples/stream_targets/custom/list.rb +24 -0
  169. data/examples/stream_targets/custom/update.rb +43 -0
  170. data/examples/stream_targets/list.rb +24 -0
  171. data/examples/stream_targets/ull/create.rb +41 -0
  172. data/examples/stream_targets/ull/delete.rb +31 -0
  173. data/examples/stream_targets/ull/find.rb +23 -0
  174. data/examples/stream_targets/ull/list.rb +24 -0
  175. data/examples/stream_targets/ull/update.rb +43 -0
  176. data/examples/stream_targets/wowza/create.rb +42 -0
  177. data/examples/stream_targets/wowza/delete.rb +31 -0
  178. data/examples/stream_targets/wowza/find.rb +23 -0
  179. data/examples/stream_targets/wowza/list.rb +23 -0
  180. data/examples/stream_targets/wowza/update.rb +43 -0
  181. data/examples/transcoders/create.rb +39 -0
  182. data/examples/transcoders/delete.rb +31 -0
  183. data/examples/transcoders/find.rb +23 -0
  184. data/examples/transcoders/list.rb +24 -0
  185. data/examples/transcoders/reset.rb +32 -0
  186. data/examples/transcoders/reset_and_wait.rb +48 -0
  187. data/examples/transcoders/start.rb +33 -0
  188. data/examples/transcoders/start_and_wait.rb +50 -0
  189. data/examples/transcoders/state.rb +33 -0
  190. data/examples/transcoders/stats.rb +43 -0
  191. data/examples/transcoders/stop.rb +33 -0
  192. data/examples/transcoders/stop_and_wait.rb +50 -0
  193. data/examples/transcoders/thumbnail_url.rb +46 -0
  194. data/examples/transcoders/update.rb +43 -0
  195. data/images/wsc-ruby-1800x400.png +0 -0
  196. data/lib/wsc_sdk.rb +81 -0
  197. data/lib/wsc_sdk/client.rb +417 -0
  198. data/lib/wsc_sdk/configuration.rb +21 -0
  199. data/lib/wsc_sdk/constants.rb +29 -0
  200. data/lib/wsc_sdk/endpoint.rb +492 -0
  201. data/lib/wsc_sdk/endpoints/custom_stream_targets.rb +44 -0
  202. data/lib/wsc_sdk/endpoints/live_streams.rb +34 -0
  203. data/lib/wsc_sdk/endpoints/output_stream_targets.rb +17 -0
  204. data/lib/wsc_sdk/endpoints/outputs.rb +17 -0
  205. data/lib/wsc_sdk/endpoints/stream_targets.rb +45 -0
  206. data/lib/wsc_sdk/endpoints/transcoders.rb +38 -0
  207. data/lib/wsc_sdk/endpoints/ull_stream_targets.rb +44 -0
  208. data/lib/wsc_sdk/endpoints/wowza_stream_targets.rb +44 -0
  209. data/lib/wsc_sdk/enums.rb +31 -0
  210. data/lib/wsc_sdk/enums/billing_mode.rb +20 -0
  211. data/lib/wsc_sdk/enums/broadcast_location.rb +58 -0
  212. data/lib/wsc_sdk/enums/buffer_size.rb +41 -0
  213. data/lib/wsc_sdk/enums/closed_caption_type.rb +26 -0
  214. data/lib/wsc_sdk/enums/custom_provider.rb +32 -0
  215. data/lib/wsc_sdk/enums/delivery_method.rb +20 -0
  216. data/lib/wsc_sdk/enums/delivery_type.rb +20 -0
  217. data/lib/wsc_sdk/enums/encoder.rb +71 -0
  218. data/lib/wsc_sdk/enums/idle_timeout.rb +50 -0
  219. data/lib/wsc_sdk/enums/image_position.rb +26 -0
  220. data/lib/wsc_sdk/enums/player_type.rb +20 -0
  221. data/lib/wsc_sdk/enums/protocol.rb +23 -0
  222. data/lib/wsc_sdk/enums/target_delivery_protocol.rb +20 -0
  223. data/lib/wsc_sdk/enums/transcoder_type.rb +20 -0
  224. data/lib/wsc_sdk/enums/wowza_provider.rb +20 -0
  225. data/lib/wsc_sdk/errors.rb +115 -0
  226. data/lib/wsc_sdk/model.rb +515 -0
  227. data/lib/wsc_sdk/model_list.rb +42 -0
  228. data/lib/wsc_sdk/model_template.rb +27 -0
  229. data/lib/wsc_sdk/models/custom_stream_target.rb +34 -0
  230. data/lib/wsc_sdk/models/error.rb +53 -0
  231. data/lib/wsc_sdk/models/live_stream.rb +130 -0
  232. data/lib/wsc_sdk/models/live_stream_connection_code.rb +31 -0
  233. data/lib/wsc_sdk/models/live_stream_state.rb +20 -0
  234. data/lib/wsc_sdk/models/live_stream_stats.rb +20 -0
  235. data/lib/wsc_sdk/models/live_stream_thumbnail_url.rb +20 -0
  236. data/lib/wsc_sdk/models/output.rb +61 -0
  237. data/lib/wsc_sdk/models/output_stream_target.rb +37 -0
  238. data/lib/wsc_sdk/models/stream_target.rb +29 -0
  239. data/lib/wsc_sdk/models/transcoder.rb +135 -0
  240. data/lib/wsc_sdk/models/transcoder_boolean_stat.rb +41 -0
  241. data/lib/wsc_sdk/models/transcoder_connection_code.rb +29 -0
  242. data/lib/wsc_sdk/models/transcoder_float_stat.rb +40 -0
  243. data/lib/wsc_sdk/models/transcoder_integer_stat.rb +40 -0
  244. data/lib/wsc_sdk/models/transcoder_state.rb +31 -0
  245. data/lib/wsc_sdk/models/transcoder_stats.rb +51 -0
  246. data/lib/wsc_sdk/models/transcoder_stream_target_state.rb +29 -0
  247. data/lib/wsc_sdk/models/transcoder_string_stat.rb +40 -0
  248. data/lib/wsc_sdk/models/transcoder_thumbnail_url.rb +29 -0
  249. data/lib/wsc_sdk/models/ull_stream_target.rb +54 -0
  250. data/lib/wsc_sdk/models/wowza_stream_target.rb +60 -0
  251. data/lib/wsc_sdk/modules/api_response.rb +24 -0
  252. data/lib/wsc_sdk/modules/loggable.rb +44 -0
  253. data/lib/wsc_sdk/modules/transcoder_shared_methods.rb +221 -0
  254. data/lib/wsc_sdk/pagination.rb +89 -0
  255. data/lib/wsc_sdk/schema.rb +140 -0
  256. data/lib/wsc_sdk/schema_attribute.rb +349 -0
  257. data/lib/wsc_sdk/templates/custom_stream_target.rb +154 -0
  258. data/lib/wsc_sdk/templates/live_stream.rb +234 -0
  259. data/lib/wsc_sdk/templates/output.rb +133 -0
  260. data/lib/wsc_sdk/templates/transcoder.rb +97 -0
  261. data/lib/wsc_sdk/templates/ull_stream_target.rb +49 -0
  262. data/lib/wsc_sdk/templates/wowza_stream_target.rb +57 -0
  263. data/lib/wsc_sdk/version.rb +7 -0
  264. data/wsc_sdk.gemspec +48 -0
  265. metadata +460 -0
@@ -0,0 +1,165 @@
1
+ ####> This code and all components © 2015 – 2019 Wowza Media Systems, LLC. All rights reserved.
2
+ ####> This code is licensed pursuant to the BSD 3-Clause License.
3
+
4
+ require "wsc_sdk"
5
+ require_relative "../client" # Include our client configuration
6
+ require_relative "../helpers" # Include some helpers to make the code more direct
7
+
8
+ # Turn down the logging
9
+ $client.logger.level = Logger::Severity::UNKNOWN # Disable logging output
10
+
11
+ # Ensure the args passed in are present.
12
+ arguments = ask_for_arguments(__FILE__, live_stream_name: nil, source_url: nil, )
13
+
14
+ # Extract some data into convenience variables
15
+ live_streams = $client.live_streams
16
+
17
+ # Build a RTMP/pull live_stream using a predefined template
18
+ name = arguments[0]
19
+ source_url = arguments[1]
20
+ live_stream_data = WscSdk::Templates::LiveStream.rtsp_pull(name, 1920, 1080, source_url)
21
+
22
+ # Build the live_stream object
23
+ live_stream = live_streams.build(live_stream_data)
24
+
25
+ # If the live_stream is invalid, output the messages and exit
26
+ unless (live_stream.valid?)
27
+ puts "Live Stream is invalid:"
28
+
29
+ live_stream.errors.each do |field, message|
30
+ puts " - #{field}: #{message}"
31
+ end
32
+ exit
33
+ end
34
+
35
+ # Get the result of saving the object to the API
36
+ saved = live_stream.save
37
+
38
+ # Handle an API error (in the helpers.rb file)
39
+ handle_api_error(saved, "There was an error creating the live stream") unless saved.success?
40
+
41
+ # Defined in the helpers.rb file.
42
+ output_model_attributes(live_stream, "Live Stream: #{live_stream.name}")
43
+
44
+ puts ""
45
+ puts "Starting Live Stream: #{live_stream.name}"
46
+ start_time = Time.now
47
+ # Get the result of starting the live_stream. We add a code block, which
48
+ # instructs the SDK to enter a wait loop, and periodically polls the API
49
+ # for the live_stream state until either the `started` state is returned or
50
+ # the timeout period is reached.
51
+ state = live_stream.start(timeout: 300) do |wait_state, live_stream_state|
52
+
53
+ # This code will execute each time the state of the live_stream is polled
54
+ # during the wait loop. You can check the wait_state to determine what the
55
+ # outcomes of each request are.
56
+ if wait_state == :waiting
57
+ elapsed = Time.now - start_time
58
+ # We're still waiting for the started state to be returned
59
+ puts " |> Waiting for Live Stream Start... [#{elapsed}s]"
60
+ elsif wait_state == :complete
61
+ puts " |> Live stream has started!!!"
62
+ elsif wait_state == :timeout
63
+ # A timeout occurs if the start state isn't reached within the timeout
64
+ # limit, which defaults to 30 seconds.
65
+
66
+ puts "TIMEOUT: Could not start the live stream within the timeout period of 5 minutes."
67
+ puts "The last state received was: #{live_stream_state.state} ... If the state is 'starting' be sure not to forgot to manually stop the live stream."
68
+ exit
69
+ end
70
+ end
71
+
72
+
73
+ puts ""
74
+ puts "Letting the Live Stream run for 5 minutes..."
75
+
76
+ # Setup a timer and elapsed time calculation.
77
+ start_time = Time.now
78
+ elapsed = start_time - Time.now
79
+
80
+ # Loop for 5 minutes
81
+ while(elapsed < 300)
82
+
83
+ # Refresh the live_stream if the hoste_page_url isn't populated yet.
84
+ live_stream.refresh if (live_stream.hosted_page and live_stream.hosted_page_url == "in_progress")
85
+
86
+ # Request the current stats for the live stream.
87
+ stats = live_stream.stats
88
+
89
+ # Request the current thumbnail for the live stream.
90
+ thumbnail_url = live_stream.thumbnail_url
91
+
92
+
93
+
94
+ puts ""
95
+ puts "Live Stream Stats: [Run Time: #{elapsed}s]"
96
+
97
+ if (live_stream.hosted_page and live_stream.hosted_page_url != "in_progress")
98
+ puts ""
99
+ puts " |> You can view this live stream here: #{live_stream.hosted_page_url}"
100
+ puts ""
101
+ end
102
+
103
+ if stats.success?
104
+ max_attr_length = stats.attributes.map{ |k, v| k.to_s.length }.max
105
+ stats.attributes.each do |attribute, value|
106
+ puts " |> #{attribute.to_s.ljust(max_attr_length)} : #{value}"
107
+ end
108
+ else
109
+ puts " !! Could not retrieve Live Stream stats"
110
+ end
111
+
112
+ if thumbnail_url.success?
113
+ puts " |> #{"tumbnail_url".ljust(max_attr_length)} : #{thumbnail_url.thumbnail_url}"
114
+ else
115
+ puts " !! Could not retrieve Live Stream thumbnail"
116
+ end
117
+
118
+ puts ""
119
+ puts "-"*80
120
+
121
+ # Pause for a few seconds. You don't need to poll stats or the thumbnail any
122
+ # more frequently than every 5 seconds. The data isn't generated any more
123
+ # frequently than that.
124
+ sleep(5)
125
+ elapsed = Time.now - start_time
126
+ end
127
+
128
+ # Stop the live stream!
129
+
130
+ # Get the result of stopping the live_stream. We add a code block, which
131
+ # instructs the SDK to enter a wait loop and periodically polls the API
132
+ # for the live_stream state until either the `stopped` state is returned or
133
+ # the timeout period is reached.
134
+ state = live_stream.stop do |wait_state, live_stream_state|
135
+
136
+ # This code will execute each time the state of the live_stream is polled
137
+ # during the wait loop. You can check the wait_state to determine what the
138
+ # outcomes of each request are.
139
+
140
+ if wait_state == :waiting
141
+ # We're still waiting for the stopped state to be returned
142
+ puts "Waiting..."
143
+ elsif wait_state == :complete
144
+ # We've successfully stopped the live_stream
145
+ # Defined in helpers.rb
146
+ output_model_attributes(live_stream_state, "Completed Live Stream State:")
147
+ elsif wait_state == :timeout
148
+ # A timeout occurs if the stop state isn't reached within the timeout
149
+ # limit, which defaults to 30 seconds.
150
+
151
+ puts "TIMEOUT: Could not stop the live stream within the timeout period."
152
+ puts "The last state received was: #{live_stream_state.state} ... If the state is not 'stopping' or 'stopped' don't forgot to manually stop the live stream."
153
+ exit
154
+ end
155
+ end
156
+
157
+
158
+ # Delete the live stream.
159
+ puts "Deleting the live stream..."
160
+ deleted = live_stream.delete
161
+
162
+ puts " !! There was an error deleting the Live Stream, you will have to manually delete it" unless deleted.success?
163
+
164
+ puts ""
165
+ puts "Live Stream workflow complete!!"
@@ -0,0 +1,56 @@
1
+ ####> This code and all components © 2015 – 2019 Wowza Media Systems, LLC. All rights reserved.
2
+ ####> This code is licensed pursuant to the BSD 3-Clause License.
3
+
4
+ require "wsc_sdk"
5
+ require_relative "../client" # Get our client
6
+ require_relative "../helpers" # Include some helpers to make the code more direct
7
+
8
+ # Ensure the args passed in are present
9
+ arguments = ask_for_arguments(__FILE__, transcoder_id: nil, output_id: nil, stream_target_id: nil)
10
+
11
+ # Extract some data into convenience variables
12
+ transcoders = $client.transcoders
13
+ transcoder_id = arguments[0]
14
+ output_id = arguments[1]
15
+ stream_target_id = arguments[2]
16
+
17
+ # Request the specific transcoder
18
+ transcoder = transcoders.find(transcoder_id)
19
+
20
+ # Handle an API error (in the helpers.rb file)
21
+ handle_api_error(transcoder, "There was an error retrieving the transcoder") unless transcoder.success?
22
+
23
+ # Request the specific output
24
+ output = transcoder.outputs.find(output_id)
25
+
26
+ # Handle an API error (in the helpers.rb file)
27
+ handle_api_error(output, "There was an error retrieving the output") unless transcoder.success?
28
+
29
+ # Build a Full HD output using a pre-defined template data, and modifying a
30
+ # few values
31
+ output_stream_target_data = {
32
+ stream_target_id: stream_target_id
33
+ }
34
+
35
+ # Build a new instance of the output object, and use it
36
+ output_stream_target = output.output_stream_targets.build(output_stream_target_data)
37
+
38
+ # Make sure the output is valid
39
+ unless output_stream_target.valid?
40
+ puts "Invalid Output Stream Target:"
41
+ output.errors.each do |field, message|
42
+ puts " - #{field}: #{message}"
43
+ end
44
+ exit
45
+ end
46
+
47
+ # Get the results of saving the output
48
+ saved = output_stream_target.save
49
+
50
+ # Handle an API error (in the helpers.rb file)
51
+ handle_api_error(saved, "There was an error creating the output stream target") unless saved.success?
52
+
53
+ # We've successfully saved the output then output some output about the
54
+ # output
55
+ # Defined in helpers.rb
56
+ output_model_attributes(output_stream_target, "Output Stream Target: #{output_stream_target.id}")
@@ -0,0 +1,45 @@
1
+ ####> This code and all components © 2015 – 2019 Wowza Media Systems, LLC. All rights reserved.
2
+ ####> This code is licensed pursuant to the BSD 3-Clause License.
3
+
4
+ require "wsc_sdk"
5
+ require_relative "../client" # Get our client
6
+ require_relative "../helpers" # Include some helpers to make the code more direct
7
+
8
+ # Ensure the args passed in are present
9
+ arguments = ask_for_arguments(__FILE__, transcoder_id: nil, output_id: nil, output_stream_target_id: nil)
10
+
11
+ # Extract some data into convenience variables
12
+ transcoders = $client.transcoders
13
+ transcoder_id = arguments[0]
14
+ output_id = arguments[1]
15
+ output_stream_target_id = arguments[2]
16
+
17
+ # Request the specific transcoder
18
+ transcoder = transcoders.find(transcoder_id)
19
+
20
+ # Handle an API error (in the helpers.rb file)
21
+ handle_api_error(transcoder, "There was an error retrieving the transcoder") unless transcoder.success?
22
+
23
+ # Request the specific output
24
+ output = transcoder.outputs.find(output_id)
25
+
26
+ # Handle an API error (in the helpers.rb file)
27
+ handle_api_error(output, "There was an error retrieving the output") unless output.success?
28
+
29
+ output_stream_target = output.output_stream_targets.find(output_stream_target_id)
30
+
31
+ # Handle an API error (in the helpers.rb file)
32
+ handle_api_error(output_stream_target, "There was an error retrieving the output stream target") unless output_stream_target.success?
33
+
34
+ # Delete the output
35
+ result = output_stream_target.delete
36
+
37
+ # Handle an API error (in the helpers.rb file)
38
+ handle_api_error(result, "There was an error deleting the output stream target") unless result.success?
39
+
40
+ # If we've successfully deleted the output, then output some output about the
41
+ # output. Note that the data for the output still exists locally in the
42
+ # SDK, however the ID has been removed since it no longer references a
43
+ # valid record in the API.
44
+ # Defined in helpers.rb
45
+ output_model_attributes(output_stream_target, "Output Stream Target: #{output_stream_target.id}")
@@ -0,0 +1,37 @@
1
+ ####> This code and all components © 2015 – 2019 Wowza Media Systems, LLC. All rights reserved.
2
+ ####> This code is licensed pursuant to the BSD 3-Clause License.
3
+
4
+ require "wsc_sdk"
5
+ require_relative "../client" # Get our client
6
+ require_relative "../helpers" # Include some helpers to make the code more direct
7
+
8
+ # Ensure the args passed in are present
9
+ arguments = ask_for_arguments(__FILE__, transcoder_id: nil, output_id: nil, output_stream_target_id: nil)
10
+
11
+ # Extract some data into convenience variables
12
+ transcoders = $client.transcoders
13
+ transcoder_id = arguments[0]
14
+ output_id = arguments[1]
15
+ output_stream_target_id = arguments[2]
16
+
17
+ # Request the specific transcoder
18
+ transcoder = transcoders.find(transcoder_id)
19
+
20
+ # Handle an API error (in the helpers.rb file)
21
+ handle_api_error(transcoder, "There was an error retrieving the transcoder") unless transcoder.success?
22
+
23
+ # Request the specific output
24
+ output = transcoder.outputs.find(output_id)
25
+
26
+ # Handle an API error (in the helpers.rb file)
27
+ handle_api_error(output, "There was an error retrieving the output") unless output.success?
28
+
29
+ output_stream_target = output.output_stream_targets.find(output_stream_target_id)
30
+
31
+ # Handle an API error (in the helpers.rb file)
32
+ handle_api_error(output_stream_target, "There was an error retrieving the output stream target") unless output_stream_target.success?
33
+
34
+ # If we've successfully found the output then output some output about the
35
+ # output.
36
+ # Defined in helpers.rb
37
+ output_model_attributes(output_stream_target, "Output Stream Target: #{output_stream_target.id}")
@@ -0,0 +1,36 @@
1
+ ####> This code and all components © 2015 – 2019 Wowza Media Systems, LLC. All rights reserved.
2
+ ####> This code is licensed pursuant to the BSD 3-Clause License.
3
+
4
+ require "wsc_sdk"
5
+ require_relative "../client" # Get our client
6
+ require_relative "../helpers" # Include some helpers to make the code more direct
7
+
8
+ # Ensure the args passed in are present
9
+ arguments = ask_for_arguments(__FILE__, transcoder_id: nil, output_id: nil)
10
+
11
+ # Extract some data into convenience variables
12
+ transcoders = $client.transcoders
13
+ transcoder_id = arguments[0]
14
+ output_id = arguments[1]
15
+
16
+ # Request the specific transcoder
17
+ transcoder = transcoders.find(transcoder_id)
18
+
19
+ # Handle an API error (in the helpers.rb file)
20
+ handle_api_error(transcoder, "There was an error retrieving the transcoder") unless transcoder.success?
21
+
22
+ # Request the specific output
23
+ output = transcoder.outputs.find(output_id)
24
+
25
+ # Handle an API error (in the helpers.rb file)
26
+ handle_api_error(output, "There was an error retrieving the output") unless transcoder.success?
27
+
28
+ # Request the outputs list
29
+ list = output.output_stream_targets.list
30
+
31
+ # Handle an API error (in the helpers.rb file)
32
+ handle_api_error(list, "There was an error retrieving the output stream targets list") unless list.success?
33
+
34
+ # Output the list of output stream targets
35
+ # Defined in helpers.rb
36
+ output_model_list(list, "Outputs Stream Targets for Output '#{output.name}':")
@@ -0,0 +1,56 @@
1
+ ####> This code and all components © 2015 – 2019 Wowza Media Systems, LLC. All rights reserved.
2
+ ####> This code is licensed pursuant to the BSD 3-Clause License.
3
+
4
+ require "wsc_sdk"
5
+ require_relative "../client" # Get our client
6
+ require_relative "../helpers" # Include some helpers to make the code more direct
7
+
8
+ # Ensure the args passed in are present
9
+ arguments = ask_for_arguments(__FILE__, transcoder_id: nil, output_id: nil, output_stream_target_id: nil, stream_target_id: nil)
10
+
11
+ # Extract some data into convenience variables
12
+ transcoders = $client.transcoders
13
+ transcoder_id = arguments[0]
14
+ output_id = arguments[1]
15
+ output_stream_target_id = arguments[2]
16
+ stream_target_id = arguments[3]
17
+
18
+ # Request the specific transcoder
19
+ transcoder = transcoders.find(transcoder_id)
20
+
21
+ # Handle an API error (in the helpers.rb file)
22
+ handle_api_error(transcoder, "There was an error retrieving the transcoder") unless transcoder.success?
23
+
24
+ # Request the specific output
25
+ output = transcoder.outputs.find(output_id)
26
+
27
+ # Handle an API error (in the helpers.rb file)
28
+ handle_api_error(output, "There was an error retrieving the output") unless transcoder.success?
29
+
30
+ output_stream_target = output.output_stream_targets.find(output_stream_target_id)
31
+
32
+ # Handle an API error (in the helpers.rb file)
33
+ handle_api_error(output_stream_target, "There was an error retrieving the output stream target") unless output_stream_target.success?
34
+
35
+
36
+ # Update the stream target id
37
+ output_stream_target.stream_target_id = stream_target_id
38
+
39
+ # Make sure the output is valid
40
+ unless output_stream_target.valid?
41
+ puts "Invalid Output Stream Target:"
42
+ output.errors.each do |field, message|
43
+ puts " - #{field}: #{message}"
44
+ end
45
+ exit
46
+ end
47
+
48
+ # Save the output stream target
49
+ saved = output_stream_target.save
50
+
51
+ # Handle an API error (in the helpers.rb file)
52
+ handle_api_error(saved, "There was an error updating the output stream target") unless saved.success?
53
+
54
+ # We've successfully saved the output then output some output about the
55
+ # output
56
+ output_model_attributes(output_stream_target, "Output Stream Target: #{output_stream_target.id}")
@@ -0,0 +1,49 @@
1
+ ####> This code and all components © 2015 – 2019 Wowza Media Systems, LLC. All rights reserved.
2
+ ####> This code is licensed pursuant to the BSD 3-Clause License.
3
+
4
+ require "wsc_sdk"
5
+ require_relative "../client" # Get our client
6
+ require_relative "../helpers" # Include some helpers to make the code more direct
7
+
8
+ # Ensure the args passed in are present.
9
+ arguments = ask_for_arguments(__FILE__, transcoder_id: nil)
10
+
11
+ # Extract some data into convenience variables
12
+ transcoders = $client.transcoders
13
+ transcoder_id = arguments[0]
14
+ output_id = arguments[1]
15
+
16
+ # Request the specific transcoder
17
+ transcoder = transcoders.find(transcoder_id)
18
+
19
+ # Handle an API error (in the helpers.rb file)
20
+ handle_api_error(transcoder, "There was an error retrieving the transcoder") unless transcoder.success?
21
+
22
+ # Build a Full HD output using a pre-defined template data, and modifying a
23
+ # few values
24
+ output_data = WscSdk::Templates::Output.full_hd(
25
+ audio_bitrate: 256,
26
+ video_bitrate: 8000
27
+ )
28
+
29
+ # Build a new instance of the output object, and use
30
+ output = transcoder.outputs.build(output_data)
31
+
32
+ # Make sure the output is valid
33
+ unless output.valid?
34
+ puts "Invalid Output:"
35
+ output.errors.each do |field, message|
36
+ puts " - #{field}: #{message}"
37
+ end
38
+ exit
39
+ end
40
+
41
+ # Get the results of saving the output
42
+ saved = output.save
43
+
44
+ # Handle an API error (in the helpers.rb file)
45
+ handle_api_error(saved, "There was an error creating the output") unless saved.success?
46
+
47
+ # We've successfully saved the output then output some output about the
48
+ # output
49
+ output_model_attributes(output, "Output: #{output.name}")