DELETE FROM KEYWORDS WHERE ID_DOMAINE=34004958DoneDoneDone
URL:www.synthesia.io
Connection: keep-alive
Date: Thu, 23 Jan 2025 21:34:27 GMT
Content-Length: 166
Content-Type: text/html
Location: https://www.synthesia.io/
X-Cluster-Name: eu-south-1-prod-hosting-red
Location => https://www.synthesia.io/
Status => 301
<html>
<head><title>301 Moved Permanently</title></head>
(vide) Tentative en https
<!DOCTYPE html><!-- Last Published: Thu Jan 23 2025 12:47:57 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="www.synthesia.io" data-wf-page="65e89895c5a4b8d764c0d712" data-wf-site="65e89895c5a4b8d764c0d710" lang="en" data-wf-locale="en"><head><meta charset="utf-8"/><title>Free AI Video Generator - Create AI Videos in 140 Languages</title><link rel="alternate" hrefLang="x-default" href="https://www.synthesia.io/"/><link rel="alternate" hrefLang="en" href="https://www.synthesia.io/"/><link rel="alternate" hrefLang="fr" href="https://www.synthesia.io/fr"/><link rel="alternate" hrefLang="de" href="https://www.synthesia.io/de"/><link rel="alternate" hrefLang="es" href="https://www.synthesia.io/es"/><meta content="Create AI generated videos from text with the most advanced AI avatars and voiceovers in 140+ languages. Try our free AI video generator now!" name="description"/><meta content="Free AI Video Generator - Create AI Videos in 140 Languages" property="og:title"/><meta content="Create AI generated videos from text with the most advanced AI avatars and voiceovers in 140+ languages. Try our free AI video generator now!" property="og:description"/><meta content="https://cdn.prod.website-files.com/65e89895c5a4b8d764c0d710/664dff84b972812764843b0f_NEW_OG.gif" property="og:image"/><meta content="Free AI Video Generator - Create AI Videos in 140 Languages" property="twitter:title"/><meta content="Create AI generated videos from text with the most advanced AI avatars and voiceovers in 140+ languages. Try our free AI video generator now!" property="twitter:description"/><meta content="https://cdn.prod.website-files.com/65e89895c5a4b8d764c0d710/664dff84b972812764843b0f_NEW_OG.gif" property="twitter:image"/><meta property="og:type" content="website"/><meta content="summary_large_image" name="twitter:card"/><meta content="width=device-width, initial-scale=1" name="viewport"/><meta content="7sMogLnbmd8UrJm5RvESdRARC-sZv9geJ5autb-YMO0" name="google-site-verification"/><link href="https://cdn.prod.website-files.com/65e89895c5a4b8d764c0d710/css/synthesia-staging-eaffee4c3a254eec5b5e4.2047a13b4.min.css" rel="stylesheet" type="text/css"/><script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script><link href="https://cdn.prod.website-files.com/65e89895c5a4b8d764c0d710/664f0f482fa5a4d527d892bc_Favicon-Web-Security%201.png" rel="shortcut icon" type="image/x-icon"/><link href="https://cdn.prod.website-files.com/65e89895c5a4b8d764c0d710/6618fd69d436784c0bba5e9e_webclip.png" rel="apple-touch-icon"/><link href="https://www.synthesia.io/" rel="canonical"/><meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
<!-- Preload and Preconnect -->
<link rel="preconnect" href="https://www.googletagmanager.com">
<link rel="preconnect" href="https://www.google-analytics.com">
<link rel="preload" href="https://cdn.optimizely.com/js/5314775840718848.js" as="script" />
<link rel="preconnect" href="https://logx.optimizely.com" />
<!-- Google Tag Manager -->
<script defer>(function (w, d, s, l, i) {
w[l] = w[l] || []; w[l].push({
'gtm.start':
new Date().getTime(), event: 'gtm.js'
}); var f = d.getElementsByTagName(s)[0],
j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src =
'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', 'GTM-PS8FQR6');</script>
<!-- End Google Tag Manager -->
<!-- Optimizely Opt-Out Configuration (Set Before Script Loads) -->
<script>
// Opt out by default
window.optimizely = window.optimizely || [];
window.optimizely.push({ type: "holdEvents" });
</script>
<!-- Load Optimizely Script -->
<script src="https://cdn.optimizely.com/js/5314775840718848.js"></script>
<!-- Optimizely event checks -->
<script>
(function () {
// Global variables for checks
let isUsVisitor = false;
let hasAnalyticsConsent = false;
let isInExperiment = false;
const userCountryKey = "countryCode";
const experimentKey = "inExperiment";
// Utility: Evaluate conditions and send events if all conditions are met
function evaluateConditionsAndSendEvents() {
console.log(
`Evaluating conditions: ` +
`isUsVisitor=${isUsVisitor}, ` +
`hasAnalyticsConsent=${hasAnalyticsConsent}, ` +
`isInExperiment=${isInExperiment}`
);
if (isUsVisitor && hasAnalyticsConsent && isInExperiment) {
console.log("All conditions met. Sending events...");
window.optimizely.push({ type: "sendEvents" });
} else {
console.log("Conditions not met. Events not sent yet.");
}
}
// Check 1: Visitor Country
async function checkVisitorCountry() {
try {
let countryCode = sessionStorage.getItem(userCountryKey);
if (!countryCode) {
const response = await fetch("https://get.geojs.io/v1/ip/country.json");
if (response.ok) {
const data = await response.json();
countryCode = (data.country || "").toUpperCase();
sessionStorage.setItem(userCountryKey, countryCode);
} else {
console.warn("GeoJS API returned an error:", response.statusText);
countryCode = "";
}
}
isUsVisitor = countryCode === "US";
console.log(`Visitor is ${isUsVisitor ? "from the US" : `not from the US (${countryCode})`}`);
} catch (error) {
console.error("Error detecting visitor country:", error);
} finally {
evaluateConditionsAndSendEvents();
}
}
// Check 2: Analytics Consent
function initializeConsentListener(retries = 10, delay = 300) {
if (window._hsp && typeof window._hsp.push === "function") {
const _hsp = window._hsp;
_hsp.push([
"addPrivacyConsentListener",
(consent) => {
hasAnalyticsConsent = consent?.categories?.analytics || false;
console.log(`Analytics consent: ${hasAnalyticsConsent}`);
evaluateConditionsAndSendEvents();
},
]);
console.log("Consent listener initialized.");
} else {
if (retries > 0) {
console.log(`_hsp not defined yet. Retrying in ${delay}ms...`);
setTimeout(() => initializeConsentListener(retries - 1, delay), delay);
} else {
console.warn("Could not initialize consent listener after multiple retries.");
evaluateConditionsAndSendEvents();
}
}
}
// Check 3: In Experiment - including a synchronous check
function checkInExperiment() {
try {
// First, do a synchronous check using Optimizely's state object
if (typeof window.optimizely?.get === 'function') {
const variationMap = window.optimizely.get('state').getVariationMap();
if (variationMap && Object.keys(variationMap).length > 0) {
// User is already in an experiment
localStorage.setItem(experimentKey, "true");
isInExperiment = true;
console.log("User is already in an experiment (synchronous check).");
}
}
const alreadyInExperiment = !!localStorage.getItem(experimentKey);
if (!alreadyInExperiment) {
// If not already recorded, listen for the campaignDecided event
window.optimizely.push({
type: "addListener",
filter: { type: "lifecycle", name: "campaignDecided" },
handler: function (event) {
if (event.data?.decision?.variationId !== null) {
localStorage.setItem(experimentKey, "true");
isInExperiment = true;
console.log("User bucketed into an experiment (event listener).");
evaluateConditionsAndSendEvents();
}
},
});
} else {
// If already in experiment, isInExperiment = true set above
console.log("User already marked as inExperiment (localStorage check).");
}
} catch (error) {
console.error("Error checking inExperiment:", error);
} finally {
evaluateConditionsAndSendEvents();
}
}
document.addEventListener("DOMContentLoaded", async function () {
await checkVisitorCountry();
checkInExperiment();
initializeConsentListener();
// Final evaluation in case all conditions are already met
evaluateConditionsAndSendEvents();
});
})();
</script>
<script>
(function () {
const IP_STORAGE_KEY = 'userIP';
const storedIP = sessionStorage.getItem(IP_STORAGE_KEY);
if (storedIP) {
// IP is already stored, push to dataLayer
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'event': 'userIPRetrieved',
'userIP': storedIP // This is the plain IP
});
} else {
fetch('https://get.geojs.io/v1/ip.json')
.then(response => response.json())
.then((data) => {
const userIP = data.ip;
sessionStorage.setItem(IP_STORAGE_KEY, userIP);
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'event': 'userIPRetrieved',
'userIP': userIP
});
});
}
})();
</script>
<script>
/* Global variables,functions and script */
// FREE DEMO - Removes popular Free Email Providers
const regEXBusiness =
/^^([a-zA-Z0-9_\.+-]+@(gmail.*|yahoo.*|hotmail.*|aol.com|abc.com|yahoo.*|xyz.com|pqr.com|rediffmail.com|live.com|outlook.*|me.com|msn.com|ymail.com|mail.ru|protonmail.*|yopmail.*|icloud.*|gmx.*|vodamail.*|hostvn.net|email.com|yandex.*|kyriake.*))?$/;
// FREE DEMO - Email validation && Common mistakes
const regEXinvalidEmail =
/^^([a-zA-Z0-9_\.+-]+@(gmil.com|gamil.*|gmial.*|icould.com|gmaail.*|gemail.*|gnail.*|gmai.com|gmaii.*|gmaik.*|gmsil.*|iclaud.*|hormail.*|kyriake.*))?$/;
const synthesiaData = {
// G2 data
g2Score: 4.7,
g2ReviewCount: 1246,
// Platform data
numberOfAvatars: 160,
numberOfLanguages: 130,
numberOfTemplates: 60,
numberOfCustomers: 50000
};
const g2Score = 4.7;
const g2ReviewCount = 4.7;
// Global functions
function debounce(func, wait, immediate) {
var timeout;
return function () {
var context = this,
args = arguments;
var later = function () {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
}
function throttle(func, limit) {
let lastFunc;
let lastRan;
return function () {
const context = this;
const args = arguments;
if (!lastRan) {
func.apply(context, args);
lastRan = Date.now();
} else {
clearTimeout(lastFunc);
lastFunc = setTimeout(function () {
if ((Date.now() - lastRan) >= limit) {
func.apply(context, args);
lastRan = Date.now();
}
}, limit - (Date.now() - lastRan));
}
};
}
</script>
<style>
/*Hover effects for buttons*/
.button.is-hover {
background-color: var(--indigo-700);
box-shadow: 0 6px 20px 0 var(--shadow);
}
.button-secondary.is-hover {
background-color: var(--grey-200);
box-shadow: 0 0 0 1px var(--grey-300), 0 6px 20px 0 var(--shadow);
}
.button-tertiary.is-hover {
color: var(--indigo-700);
text-decoration: underline;
}
.button-dark.is-hover {
background-color: var(--indigo-300);
box-shadow: 0 6px 20px 0 var(--shadow);
}
.button-secondary-dark.is-hover {
background-color: var(--indigo-700);
box-shadow: 0 0 0 1px var(--grey-300), 0 6px 20px 0 var(--shadow);
}
.button-tertiary-dark.is-hover {
color: var(--indigo-100);
text-decoration: underline;
}
/*Trailing icon animation for buttons*/
.button.is-hover .w-embed:last-of-type,
.button-secondary.is-hover .w-embed:last-of-type,
.button-tertiary.is-hover .w-embed:last-of-type,
.button-dark.is-hover .w-embed:last-of-type,
.button-secondary-dark.is-hover .w-embed:last-of-type,
.button-tertiary-dark.is-hover .w-embed:last-of-type {
transform: translateX(.25rem);
}
/*Ability to select text on linkblock cards*/
a[linkblock-card="true"] {
-webkit-user-drag: none;
user-select: text;
}
</style>
<!-- END - Convert cards to linkblock -->
<script>
(function (global) { const SYN = {}; SYN.debug = false; function getTimestamp() { return new Date().toISOString() } SYN.log = function (...args) { if (SYN.debug) { console.log(`[${getTimestamp()}]`, ...args) } }; global.SYN = SYN })(typeof window !== 'undefined' ? window : global);
</script><!-- Additional hreflang link -->
<link rel="alternate" hreflang="sv" href="https://www.synthesia.io/sv">
<link rel="alternate" hreflang="pt-br" href="https://www.synthesia.io/pt-br" />
<link rel="alternate" hreflang="it" href="https://www.synthesia.io/it" />
<link rel="alternate" hreflang="nl" href="https://www.synthesia.io/nl" />
<link rel="alternate" hreflang="ja" href="https://www.synthesia.io/ja" />
<!-- Script to add additional language selector item -->
<script>
// Get the preferred browser language
const userLanguage = window.navigator.language.toLowerCase(); // Ensure it's lowercase for consistency
// Define language redirects
const languageRedirects = {
'sv': '/sv',
'it': '/it',
'pt-br': '/pt-br',
'nl': '/nl',
'ja': '/ja'
};
// Check if the URL has no parameters
if (!window.location.search && (window.location.href === 'https://synthesia-staging-eaffee4c3a254eec5b5e4.webflow.io/' || window.location.href === 'https://www.synthesia.io/')) {
// Check if the user's language matches any in the redirects
if (languageRedirects[userLanguage]) {
window.location.href = languageRedirects[userLanguage];
}
}
</script>
<script>
function runLocaleScript() {
// Define function to clone and modify a language item
function cloneAndModifyLanguageItem(wrapperSelector, languageOptions) {
const localeItems = document.querySelectorAll(`${wrapperSelector} .w-locales-item`);
if (localeItems.length === 0) return;
const templateItem = localeItems[localeItems.length - 1];
languageOptions.forEach(({ hreflang, href, languageCode, languageName }) => {
const newItem = templateItem.cloneNode(true);
const link = newItem.querySelector("a");
if (link) {
link.setAttribute("hreflang", hreflang);
link.href = href;
link.classList.remove("w--current");
}
const codeDiv = newItem.querySelector("div[lang-code]");
if (codeDiv) {
codeDiv.textContent = languageCode;
}
const nameDiv = newItem.querySelector("div[lang-name]");
if (nameDiv) {
nameDiv.textContent = languageName;
}
templateItem.insertAdjacentElement("afterend", newItem);
});
}
const newLanguages = [
{ hreflang: "pt-br", href: "/pt-br", languageCode: "pt br", languageName: "Portuguese" },
{ hreflang: "ja", href: "/ja", languageCode: "ja", languageName: "æ¥æ¬èª" },
{ hreflang: "nl", href: "/nl", languageCode: "nl", languageName: "Nederlands" },
{ hreflang: "it", href: "/it", languageCode: "it", languageName: "Italiano" },
{ hreflang: "sv", href: "/sv", languageCode: "sv", languageName: "Svenska" },
];
cloneAndModifyLanguageItem(".navbar_dropdown-locale-list-wrapper", newLanguages);
cloneAndModifyLanguageItem(".footer_dropdown-locale-list-wrapper", newLanguages);
const navbarDropdownListCollection = document.querySelector("nav.navbar_dropdown-locale-list-container");
const navbarLangCodeEl = navbarDropdownListCollection.querySelectorAll('div[lang-code=""]');
const footerDropdownListCollection = document.querySelector(".footer_dropdown-locale-list-wrapper");
const footerLangCodeEl = footerDropdownListCollection.querySelectorAll('div[lang-code=""]');
navbarLangCodeEl.forEach((element) => {
if (element.innerHTML.trim().toLowerCase() === "pt br") {
element.innerHTML = element.innerHTML.replace(
"br",
'<span class="ptbr-lang-code-nav">br</span>'
);
}
});
footerLangCodeEl.forEach((element) => {
if (element.innerHTML.trim().toLowerCase() === "pt br") {
element.innerHTML = element.innerHTML.replace(
"br",
'<span class="ptbr-lang-code-footer">br</span>'
);
}
});
}
const fallbackTimeout = setTimeout(runLocaleScript, 3000);
document.addEventListener("localeProcessingComplete", function () {
clearTimeout(fallbackTimeout);
runLocaleScript();
});
</script>
<link
rel="preload"
href="https://cdn.prod.website-files.com/65e89895c5a4b8d764c0d710/66436f06a1016be8fae136f3_Hero-Module.svg"
as="image"
type="image/svg+xml"
/>
<script>
document.addEventListener("DOMContentLoaded", function () {
// List of country codes to redirect
const redirectCountries = [
"GB", "NZ", "AU", "CA", "AT", "BE", "BG", "CY", "CZ", "DE", "DK", "EE", "ES", "FI",
"FR", "GR", "HR", "HU", "IE", "IT", "LT", "LU", "LV", "MT", "NL", "PL", "PT", "RO",
"SE", "SI", "SK", "AL", "AD", "AM", "BY", "BA", "FO", "GE", "GI", "IS", "IM", "XK",
"LI", "MK", "MD", "MC", "ME", "NO", "SM", "TR", "UA", "RS", "CH", "VA", "US", "JP",
"KR", "HK", "SG", "BH", "KW", "OM", "QA", "SA", "AE", "IL", "MX", "BR", "ZA",
];
const freeDemoBtn = document.querySelector("#free-demo-btn");
// Function to check if the user is on a mobile device
function isMobileDevice() {
return /Mobi|Android|iPhone|iPad|iPod/i.test(navigator.userAgent);
}
// Immediately fetch user's country code and update button href if necessary
(async function checkAndSetButton() {
try {
// Get user's country code using the geojs API
const response = await fetch("https://get.geojs.io/v1/ip/country.json");
const data = await response.json();
const countryCode = data.country.toUpperCase(); // Convert to uppercase
// Log the country code
// console.log("Country Code:", countryCode);
// Update href attribute of #free-demo-btn if the user is from one of the specified countries and not on a mobile device
if (redirectCountries.includes(countryCode) && !isMobileDevice()) {
freeDemoBtn.setAttribute("href", "/pricing"); // Update href attribute
freeDemoBtn.querySelector("div").innerText = "Get started for FREE";
// French
if (document.documentElement.lang === "fr") {
freeDemoBtn.setAttribute("href", "/fr/tarifs"); // Update href attribute
freeDemoBtn.querySelector("div").innerText =
"Commencez gratuitement";
}
// German
if (document.documentElement.lang === "de") {
freeDemoBtn.setAttribute("href", "/de/preise"); // Update href attribute
freeDemoBtn.querySelector("div").innerText =
"Jetzt kostenlos loslegen";
}
// Spanish
if (document.documentElement.lang === "es") {
freeDemoBtn.setAttribute("href", "/es/precios"); // Update href attribute
freeDemoBtn.querySelector("div").innerText =
"Comienza gratis";
}
return; // Stop further execution after updating href
}
} catch (error) {
console.error("Error fetching country code:", error);
}
})();
});
</script>
<style>
/* No intercom on tablet/mobile */
@media only screen and (max-width: 991px) {
iframe#intercom-frame,
.intercom-lightweight-app,
div#intercom-facade-btn {
display: none !important;
}
}
header .muxplayer-core-placeholder {
aspect-ratio: 16/9;
}
</style></head>
Free AI Video Generator - Create AI Videos in 140 Languages
Recherche META Description de la page
Create AI generated videos from text with the most advanced AI avatars and voiceovers in 140+ languages. Try our free AI video generator now!
Recherche META Keywords de la page
UPDATE DOMAINES SET server='',redirection='https://www.synthesia.io/',Status='200',err='',[TITRE]=N'Free AI Video Generator - Create AI Videos in 140 Languages',[DESCRIPTION]=N'Create AI generated videos from text with the most advanced AI avatars and voiceovers in 140+ languages. Try our free AI video generator now!',[KEYWORDS]=N'' WHERE id=34004958
0 Free AI Video Generator - Create AI Videos in 140 Languages Create AI generated videos from text with the most advanced AI avatars and voiceovers in 140+ languages. Try our free AI video generator now
0. Free (4)--------->0
1. AI (2)--------->0
2. Video (5)--------->0
3. Generator (9)--------->0
4. - (1)--------->0
5. Create (6)--------->0
7. Videos (6)--------->0
8. in (2)--------->0
9. 140 (3)--------->0
10. Languages (9)--------->0
13. generated (9)--------->0
15. from (4)--------->0
16. text (4)--------->0
17. with (4)--------->0
18. the (3)--------->0
19. most (4)--------->0
20. advanced (8)--------->0
22. avatars (7)--------->0
23. and (3)--------->0
24. voiceovers (10)--------->0
26. 140+ (4)--------->0
28. Try (3)--------->0
29. our (3)--------->0
34. now (3)--------->0
INSERT INTO KEYWORDS (keyword,id_domaine) VALUES (N'Free',34004958),(N'AI',34004958),(N'Video',34004958),(N'Generator',34004958),(N'-',34004958),(N'Create',34004958),(N'Videos',34004958),(N'in',34004958),(N'140',34004958),(N'Languages',34004958),(N'generated',34004958),(N'from',34004958),(N'text',34004958),(N'with',34004958),(N'the',34004958),(N'most',34004958),(N'advanced',34004958),(N'avatars',34004958),(N'and',34004958),(N'voiceovers',34004958),(N'140+',34004958),(N'Try',34004958),(N'our',34004958),(N'now',34004958)