alexa_remotectl 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +0 -0
- data/lib/alexa_remotectl.rb +71 -0
- data.tar.gz.sig +2 -0
- metadata +71 -0
- metadata.gz.sig +5 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: e11608ee8951bc2b2ee2f536c56df1bb5f8f345de55621f863e347a724f15e2a
|
4
|
+
data.tar.gz: 152b8dd0ba4a2e86a598402eb87c00cc5a938b85395fe2cd0c7abbb642d1253e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 027e4da7333752221c6f868d105694ae4f054ff0b758f7d63550e2d75914dc42d5002413c972faf966e2e12a0fac36e3edd1cd4264884f5f05f75405624f9fde
|
7
|
+
data.tar.gz: 03ac22cf51046c646f7492982a39143ea3baca5a192ae33f72cd559f27201388c53a188a6a8c5c2769b506c4224c7216b2422b8d7cf54ba8fdd0d35696e55d4f
|
checksums.yaml.gz.sig
ADDED
Binary file
|
@@ -0,0 +1,71 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# file: alexa_remotectl.rb
|
4
|
+
|
5
|
+
# description: Experimental project to play or pause Alexa's music player using the SPA API
|
6
|
+
|
7
|
+
|
8
|
+
require 'net/http'
|
9
|
+
require 'uri'
|
10
|
+
|
11
|
+
|
12
|
+
class AlexaRemoteCtl
|
13
|
+
|
14
|
+
def initialize(domain: 'alexa.amazon.co.uk', device: {}, cookie: '')
|
15
|
+
|
16
|
+
@domain, @device, @cookie = domain, device, cookie
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
def pause
|
21
|
+
device_cmd('Pause')
|
22
|
+
end
|
23
|
+
|
24
|
+
def play
|
25
|
+
device_cmd('Play')
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def device_cmd(cmd)
|
31
|
+
|
32
|
+
serialno = @device[:serialno]
|
33
|
+
type = @device[:type]
|
34
|
+
|
35
|
+
url = "https://#{@domain}/api/np/command?deviceSerialNumber=#{serialno}&deviceType=#{type}"
|
36
|
+
uri = URI.parse(url)
|
37
|
+
request = Net::HTTP::Post.new(uri)
|
38
|
+
request.body = '{"type":"' + cmd + 'Command","contentFocusClientId":null}'
|
39
|
+
request.content_type = "application/x-www-form-urlencoded; charset=UTF-8"
|
40
|
+
|
41
|
+
request["Accept"] = "application/json, text/javascript, */*; q=0.01"
|
42
|
+
request["Accept-Language"] = "en-GB,en-US;q=0.9,en;q=0.8"
|
43
|
+
request["Connection"] = "keep-alive"
|
44
|
+
request["Content-Type"] = "application/x-www-form-urlencoded; charset=UTF-8"
|
45
|
+
request["Cookie"] = @cookie
|
46
|
+
request["Origin"] = "https://" + @domain
|
47
|
+
request["Referer"] = "https://#{@domain}/spa/index.html"
|
48
|
+
request["Sec-Fetch-Dest"] = "empty"
|
49
|
+
request["Sec-Fetch-Mode"] = "cors"
|
50
|
+
request["Sec-Fetch-Site"] = "same-origin"
|
51
|
+
request["User-Agent"] = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36"
|
52
|
+
request["X-Requested-With"] = "XMLHttpRequest"
|
53
|
+
request["csrf"] = "-990908140"
|
54
|
+
request["dnt"] = "1"
|
55
|
+
request["sec-ch-ua"] = "\" Not A;Brand\";v=\"99\", \"Chromium\";v=\"101\""
|
56
|
+
request["sec-ch-ua-mobile"] = "?0"
|
57
|
+
request["sec-ch-ua-platform"] = "\"Linux\""
|
58
|
+
request["sec-gpc"] = "1"
|
59
|
+
req_options = {
|
60
|
+
use_ssl: uri.scheme == "https",
|
61
|
+
}
|
62
|
+
|
63
|
+
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
|
64
|
+
http.request(request)
|
65
|
+
end
|
66
|
+
|
67
|
+
# response.code
|
68
|
+
# response.body
|
69
|
+
|
70
|
+
end
|
71
|
+
end
|
data.tar.gz.sig
ADDED
@@ -0,0 +1,2 @@
|
|
1
|
+
q#z�w��3��x��aB��D�������/������vHW筄H�.�`6�s���:�)Z�����VS,Cy��Kg�B����G��A?C <~#��M
|
2
|
+
g����z��Kt��0���9Q���� ��I;���uO{������D}�Ԙ��U(��z$}�H:%!���>]ҿ�Y����kp'��.�;�;�:MG1�O��Up�w�ޮ�5��,�B�{�jg�!�?��r�E��pbB����pO�>�~��Y�����4ԉI�Uѐ��U`�s8����+}ڨ�[�����,m�VW�tf#�g-{�����r8&+��aA�4gX��Y���X�H���cm���OMV��50y됒A�ԉTk5��u]�<V
|
metadata
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: alexa_remotectl
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- James Robertson
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
|
14
|
+
YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjIwNTE4MTkxMzQ5WhcN
|
15
|
+
MjMwNTE4MTkxMzQ5WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
|
16
|
+
cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQC7W8vV
|
17
|
+
4ue0QhDSQQO/iRZe3rg7QkusNfVdwmkYWwsFR7PqAE/P9RjOj7NIxH+SAqRq9vKv
|
18
|
+
Z1r20CEQYPOF0SMJ+UN6cipWWUs8mmLjUA4Z/Jo2Aiyl2F4bY+oxbE2BUGnJX8Eo
|
19
|
+
WrFZ7AAmveWi+24x1IaRJbHkOXVlLYAGtDXwNWxYe31nh5WD7djRT1hnCwcRfNHB
|
20
|
+
5gAY4USGSPN6P+PryxflhyCFfOkmJTqIwC6PG1Diy8/opwv+80l4xyQjQyfW0rNo
|
21
|
+
NnhkxO/b4UWeu2aazLkor3imTFYdYJOYI37KWH1BpO0kxgFoNvUg3dIFPUVgVAQ5
|
22
|
+
3MOEaPowH+XoXDB38o6+6kEhGLV3EOHceQPyFMhcj2vMEcyp/C9rObHMBL0lwkN0
|
23
|
+
cAl3OiFxAUvgCHT1horRJ5jEP0s8yUNB9iTr1jDVnjdGlmYi49Lgp6PzSN3wjeAc
|
24
|
+
M+9z912iO+aTXdvXzwRCW/eItLufIsmwGm1VdK94OmVw0sOgwvzAuzz8p4kCAwEA
|
25
|
+
AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQULAQPs2R8
|
26
|
+
xJ432jy8yJl9RoVRPzgwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
|
27
|
+
c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
|
28
|
+
BgkqhkiG9w0BAQsFAAOCAYEAb2yGmiois3cgQJ/KAXpkBqJjOG5Igv1Kfco83Y5c
|
29
|
+
K98PpxMuO7X1mrcp1c7rotpHzZv20Wbi1djbOk9tPezXmqruS9lePTz5GiLdHsZs
|
30
|
+
Xxbvh2dS45mYzaTC948yRYuoyBCtnhY2ZYiaQBIhGbSoLUE02xMS1mBlR/ShTX1V
|
31
|
+
JgIivkRTE3U9yfolP6joD3miZzB7X86EzY2901A+A8KjRGbKT6rbuA2+XTtRgmNM
|
32
|
+
Qzo/gng67BAn4itPrCtEPX+iU6AJUp01DmPiDB9ZvYVYqN2hNxVf+SWRFF6zHamu
|
33
|
+
WnPB4V8S0qtkM4q5XReXxDfQAad0FzGvZ/+IldudawzX+ypYS0v5zb6erhCCbFsK
|
34
|
+
l+X7fIMzWcjPLQD568qmpl63dmNxYDXKAW1ZIxXjRtvsziFKmCQ5RfXu/GlUXS0A
|
35
|
+
d/gEwBtUmduwWZNX2NOJehf8s1cnH9OBP7s1ziHjdkZCgkQm3QewRRcdfZeYwFi6
|
36
|
+
4kVEcApgAgd+04ctE6uiRn5o
|
37
|
+
-----END CERTIFICATE-----
|
38
|
+
date: 2022-05-18 00:00:00.000000000 Z
|
39
|
+
dependencies: []
|
40
|
+
description:
|
41
|
+
email: digital.robertson@gmail.com
|
42
|
+
executables: []
|
43
|
+
extensions: []
|
44
|
+
extra_rdoc_files: []
|
45
|
+
files:
|
46
|
+
- lib/alexa_remotectl.rb
|
47
|
+
homepage: https://github.com/jrobertson/alexa_remotectl
|
48
|
+
licenses:
|
49
|
+
- MIT
|
50
|
+
metadata: {}
|
51
|
+
post_install_message:
|
52
|
+
rdoc_options: []
|
53
|
+
require_paths:
|
54
|
+
- lib
|
55
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '0'
|
60
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
61
|
+
requirements:
|
62
|
+
- - ">="
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: '0'
|
65
|
+
requirements: []
|
66
|
+
rubygems_version: 3.2.22
|
67
|
+
signing_key:
|
68
|
+
specification_version: 4
|
69
|
+
summary: Experimental project to play or pause Alexa's music player using the SPA
|
70
|
+
API
|
71
|
+
test_files: []
|
metadata.gz.sig
ADDED