diff --git a/app/layout.tsx b/app/layout.tsx index 963f792..0ddae53 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -2,24 +2,21 @@ import type { Metadata } from "next"; import { Inter } from "next/font/google"; import "./globals.css"; import { Providers } from "./providers"; -import { GoogleAnalytics } from "@/components/GoogleAnalytics"; -import { - GoogleTagManager, - GoogleTagManagerNoscript, -} from "@/components/GoogleTagManager"; import { JsonLd } from "@/components/JsonLd"; import { Matomo } from "@/components/Matomo"; -import { MicrosoftClarity } from "@/components/MicrosoftClarity"; const inter = Inter({ subsets: ["latin"] }); const SITE_URL = "https://songs2vid.com"; const SITE_NAME = "Songs2VID"; const DEFAULT_TITLE = - "Songs2VID - Automated Audio to Video Pipeline for Content Creators"; + "Songs2VID - Fast Audio to Video Converter for YouTube | TunesToTube Alternative"; const DEFAULT_DESCRIPTION = - "Convert MP3/WAV tracks and cover art into YouTube-ready videos instantly. Automated, Docker-ready, and lightweight pipeline."; -const OG_IMAGE = "https://songs2vid.com/og-image.png"; + "Convert MP3, WAV, and audio files into YouTube videos instantly. The fastest, privacy-focused online tool to upload music, beats, and podcasts directly to YouTube."; +const OG_TITLE = "Songs2VID - Fast Audio to Video Converter for YouTube"; +const OG_DESCRIPTION = + "Convert MP3 & audio files into YouTube videos instantly without heavy editing."; +const TWITTER_DESCRIPTION = "Convert MP3 & audio files into YouTube videos instantly."; export const metadata: Metadata = { metadataBase: new URL(SITE_URL), @@ -29,16 +26,7 @@ export const metadata: Metadata = { }, description: DEFAULT_DESCRIPTION, keywords: [ - "upload mp3 to youtube", - "upload flac to youtube", - "upload wav to youtube", - "mp3 to youtube hd", - "jpg to video", "mp3 to youtube", - "mp3 to youtube converter", - "upload mp3", - "mp3 uploader", - "youtube upload", "audio to video converter", "upload audio to youtube", "tunestotube alternative", @@ -54,26 +42,26 @@ export const metadata: Metadata = { canonical: SITE_URL, }, openGraph: { - title: DEFAULT_TITLE, - description: DEFAULT_DESCRIPTION, + title: OG_TITLE, + description: OG_DESCRIPTION, url: SITE_URL, siteName: SITE_NAME, type: "website", locale: "en_US", images: [ { - url: OG_IMAGE, - width: 1200, - height: 630, + url: "/logo.png", + width: 512, + height: 512, alt: SITE_NAME, }, ], }, twitter: { card: "summary_large_image", - title: DEFAULT_TITLE, - description: DEFAULT_DESCRIPTION, - images: [OG_IMAGE], + title: OG_TITLE, + description: TWITTER_DESCRIPTION, + images: ["/logo.png"], }, robots: { index: true, @@ -95,15 +83,9 @@ export default function RootLayout({ }>) { return ( -
-webhookUrl) you provide for automation (for
- example n8n or Make) - see section 3.5
- - If you purchase an Independent Producer subscription, a Developer & Automation - subscription, an Enterprise arrangement, or Free-plan extra credits, payment processing is - handled by Stripe. We do not store full payment card details on our servers. We may receive - and store billing status, Stripe customer and subscription identifiers, Checkout session or - payment references, plan identifiers, purchase amounts, and credit pack size for fulfilled - top-ups. -
- -- On Developer & Automation and Enterprise plans (and self-hosted deployments where - enabled), you may supply an absolute HTTP(S) callback URL when creating a render job. We - store that URL with the job record and, when encoding or upload reaches a terminal state, - may POST a JSON payload to it. Typical fields include event type, job and item identifiers, - status, optional YouTube video ID, error message, and completion timestamp. -
-- You choose the destination (for example your n8n webhook, Make scenario, or your own - server). We do not control how that endpoint stores or shares the payload. Only set URLs you - own or are authorized to use. Delivery is best-effort; we do not guarantee receipt or - retention by the receiving system. + If you purchase a Pro subscription or Free-plan extra credits, payment processing is handled + by Stripe. We do not store full payment card details on our servers. We may receive and store + billing status, Stripe customer and subscription identifiers, Checkout session or payment + references, purchase amounts, and credit pack size for fulfilled top-ups.
webhookUrl,
- we send job status JSON to that URL as described in section 3.5
- GTM-PZL4HXBR, which may deploy Google Analytics and other measurement tags we
- configure. See{" "}
-
- Google's Privacy Policy
-
- .
- These providers process data only as necessary to deliver their services and under @@ -267,9 +186,8 @@ export default function PrivacyPage() {
We do not sell, share, transfer, or disclose Google user data obtained via Google OAuth / YouTube APIs to third parties, except as needed to operate the Service infrastructure under - our control, when required by law, or when you explicitly configure a job webhook that may - include a YouTube video ID you caused to be published. Google / YouTube themselves process - data when we call their APIs on your behalf to perform actions you initiate. + our control or when required by law. Google / YouTube themselves process data when we call + their APIs on your behalf to perform actions you initiate.
You can revoke Songs2VID's access to your Google account at any time in{" "} @@ -278,7 +196,7 @@ export default function PrivacyPage() { target="_blank" rel="noopener noreferrer" > - Google Account - Security - Third-party access + Google Account → Security → Third-party access . After revocation (or when tokens can no longer be refreshed), we will stop using those credentials and delete or invalidate stored YouTube OAuth tokens and related connection data @@ -290,24 +208,18 @@ export default function PrivacyPage() {
webhookUrl) is
- kept while your account remains active and may be purged on account deletion, subject to
- short-term backups and troubleshooting logs
+ your jobs (typically removed after successful processing/upload or when no longer required)
- You may delete your account from Dashboard - Settings (account deletion + You may delete your account from Dashboard → Settings (account deletion control) or by emailing{" "} {LEGAL_OPERATOR.email}. Deletion removes account and connection data from active systems subject to legal retention obligations @@ -333,7 +245,7 @@ export default function PrivacyPage() {
@@ -350,43 +262,11 @@ export default function PrivacyPage() {
We also use Matomo, a self-hosted analytics tool on{" "}
- analytics.atakanozban.com, Google Analytics 4 (measurement
- IDs G-9XCHRS7LJR and G-2V3FSMMPQX), and{" "}
- Microsoft Clarity (project y4hxg6t7s6) on our website
- (including the landing page and dashboard) and documentation site. These tools help us
- understand how people use Songs2VID so we can improve functionality, reliability, and
- content. Typical data includes pages viewed, approximate location derived from IP,
- device/browser type, referring site, interaction events, and (for Clarity) anonymized
- session recordings and heatmaps. We configure Matomo for our domains under{" "}
- *.songs2vid.com. Google Analytics is provided by Google LLC; see{" "}
-
- Google's Privacy Policy
-
- . Microsoft Clarity is provided by Microsoft Corporation; see{" "}
-
- Microsoft's Privacy Statement
-
- .
-
- We also use Google Tag Manager (container GTM-PZL4HXBR) to
- load and manage measurement tags on our website, including Google Analytics. Tag Manager is
- a delivery mechanism; tags it loads may set cookies or collect usage data as described in
- this section.
-
- We use Google Search Console to verify site ownership and review search
- indexing and performance reports (such as queries, impressions, and clicks) for
- songs2vid.com. Search Console is operated by Google LLC and is not a page-level visitor
- tracking pixel.
+ analytics.atakanozban.com, on our website (including the landing page and
+ dashboard) and documentation site. Matomo helps us understand how people use Songs2VID so we
+ can improve functionality, reliability, and content. Typical data includes pages viewed,
+ approximate location derived from IP, device/browser type, referring site, and interaction
+ events. We configure Matomo for our domains under *.songs2vid.com.
We collect this analytics data to improve the Service, not to sell personal profiles to @@ -400,18 +280,17 @@ export default function PrivacyPage() {
We implement appropriate technical and organizational measures to protect your data, - including encryption in transit, encrypted storage of YouTube OAuth tokens at rest, hashed - API keys, access controls, and isolated processing environments. No method of transmission - or storage is 100% secure. + including encryption in transit, encrypted storage of YouTube OAuth tokens at rest, access + controls, and isolated processing environments. No method of transmission or storage is + 100% secure.
If data is transferred outside your country, we ensure appropriate safeguards such as standard contractual clauses or equivalent mechanisms where required by law. Google, Stripe, - Microsoft, and infrastructure providers may process data in other countries as described in - their policies. Webhook destinations you configure may also receive data in other countries - under your control. + and infrastructure providers may process data in other countries as described in their + policies.