Går det att anropa JavaScript-funktioner från andra back-end sprogrammeringsspråk utanför servern?

Permalänk

Går det att anropa JavaScript-funktioner från andra back-end sprogrammeringsspråk utanför servern?

Låt oss säga att vi har en hemsida som ser ut så här: https://ttsmp3.com/

Jag vill skriva in text på textrutan och sedan klicka "Download".
Men jag måste göra detta med en webbläsare.

Finns det ingen möjlighet att jag kan göra detta i ett externt programmeringsspråk som INTE ligger på deras server?

Målet är att jag ska kunna ladda ned mp3 filer igenom att anropa deras JavaScript-funktioner.
Det är alltså en applikation som fungerar som en webb läsare som bara kan gå till en specifik hemsida, fast det blir liksom inte grafisk.

Permalänk
Avstängd

Kolla om du kan hitta hur anropen ser ut med Postman eller liknande annars, något av en omväg att gå via JS.

Permalänk
Medlem

De har ett API ser det ut som så det borde vara fullt möjligt att göra det du är ute efter utan att blanda in client-side javascript.
Det bästa är att maila och fråga, troligtvis krävs det också att du har betalat för deras "1-year plan"
https://ttsmp3.com/faq

Permalänk
Skrivet av Bosnic:

De har ett API ser det ut som så det borde vara fullt möjligt att göra det du är ute efter utan att blanda in client-side javascript.
Det bästa är att maila och fråga, troligtvis krävs det också att du har betalat för deras "1-year plan"
https://ttsmp3.com/faq

Kostar pengar
Vill bara lära mig om det går att anropa javascript-funktioner från andra applikationer.

Permalänk
Medlem

JavaScript körs i webbläsaren hos klienten så ja, det går. Enklast är att bara köra ett script direkt i webbläsaren. Däremot har jag väldigt svårt att tro att du genom detta skulle få åtkomst till en resurs på deras server såsom en MP3-fil.

Visa signatur

AMD Ryzen 7 1700X 3.8 GHz 20MB | ASUS PRIME X370-PRO | MSI GeForce GTX 1080 Gaming X 8GB | G.Skill 16GB DDR4 3200 MHz CL14 Flare X | Corsair RM650x 650W

Permalänk
Skrivet av noMad17:

JavaScript körs i webbläsaren hos klienten så ja, det går. Enklast är att bara köra ett script direkt i webbläsaren. Däremot har jag väldigt svårt att tro att du genom detta skulle få åtkomst till en resurs på deras server såsom en MP3-fil.

Hur kan jag köra ett skript i t.ex. FireFox? Menar du JavaScript i FireFox?

Permalänk
Medlem
Skrivet av heretic16:

Hur kan jag köra ett skript i t.ex. FireFox? Menar du JavaScript i FireFox?

Ja, genom att använda utvecklarverktyget i din webbläsare kan du köra eget JavaScript.

Visa signatur

AMD Ryzen 7 1700X 3.8 GHz 20MB | ASUS PRIME X370-PRO | MSI GeForce GTX 1080 Gaming X 8GB | G.Skill 16GB DDR4 3200 MHz CL14 Flare X | Corsair RM650x 650W

Permalänk
Skrivet av noMad17:

Ja, genom att använda utvecklarverktyget i din webbläsare kan du köra eget JavaScript.

Lät jobbigt. Då är det bättre med ett musmakro om jag vill få lite automatik.

Permalänk
Medlem
Skrivet av heretic16:

Lät jobbigt. Då är det bättre med ett musmakro om jag vill få lite automatik.

Kan du inte göra det i Java och Vaadin?

Edit: Skämtåsido.. functionen som anropas vid "Download as MP3" är denna
https://pasteboard.co/JAcq1IW.png

Men du kommer inte kunna göra den från din backend pga det mest troligt är CORS blockat.

Permalänk
Skrivet av zaibuf:

Kan du inte göra det i Java och Vaadin?

Jo. I Java kan jag det. Men musmakro är ändå bökigt.
Då är det bättre att försöka anropa JS-funktioner från ett externt språk.

Permalänk
Medlem

Öppna webbläsarens utvecklarverktyg och titta på nätverksfliken samtidigt som du klickar på read. Det är inte mer komplicerat än ett HTTP-request för att generera mp3:n och sedan ett till för att ladda ner den. Snabbt Python-exempel på hur man kan använda API:t:

import requests r = requests.post("https://ttsmp3.com/makemp3_new.php", data={ "msg": "some text", "lang": "Joey", "source": "ttsmp3", }) print(r.json()["URL"])

Visa signatur

Spela Swemantle! Du vet att du vill.

Ibland har jag fel, men då är det någon annans fel.

Permalänk
Skrivet av LemonIllusion:

Öppna webbläsarens utvecklarverktyg och titta på nätverksfliken samtidigt som du klickar på read. Det är inte mer komplicerat än ett HTTP-request för att generera mp3:n och sedan ett till för att ladda ner den. Snabbt Python-exempel på hur man kan använda API:t:

import requests r = requests.post("https://ttsmp3.com/makemp3_new.php", data={ "msg": "some text", "lang": "Joey", "source": "ttsmp3", }) print(r.json()["URL"])

Snyggt! Det är så där det ska se ut

Vart är det du menar på "Read"?
Jag har utvecklingsverktyget uppe nu i Firefox, men jag kan inte riktigt hitta exakt

Det jag hittar är POST metoderna på Nätverk i FireFox.

Men jag har för mig att TTS kostar pengar.

Permalänk
Medlem
Skrivet av heretic16:

Snyggt! Det är så där det ska se ut

Vart är det du menar på "Read"?

"Read"-knappen på sidan du länkade syftade jag på, alltså den som startar uppläsningen. Funkar att klicka på "Download as MP3" också om, men då gick det vägen genom ytterligare ett PHP-skript (gissningsvis för att anpassa filnamnet), vilket jag tyckte var lite onödigt.

Skrivet av heretic16:

Jag har utvecklingsverktyget uppe nu i Firefox, men jag kan inte riktigt hitta exakt

Det jag hittar är POST metoderna på Nätverk i FireFox.

Nätverksfliken ger en lista över alla requests som sker under tiden utvecklarverktygen är öppna. Man kan klicka på dem för att bläddra i headers, payload, repsonsdata och allt göttit man kan tänkas behöva för att reverse engineera systemet. (swenglish overload i den meningen)

Skrivet av heretic16:

Men jag har för mig att TTS kostar pengar.

Jag tänker inte ge mig in i huruvida man får eller inte får göra så här. "Gör inget dumt" är den policy jag brukar hålla mig till för sådant här. Typexempel på dumma saker man kan göra är att använda deras tjänst i kommersiellt syfte eller skicka orimligt många requests.

EDIT: Det finns en rate limit som hindrar att man är alltför dum utan att betala.

Skrivet av ttsMP3.com:

Current Limit: ~375 words or 3,000 characters / day

Visa signatur

Spela Swemantle! Du vet att du vill.

Ibland har jag fel, men då är det någon annans fel.

Permalänk
Skrivet av LemonIllusion:

"Read"-knappen på sidan du länkade syftade jag på, alltså den som startar uppläsningen. Funkar att klicka på "Download as MP3" också om, men då gick det vägen genom ytterligare ett PHP-skript (gissningsvis för att anpassa filnamnet), vilket jag tyckte var lite onödigt.

Nätverksfliken ger en lista över alla requests som sker under tiden utvecklarverktygen är öppna. Man kan klicka på dem för att bläddra i headers, payload, repsonsdata och allt göttit man kan tänkas behöva för att reverse engineera systemet. (swenglish overload i den meningen)
https://i.imgur.com/0WBzN1F.png

Jag tänker inte ge mig in i huruvida man får eller inte får göra så här. "Gör inget dumt" är den policy jag brukar hålla mig till för sådant här. Typexempel på dumma saker man kan göra är att använda deras tjänst i kommersiellt syfte eller skicka orimligt många requests.

EDIT: Det finns en rate limit som hindrar att man är alltför dum utan att betala.

Tackar. Jag har för mig att på deras hemsida så måste man ha en API-nyckel också för att kunna använda deras API, dvs REST-kommandon. Så dom har nog tänkt igenom detta.

Citat:

API access comes for free with every 1-year premium purchase but has to be requested via e-mail.

https://ttsmp3.com/apidoc

Permalänk
Medlem
Skrivet av heretic16:

Tackar. Jag har för mig att på deras hemsida så måste man ha en API-nyckel också för att kunna använda deras API, dvs REST-kommandon. Så dom har nog tänkt igenom detta.

https://ttsmp3.com/apidoc

Att automatisera knappen ger väl tillgång till det du kommer åt i gratisversionen? Dvs. anropet som finns publikt kan du automatisera, men du kommer inte komma runt gränsen som är satt utan att betala för att få direkt tillgång till deras API.

Permalänk
Medlem
Skrivet av heretic16:

Tackar. Jag har för mig att på deras hemsida så måste man ha en API-nyckel också för att kunna använda deras API, dvs REST-kommandon. Så dom har nog tänkt igenom detta.

https://ttsmp3.com/apidoc

Du behöver nyckel för det stängda och dokumenterade API:t, men det hade du ju redan avfärdat som "för dyrt" i ett tidigare inlägg, så jag bortsåg från dess existens och lade mitt krut på att luska ut nog för att använda det odokumenterade API:t för gratistjänsten.

Visa signatur

Spela Swemantle! Du vet att du vill.

Ibland har jag fel, men då är det någon annans fel.

Permalänk
Skrivet av LemonIllusion:

Du behöver nyckel för det stängda och dokumenterade API:t, men det hade du ju redan avfärdat som "för dyrt" i ett tidigare inlägg, så jag bortsåg från dess existens och lade mitt krut på att luska ut nog för att använda det odokumenterade API:t för gratistjänsten.

Jag tolkade som att du behöver en API nyckel om du ska kunna anropa med REST-kommandon, oavsett om det är gratis eller inte.

Jag har bestämt mig att jag ska inte göra någon restfunktionalitet.
Jag tror jag bara laddar ned dessa MP3 filer för hand. Lika bra det. Dom kanske lägger ned sin hemsida om folk ska skicka gratis-kommandon dit.

Permalänk
Skrivet av zaibuf:

Att automatisera knappen ger väl tillgång till det du kommer åt i gratisversionen? Dvs. anropet som finns publikt kan du automatisera, men du kommer inte komma runt gränsen som är satt utan att betala för att få direkt tillgång till deras API.

Jag vet. Men jag tolkade som att jag behöver en API nyckel för att skicka REST-kommandon, oavsett mängd.

Permalänk
Medlem
Skrivet av heretic16:

Jag vet. Men jag tolkade som att jag behöver en API nyckel för att skicka REST-kommandon, oavsett mängd.

Ja och det är ju precis det du behöver - köpa tjänsten så du får en API-nyckel som sedan skickas med i alla dina anrop. Utan nyckeln lär API:et inte vilja hantera din anrop och troligtvis skicka dig till Unauthorized eller liknande

Vill du komma runt detta så får du hitta ett sätt att automatisera gränssnittet och använda dig av en webbläsare. Browser Automation är det du är ute efter, t.ex. https://chrome.google.com/webstore/detail/chromium-browser-au...

Exakt vad du vill få ut av detta vet jag ej, då du kommer köra samma kommando flera gånger. Du laddar alltså ner samma fil om och om igen utan att justera texten - i så fall får du göra något eget som kan hantera detta.

Visa signatur

NZXT H510 Flow MSI B450 Tomahawk MAX
AMD Ryzen 5800X3D RX 7900XTX Kingston Fury 64GB
LG C2 42" 4K@120Hz AOC Q27G2U 1440P@144Hz

Permalänk
Skrivet av Pamudas:

Ja och det är ju precis det du behöver - köpa tjänsten så du får en API-nyckel som sedan skickas med i alla dina anrop. Utan nyckeln lär API:et inte vilja hantera din anrop och troligtvis skicka dig till Unauthorized eller liknande

Vill du komma runt detta så får du hitta ett sätt att automatisera gränssnittet och använda dig av en webbläsare. Browser Automation är det du är ute efter, t.ex. https://chrome.google.com/webstore/detail/chromium-browser-au...

Exakt vad du vill få ut av detta vet jag ej, då du kommer köra samma kommando flera gånger. Du laddar alltså ner samma fil om och om igen utan att justera texten - i så fall får du göra något eget som kan hantera detta.

Men hur är det möjligt att jag kan vara "Unauthorized" om jag kör allt via ett skript, än om jag kör via webbläsaren så är jag "Authorized"?

Permalänk
Medlem
Skrivet av heretic16:

Men hur är det möjligt att jag kan vara "Unauthorized" om jag kör allt via ett skript, än om jag kör via webbläsaren så är jag "Authorized"?

För du har inte API-nyckeln som krävs för att anropa deras API?
Att du kör via webbläsaren "manuellt" är inte samma sak som att anropa deras API.

Visa signatur

NZXT H510 Flow MSI B450 Tomahawk MAX
AMD Ryzen 5800X3D RX 7900XTX Kingston Fury 64GB
LG C2 42" 4K@120Hz AOC Q27G2U 1440P@144Hz