Open Ezeta31 opened 5 years ago
@Ezeta31 regarding the Captcha Login; try setting the LANGUAGE to the exact same string as your browser sends in the Accept-Language header.
Are you using the plain version? I just updated both versions. The strange thing is that I don't get any HTTP response output. What does your SET_OPTS look like? Or do you have an environment variable $OPTS?
The language is matching.
I use the following options:
SET_EMAIL='' SET_PASSWORD=''
SET_LANGUAGE="fr-FR"
SET_AMAZON='amazon.fr'
SET_ALEXA='alexa.amazon.fr'
SET_CURL='/usr/bin/curl'
SET_OPTS='--compressed --http1.1'
SET_BROWSER='Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:1.0) bash-script/1.0'
SET_TMP="/home/pi/alexa/tmp"
@Ezeta31 try setting the Language to the exact same String as your browser sends in the "Accept-Language:" header - then you might not have to copy the cookie from your browser every time ;) (Note: this requires your email and password in the script or in the env vars EMAIL/PASSWORD!)
Can you please down load the latest version and try something like
alexa_remote-control.sh -r "bbc 6 music"
And if that works:
alexa_remote-control.sh -e speak:"hello"
I think my first message was confusing: the problem is not the captcha (after refreshing the cookie, it is no more requesting it to me). So this point is ok. Anyway I checked the language and it is coherent with my browser header accepted language value.
The problem is that the request has no effect (and displays the above text).
I took your last version of the script, and executed your commands, but the result is the exact same one...
Note that the script is able to find my device, but not able to control it.
Can you send any command that works?
What is the output of
curl --version
The commands to list devices (-a) or to see the last used device (-lastalexa) are working well. But all others are returning the above result.
curl --version is returning 7.52.1
I have the exact same issue as Ezeta31:
# curl --version
curl 7.52.1 (arm-unknown-linux-gnueabihf) libcurl/7.52.1 OpenSSL/1.0.2l zlib/1.2.8 libidn2/0.16 libpsl/0.17.0 (+libidn2/0.16) libssh2/1.7.0 nghttp2/1.18.1 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL
# ./alexa_remote_control.sh -e speak:"Hello"
setting default device to:
Living room
sending cmd:speak:Hello to dev:Living room type:A3S5BH2HU6VAYF serial:G090LF1000752ETC customerid:A12D196SG9F9V
HTTP/1.1 0 x-amzn-RequestId: 23ef8f07-32cc-11e9-ac70-856117b76cbc
Access-Control-Allow-Origin: https://alexa.amazon.co.uk
Content-Encoding: deflate
Vary: Origin
Access-Control-Expose-Headers: x-amzn-dat-gui-client-upgrade,X-Amzn-Error,loginUrl,X-Amzn-RequestId,x-amzn-alt-domain,Date,Location
Access-Control-Allow-Credentials: true
Date: Sun, 17 Feb 2019 15:53:16 GMT
Connection: close
@rudybroersma @Ezeta31 very good that somebody else can reproduce this đź‘Ť
I guess this is some rather obvious thing that I overlooked. Your debugging help is highly appreciated!
The intended behavior is an output like this (note the missing cURL response headers) :
# export EMAIL='me@example.org'
# export PASSWORD='very_secret'
# ./alexa_remote_control.sh -e speak:"Hello"
setting default device to:
Living room
sending cmd:speak:Hello to dev:Living room type:A3Sxxxxxxxxx serial:G090xxxxxxxxxx customerid:A12xxxxxxxxx
#
(please anonymize your posts if you didn't already)
Two possible scenarios:
-a
and -lastalexa
commands grab the stdout of the curl command that's why you don't see anythingRegarding 1.) please have a look at the /tmp./alexa.devicelist.json if you can find any HTTP output besides the JSON {"devices"...}
.
One thing that comes to mind about 2.) is that those commands use -X GET
while most of the others use a -X POST
(HTTP method) for querying the API. There might be an issue with how your cURL handles things.
What is your OS and can you please see if the OPTS variable is empty: echo $OPTS
I assume you didn't change the TMP
path.
Please bear with me ... :)
Hi.
The device list looks alright to me:
cat /tmp/.alexa.devicelist.json | python -m json.tool
Prints out a lovely perfectly marked-up array of all the bits and pieces. I see no HTML code anywhere.
$OPTS is empty
OS is Raspbian:
# lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 9.6 (stretch)
Release: 9.6
Codename: stretch
I can't do any additional debugging now (I'm not with my Alexa devices, so I can't verify that they play anything). But I understand I should not see the HTTP response headers. I'll see if I can do some debugging myself some time this week.
@rudybroersma thank you for the detailed response. I actually took a Pi and tried there on RasbianLite and it works. In order to have the same pre-conditions, could you please re-download the script and configure it only through env vars (like I did in the example above). Please post your vars (except email+password).
Hmm, I found some time to debug this. Tried running the script, but it failed due to missing cookie file. Auto login failed, so I had to do the cookie export from Chrome.
For some strange reason the script now suddenly works. I didn't change anything (did not re-download yet, as you advised)
Same exact issue as @Ezeta31 -a and -lastalexa work fine, the rest simply prints out the request and doesn't perform any action. Running on home assistant docker on QNAP. script version: v0.11
curl 7.52.1 (x86_64-pc-linux-gnu) libcurl/7.52.1 OpenSSL/1.0.2q zlib/1.2.8 libidn2/0.16 libpsl/0.17.0 (+libidn2/0.16) libssh2/1.7.0 nghttp2/1.18.1 librtmp/2.3 Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL
Examples below are using an Echo Show v2, but it's the same for any device.
playing stationID:s44491 on dev:Office Echo Show type:AWZXXX serial:XXX mediaownerid:XXX HTTP/1.1 0 x-amzn-RequestId: cfadfcaa-4781-11e9-8236-XXX Access-Control-Allow-Origin: https://alexa.amazon.com Content-Encoding: deflate Vary: Origin Access-Control-Expose-Headers: x-amzn-dat-gui-client-upgrade,X-Amzn-Error,loginUrl,X-Amzn-RequestId,x-amzn-alt-domain,Date,Location Access-Control-Allow-Credentials: true Date: Sat, 16 Mar 2019 00:24:07 GMT Connection: close
setting default device to: Office Echo Show sending cmd:speak:test to dev:Office Echo Show type:AWZXXX serial:XXX customerid:XXX Sequence command: Alexa.Speak HTTP/1.1 0 x-amzn-RequestId: b57b548b-4782-11e9-b245-XXX Access-Control-Allow-Origin: https://alexa.amazon.com Content-Encoding: deflate Vary: Origin Access-Control-Expose-Headers: x-amzn-dat-gui-client-upgrade,X-Amzn-Error,loginUrl,X-Amzn-RequestId,x-amzn-alt-domain,Date,Location Access-Control-Allow-Credentials: true Date: Sat, 16 Mar 2019 00:30:32 GMT Connection: close
Any ideas?
I know it's been a while... today this happened to me as well. Looks like Amazon changed the way of where we get the CSRF cookie - please try the again with the latest version.
Alex
Hi, I also had it working again suddenly these last days, without any change on my side... I don't understand why but... great :-)
Le 18 juin 2019 Ă 21:04, Alex notifications@github.com a Ă©crit :
I know it's been a while... today this happened to me as well. Looks like Amazon changed the way of where we get the CSRF cookie - please try the again with the latest version.
Alex
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.
Join me .... Have the same problems. Even the version from 18.06 in use. No routines, or radio station, etc. are executed. Devices are recognized by the script and the commands sent. But probably Amazon does not accept them (registration?)
root @ loxberry: / opt / loxberry / data / plugins / alexaremote # ./alexa_remote_control.sh -d Kitchen -e automation: 'Window' sending cmd: automation: window to dev: kitchen type: xxxxxxxxxx serial: xxxxxxxxcc customerid: xxxxxxcccccc HTTP / 1.1 0x-amzn-RequestId: d07d0dcd-00a4-4701-acf9-b01601c9fb8e Access-Control-Allow-Origin: https://alexa.amazon.de Content encoding: deflate Vary: Origin Access-Control-Expose-Headers: x-amzn-dat-gui-client-upgrade, X-Amzn-Error, loginUrl, X-Amzn-RequestId, x-amzn-old-domain, Date, Location Access-Control-Allow-Credentials: true Date: Thu, 20 Jun 2019 08:20:34 GMT Connection: close
I implemented three different ways to download the CSRF now. Please try latest version (2019-06-28)!
For me i doesnt work too. But i never worked before. I have the newest version.
I'm also having the same issue - i did it on my sisters Raspberry PI and it worked great , i copied it exactly to mine from hers when i got home and it didnt work and then without change a few days later her one stopped working as well.
The listing -a works fine and it says its sending rhe info , but nothing happens - any ideas ? has anyone resolved this ?
root@Pi-Nas:/pi-nas-info# curl --version curl 7.64.0 (arm-unknown-linux-gnueabihf) libcurl/7.64.0 OpenSSL/1.1.1d zlib/1.2.11 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) libssh2/1.8.0 nghttp2/1.36.0 librtmp/2.3 Release-Date: 2019-02-06 Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL
root@Pi-Nas:/pi-nas-info# root@Pi-Nas:/pi-nas-info# root@Pi-Nas:/pi-nas-info# root@Pi-Nas:/pi-nas-info# root@Pi-Nas:/pi-nas-info# ./alexa_remote_control.sh -a the following devices exist in your account: Living room Everywhere Kitchen echo Hall Kitchen dot Taz Echo Show Harsh Kitchen This Device Mark's Alexa Apps
root@Pi-Nas:/pi-nas-info# ./alexa_remote_control.sh -e speak:"Hello" setting default device to: Living room sending cmd:speak:Hello to dev:Living room type:A2M35JJXXXXXXXX serial:G090LA09XXXXXXXX customerid:A1QXXXXXXXXX
root@Pi-Nas:/pi-nas-info#
Still having the same issue here since several years. I abandoned, and it it rarely working (randomly). I hope something more official (And stable) will come out some day...
Guillaume
PS: Envie de vous détendre et de vous amuser ? Jouez à mon tout nouveau jeu vocal pour Alexa: Miniventura. https://www.amazon.fr/Nutyzeta-Miniventura/dp/B089FLKZCR/ref=sr_1_2?dchild=1&device=mobile&qid=1591775234&rd=1&s=digital-skills&sr=1-2
Le 9 sept. 2020 Ă 15:45, mrussell-betbright notifications@github.com a Ă©crit :
 I'm also having the same issue - i did it on my sisters Raspberry PI and it worked great , i copied it exactly to mine from hers when i got home and it didnt work and then without change a few days later her one stopped working as well.
The listing -a works fine and it says its sending rhe info , but nothing happens - any ideas ? has anyone resolved this ?
root@Pi-Nas:/pi-nas-info# curl --version curl 7.64.0 (arm-unknown-linux-gnueabihf) libcurl/7.64.0 OpenSSL/1.1.1d zlib/1.2.11 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) libssh2/1.8.0 nghttp2/1.36.0 librtmp/2.3 Release-Date: 2019-02-06 Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL
root@Pi-Nas:/pi-nas-info# root@Pi-Nas:/pi-nas-info# root@Pi-Nas:/pi-nas-info# root@Pi-Nas:/pi-nas-info# root@Pi-Nas:/pi-nas-info# ./alexa_remote_control.sh -a the following devices exist in your account: Living room Everywhere Kitchen echo Hall Kitchen dot Taz Echo Show Harsh Kitchen This Device Mark's Alexa Apps
root@Pi-Nas:/pi-nas-info# ./alexa_remote_control.sh -e speak:"Hello" setting default device to: Living room sending cmd:speak:Hello to dev:Living room type:A2M35JJXXXXXXXX serial:G090LA09XXXXXXXX customerid:A1QXXXXXXXXX
root@Pi-Nas:/pi-nas-info#
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.
I have this same issue now after a few months of the script working fine using the chrome extension to get the cookies from an incognito window.
-a works but -e speak “hello” does not. It prints sending cmd with the correct ids, but that’s it. I added -v to the curl command and could see that -a returns http 200 back but -e returns 401 Unauthorized with the same cookies. I am in the US and running Mac BigSur. The alexa mobile app works fine.
The browser page at http://alexa.amazon.com in a browser enables viewing but not controlling devices. It seems to me there is a permission you need to control devices that is only returned to the alexa mobile app and is not in the cookie set obtained by the chrome extension.
I have this same issue : -a works but -e speak "hello" does not... Please help me.
It stopped for me and a bunch of users on Vera as well. It seems to be related to Simon Says skills crashing, so announcements are not working, but plain audio is. Other things seems to be unaffected.
So, I've found that while
-e speak:"something" is OK, -e speak:'something' is not.
there's probably some parsing problem, but I've managed to fix it by replacing double quotes with single quotes in the voice markup, and by using double quote as the container for the message.
@dbochicchio did you test the speak command from a command-line without Vera interfering?
If you're getting a complaint about the SimonSays skill not working, there is very likely something wrong in the SSML.
@adn77 as I've said, I've just swapped double quotes with single quotes, and it started working again. I changed the SSML markup as well, changing the markup as well.
Do you have any news ? I have the same problem with quote or double quote
Everything was working well, but since some times, the script was not working. I had a look and sens it fail because cookie expired and a captcha was required. So I made an update of the cookie and the error has gone... but commands seems to have no effect: my device have no reaction.
I have the following feedback in the console:
sending cmd:speak:test test test to dev:Echo Salon type:* serial:** customerid:***** Sequence command: Alexa.Speak HTTP/1.1 0 x-amzn-RequestId: f6ddf25f-2d68-11e9-bfd6-a39ce45b897c Access-Control-Allow-Origin: https://alexa.amazon.fr Content-Encoding: deflate Vary: Origin Access-Control-Expose-Headers: x-amzn-dat-gui-client-upgrade,X-Amzn-Error,loginUrl,X-Amzn-RequestId,x-amzn-alt-domain,Date,Location Access-Control-Allow-Credentials: true Date: Sun, 10 Feb 2019 19:20:45 GMT Connection: close
Do you see something I don't ?