https://am4a.cc/

Submitted URL:
https://am4a.cc/
Report Finished:

The outgoing links identified from the page

LinkText
https://www.reddit.com/r/ampcc/r/ampcc
https://x.com/amp_convert@amp_convert
https://ko-fi.com/am4accBuy me a coffee
https://amp3.cc
https://amp4.cc
https://ko-fi.com/amp3Ko-fi donations

JavaScript Variables · 141 found

Global JavaScript variables loaded on the window object of a page, are variables declared outside of functions and accessible from anywhere in the code within the current scope

NameType
0object
1object
2object
onbeforetoggleobject
documentPictureInPictureobject
onscrollendobject
moveProgressfunction
displayErrorfunction
hideErrorfunction
checkUrlfunction

Console log messages · 3 found

Messages logged to the web console

TypeCategoryLog
errorother
URL
https://platform-api.sharethis.com/panorama.js
Text
SYNC.JS: Aborting because TCF string was expected but not present.
errorother
URL
https://platform-api.sharethis.com/panorama.js
Text
SYNC.JS: Aborting because no consent was present on the request or stored server-side
errorother
URL
https://platform-api.sharethis.com/panorama.js
Text
SYNC.JS: Aborting due to above errors.

HTML

The raw HTML body of the page

<!DOCTYPE html><html lang="en"><head><meta http-equiv="origin-trial" content="A/kargTFyk8MR5ueravczef/wIlTkbVk1qXQesp39nV+xNECPdLBVeYffxrM8TmZT6RArWGQVCJ0LRivD7glcAUAAACQeyJvcmlnaW4iOiJodHRwczovL2dvb2dsZS5jb206NDQzIiwiZmVhdHVyZSI6IkRpc2FibGVUaGlyZFBhcnR5U3RvcmFnZVBhcnRpdGlvbmluZzIiLCJleHBpcnkiOjE3NDIzNDIzOTksImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9">
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <meta name="description" content="The best YouTube to M4A converter online. AM4A YouTube converter is free and safe to use, without ads. No login required.">

    <meta property="og:title" content="AM4A YouTube to M4A converter">
    <meta property="og:description" content="Convert your favourite videos and playlists to M4A for free.">
		<meta property="og:type" content="website">
		<meta property="og:url" content="https://am4a.cc">
		<meta property="og:image" content="https://am4a.cc/am4a-logo-og.jpg">

    <meta name="twitter:title" content="AM4A YouTube to M4A converter">
		<meta name="twitter:description" content="Convert your favourite videos and playlists to M4A for free.">
		<meta name="twitter:image" content="https://am4a.cc/am4a-logo-og.jpg">
		<meta name="twitter:card" content="summary_large_image">

    <title>YouTube to M4A converter - AM4A</title>
    <link rel="stylesheet" href="/styles/reset.css">
    <link rel="stylesheet" href="/styles/main.css">
		<link rel="preload" href="/fonts/Ubuntu-Regular.woff2" as="font" type="font/woff2" crossorigin="">
		<link rel="preload" href="/fonts/Ubuntu-Bold.woff2" as="font" type="font/woff2" crossorigin="">
    <script async="" src="https://platform-api.sharethis.com/panorama.js"></script><iframe id="pxcelframe" title="pxcelframe" src="//t.sharethis.com/a/t_.htm?ver=1.1523.23404&amp;cid=c010&amp;cls=B#cid=c010&amp;cls=B&amp;dmn=am4a.cc&amp;rnd=1728418822823&amp;tt=t.dhj&amp;dhjLcy=280&amp;lbl=pxcel&amp;flbl=pxcel&amp;ll=d&amp;ver=1.1523.23404&amp;ell=d&amp;cck=__stid&amp;pn=%2F&amp;qs=na&amp;rdn=am4a.cc&amp;rpn=%2F&amp;rqs=na&amp;cc=ES&amp;cont=EU&amp;ipaddr=" style="display: none;"></iframe><script async="" src="https://buttons-config.sharethis.com/js/669704fe595beb00197df9f6.js"></script><script type="text/javascript" async="" charset="utf-8" src="https://www.gstatic.com/recaptcha/releases/xds0rzGrktR88uEZ2JUvdgOY/recaptcha__en.js" crossorigin="anonymous" integrity="sha384-LsgFz6D3IXKi1Rzqj4uhSQDNZOj1dcZCWxIrJG5IYGWvpJ304xZdrK8AxV/LlQPB"></script><script src="script/theme.js"></script>
    <script src="https://www.google.com/recaptcha/api.js?render=6Lc8peUpAAAAAFMiAF67rni01ffUiQn_DSdYlkfK" defer=""></script>
		<script defer="" src="https://stat.amp3.cc/script.js" data-website-id="ef7d8e2c-0db3-4e58-9023-55729332c4db"></script>
		<script type="text/javascript" src="https://platform-api.sharethis.com/js/sharethis.js#property=669704fe595beb00197df9f6&amp;product=inline-share-buttons&amp;source=platform" async="async"></script>
    <link rel="icon" href="favicon.png" type="image/x-icon">
		<style>
h1{
	font-size: 20px;
}
h2{
	font-size: 20px;
	font-weight: bold;
}
ol{
	list-style-type: decimal;
}
.note{
	padding: 10px 20px;
	background-color: var(--note-background);
	margin-bottom: 40px;
	font-size: 15px;
	display: flex;
	align-items: center;
	line-height: 1.2em;
}
.note img{
	filter: var(--conversion-image-processing);
	margin-right: 10px;
	width: 20px;
}
.note a{
	color: var(--text-color);
}
.converter-box{
  background-color: var(--converter-box-background);
  box-shadow: var(--converter-box-shadow);
  padding: 50px 20px 50px 20px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: 900px;
  height: 200px;
}
#conversion-processing{
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	row-gap: 20px;
}
#conversion-processing.hidden{
	display: none;
}
#conversion-processing .animation-box{
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 36px;
	gap: 20px;
	letter-spacing: 0.1em;
}
#conversion-processing .card-title{
  max-width: 200px;
  overflow: hidden;
  white-space: nowrap;
	margin-bottom: 5px;
}
#conversion-processing .card-duration{
	opacity: 0.7;
}
@keyframes card{
  from{
    transform: matrix(1.00,0.02,0.02,1.00,0,0);
  }
  to{
    transform: matrix(1.00,-0.02,-0.02,1.00,0,0);
  }
}
#conversion-processing .animation-box span{
	margin-top: 5px;
}
#conversion-processing .animation-box img{
	filter: var(--conversion-image-processing);
	animation: rotation 1.5s infinite linear;
}
#conversion-processing-card{
	width: 300px;
  height: 80px;
	padding: 15px 30px;
	display: grid;
	justify-content: left;
	grid-template-areas: 
    "thumb title"
    "thumb duration";
	color: var(--text-color);
	background-color: var(--conversion-card-background);
	box-shadow: var(--conversion-shadow);
	text-align: center;
	animation: card;
	animation-iteration-count: infinite;
	animation-duration: 2s;
	animation-direction: alternate;
}
.card-title{
	grid-area: title;
	text-align: left;
}
.card-title .content{
	display: inline-block;
}
.card-duration{
	grid-area: duration;
	text-align: left;
}
.card-thumbnail{
	grid-area: thumb;
	width: 80px;
	height: 100%;
  margin-right: 10px;
  overflow: hidden;
  object-fit: cover;
}
.card-title.empty{
	height: 20px;
	width: 150px;
}
.card-duration.empty{
	height: 20px;
	width: 70px;
}
.card-title.empty, .card-duration.empty, .card-thumbnail.empty{
  background-color: var(--card-empty-background);
}
#conversion-finished.hidden{
	display: none;
}
#conversion-finished{
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 20px;
}
#conversion-finished h1{
	text-align: center;
	font-weight: 500;
	margin-bottom: 0;
}
#conversion-finished-buttons{
	display: flex;
	justify-content: center;
	gap: 20px;
}
a.button{
	display: flex;
	gap: 10px;
	align-items: center;
	text-decoration: none;
	color: #fff;
	background-color: #e24444;
	padding: 15px;
	border-radius: 5px;
	font-size: 16px;
}
a.button:hover{
	background-color: #e24444bb;
}
a.button.coffee{
	background-color: #e88400;
}
a.button.coffee:hover{
	background-color: #e88400bb;
}
a.button img{
	filter: invert(100%) sepia(0%) saturate(7439%) hue-rotate(185deg) brightness(107%) contrast(95%);
}

	/*Input and buttons*/
.converter-input-box.hidden{
	display: none;
}
.converter-input-box{
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 15px;
	width: 100%;
}
.converter-quality-button{
	display: flex;
	justify-content: center;
	column-gap: 15px;
}
.converter-input{
	position: relative;
	width: 100%;
	max-width: 600px;
}
.converter-alert{
	height: 0;
	display: flex;
	justify-content: center;
}
.converter-alert.hidden{
	display: none;
}
.alert-text.finished{
	background-color: #dc8d14;
	margin-top: 22px;
}
.alert-text{
	display: flex;
  align-items: center;
  padding: 20px;
	margin-top: 7px;
	background-color: #DC143C;
	border-radius: 20px;
	color: #f8f8f8;
}
#length-playlist .alert-text{
	height: 50px;
	text-align: center;
}
.input-text{
	height: 0;
	font-size: 15px;
}
.input-text span{
	position: absolute;
	top: -22px;
}
#input-url{
	font-family: Ubuntu, sans-serif;
	width: 100%;
	padding: 15px;
	font-size: 18px;
	border: none;
	border: 1px solid black;
	border-radius: 5px;
}
#input-url:focus{
	outline: none;
}
.button{
	font-family: Ubuntu, sans-serif;
	background-color: transparent;
	color: #fff;
	border: none;
	text-transform: uppercase;
	font-size: 18px;
	letter-spacing: 1px;
}
.converter-button-container{
	display: flex;
	background-color: #e24444;
	padding: 15px;
	border-radius: 5px;
}
.converter-button-container img{
	filter: invert(100%) sepia(0%) saturate(7439%) hue-rotate(185deg) brightness(107%) contrast(95%);
}
.converter-button-container:hover{
	cursor: pointer;
	background-color: #e24444bb;
}
.converter-button-container:hover img, a.button.convert-another:hover img{
	transform: rotate(180deg);
	transition-duration: 500ms;
}
.button:hover{
	cursor: pointer;
}
.content-second{
	width: 100%;
	max-width: 600px;
	text-align: center;
	margin-top: 100px;
}
.content-second p, .content-second ol{
	line-height: 1.6em;
	letter-spacing: 0.1em;
}
.content-second ol{
	padding-left: 1em;
}
.content-second ol li{
	margin-bottom: 20px;
}
.content-second > div{
	margin-bottom: 50px;
}
.content-second p a{
	color: var(--text-color);
}
/*Quality select display*/
.quality-select-box{
	position: relative;
}
#quality-select-display{
	display: flex;
	height: 100%;
	min-width: 110px;
	justify-content: space-between;
	border: var(--options-border);
	border-radius: 5px;
	padding: 15px 15px;
	font-size: 18px;
	background-color: var(--options-display);
	color: var(--text-color-options);
}
#quality-select-display:hover{
	cursor: pointer;
}
#quality-select-list{
	position: absolute;
	z-index: 1;
	background-color: var(--options-background);
	padding: 15px 0;
	top: 60px;
	width: 150px;
	border-radius: 15px;
	box-shadow: var(--options-shadow);
}
.quality-select-box.hidden #quality-select-list{
	display: none;
}
.quality-select-options{
	display: flex;
	justify-content: center;
	padding: 15px 20px;
	background-color: var(--options-background);
	font-size: 17px;
}
.quality-select-options.active:hover{
	background-color: var(--options-list-active);
}
.quality-select-options.active{
	background-color: var(--options-list-active);
}
.quality-select-options:hover{
	cursor: pointer;
	background-color: var(--options-list-hover);
}
#dropdown-icon-quality{
	filter: var(--options-icon-filter);
}
.quality-select-box #dropdown-icon-quality{
	transform: rotate(180deg);
}
.quality-select-box.hidden #dropdown-icon-quality{
	transform: rotate(0deg);
}
/*ANIMATIONS*/
@keyframes rotation{
  from{
    transform: rotate(359deg);
  }
  to{
    transform: rotate(0deg);
  }
}
.grecaptcha-badge {
	visibility: hidden;
}
/*FOR MOBILE / RESPONSIVE*/
@media (max-width: 750px){
	#conversion-processing{
		padding-bottom: 10px;
	}
	#conversion-finished h1{
		margin: 0;
	}
	 	#conversion-finished-buttons{
		flex-direction: column;
		gap: 10px;
		align-items: center;
	}
	.converter-box{
		padding: 0;
		background-color: transparent;
		box-shadow: none;
		height: unset;
	}
	.converter-input-box{
		margin-top: 40px;
		flex-direction: column;
	}
	.converter-quality-button{
		width: 100%;
	}
	.converter-button-container{
		width: 100%;
		justify-content: center;
	}
	.converter-input{
		max-width: 100%;
	}
	.alert-text{
		margin-top: 90px;
	}
	.alert-text.finished{
		margin-top: 0;
	}
	.input-text span{
		font-weight: 300;
	}
	.quality-select-box .input-text span{
		position: absolute;
		z-index: 1;
		top: -10px;
		left: 13px;
		padding: 0 5px;
		background-color: var(--converter-box-background);
	}
}
#quality-select-display-value{
	display: flex;
	align-items: center;
}
@media (max-width: 400px){
	#conversion-processing .animation-box{
		font-size: 28px;
	}
	#conversion-processing-card{
		padding: 10px 10px;
	}
	.card-thumbnail{
		width: 120px;
	}
	.note{
		flex-direction: column;
	}
	.note img{
		margin: 5px;
	}
}
.image-dark.hidden{
  display: none;
}
.image-light.hidden{
  display: none;
}
.reddit{
	display: flex;
  margin-bottom: 40px;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  row-gap: 10px;
  column-gap: 20px;
}
.reddit div{
	font-size: 20px;
}
.reddit a{
	color: #fff; 
	background-color: #FF5700; 
	padding: 10px 20px;
	letter-spacing: 0.05em;
  text-decoration: none;
  font-size: 18px;
  border-radius: 5px;
}
</style>

  <style type="text/css">#st-1 {
  font-family: "Helvetica Neue", Verdana, Helvetica, Arial, sans-serif;;
  direction: ltr;
  display: block;
  opacity: 1;
  text-align: center;
  z-index: 94034;
}
#st-1.st-animated {
  -moz-transition: o 0.2s ease-in, p 0.2s ease-in, a 0.2s ease-in, c 0.2s ease-in, i 0.2s ease-in, t 0.2s ease-in, y 0.2s ease-in; -ms-transition: o 0.2s ease-in, p 0.2s ease-in, a 0.2s ease-in, c 0.2s ease-in, i 0.2s ease-in, t 0.2s ease-in, y 0.2s ease-in; -o-transition: o 0.2s ease-in, p 0.2s ease-in, a 0.2s ease-in, c 0.2s ease-in, i 0.2s ease-in, t 0.2s ease-in, y 0.2s ease-in; -webkit-transition: o 0.2s ease-in, p 0.2s ease-in, a 0.2s ease-in, c 0.2s ease-in, i 0.2s ease-in, t 0.2s ease-in, y 0.2s ease-in; transition: o 0.2s ease-in, p 0.2s ease-in, a 0.2s ease-in, c 0.2s ease-in, i 0.2s ease-in, t 0.2s ease-in, y 0.2s ease-in;
}
#st-1.st-hidden {
  opacity: 0;
}

#st-1.st-preview {
  display: none!important;
  opacity: 0!important;
}
#st-1.st-hide {
  display: none;
}
#st-1 .st-btn {
  -moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
  -moz-transition: opacity 0.2s ease-in, top 0.2s ease-in; -ms-transition: opacity 0.2s ease-in, top 0.2s ease-in; -o-transition: opacity 0.2s ease-in, top 0.2s ease-in; -webkit-transition: opacity 0.2s ease-in, top 0.2s ease-in; transition: opacity 0.2s ease-in, top 0.2s ease-in;
  -moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
  border: none;
  cursor: pointer;
  display: inline-block;
  font-size: 16px;
  height: 48px;
  line-height: 48px;
  margin-right: 8px;
  padding: 0 12px;
  position: relative;
  text-align: center;
  top: 0;
  vertical-align: top;
  white-space: nowrap;
}
#st-1 .st-btn:last-child {
  margin-right: 0;
}
#st-1 .st-btn > svg {
  height: 24px;
  width: 24px;
  position: relative;
  top: 12px;
  vertical-align: top;
}
#st-1 .st-btn > img {
  display: inline-block;
  height: 24px;
  width: 24px;
  position: relative;
  top: 12px;
  vertical-align: top;
}
#st-1 .st-btn > span {
  -moz-transition: all 0.2s ease-in; -ms-transition: all 0.2s ease-in; -o-transition: all 0.2s ease-in; -webkit-transition: all 0.2s ease-in; transition: all 0.2s ease-in;
  color: #fff;
  display: inline-block;
  font-weight: 500;
  letter-spacing: 0.5px;
  min-width: 75px;
  opacity: 1;
  padding: 0 6px;
  position: relative;
  vertical-align: top;
}
#st-1.st-has-labels .st-btn {
  min-width: 150px;
}
#st-1.st-has-labels .st-btn.st-remove-label {
  min-width: 50px;
}
#st-1.st-has-labels .st-btn.st-remove-label > span {
  display: none;
}
#st-1.st-has-labels .st-btn.st-hide-label > span {
  display: none;
}
#st-1 .st-total {
  color: #555;
  display: inline-block;
  font-weight: 500;
  line-height: 18px;
  margin-right: 0;
  max-width: 80px;
  padding: 4px 8px;
  text-align: center;
}
#st-1 .st-total.st-hidden {
  display: none;
}
#st-1 .st-total > span {
  font-size: 24px;
  line-height: 26px;
  display: block;
  padding: 0;
}
#st-1 .st-total > span.st-shares {
  font-size: 14px;
  line-height: 14px;
}
#st-1.st-justified {
  display: flex;
  text-align: center;
}
#st-1.st-justified .st-btn {
  -moz-flex: 1;
-ms-flex: 1;
-webkit-flex: 1;
flex: 1;
}#st-1 .st-btn:hover {
  opacity: .8;
  top: -4px;
}#st-1 .st-btn[data-network='facebook'] {
  background-color: #4267B2
}
#st-1 .st-btn[data-network='facebook'] img {
  filter: 
}
#st-1 .st-btn[data-network='facebook'] > span {
  color: #fff
}
#st-1 .st-btn[data-network='twitter'] {
  background-color: #000000
}
#st-1 .st-btn[data-network='twitter'] img {
  filter: 
}
#st-1 .st-btn[data-network='twitter'] > span {
  color: #fff
}
#st-1 .st-btn[data-network='email'] {
  background-color: #7d7d7d
}
#st-1 .st-btn[data-network='email'] img {
  filter: 
}
#st-1 .st-btn[data-network='email'] > span {
  color: #fff
}
#st-1 .st-btn[data-network='sms'] {
  background-color: #ffbd00
}
#st-1 .st-btn[data-network='sms'] img {
  filter: 
}
#st-1 .st-btn[data-network='sms'] > span {
  color: #fff
}
#st-1 .st-btn[data-network='sharethis'] {
  background-color: #95D03A
}
#st-1 .st-btn[data-network='sharethis'] img {
  filter: 
}
#st-1 .st-btn[data-network='sharethis'] > span {
  color: #fff
}
#st-1 .st-btn[data-network='messenger'] {
  background-color: #448AFF
}
#st-1 .st-btn[data-network='messenger'] img {
  filter: 
}
#st-1 .st-btn[data-network='messenger'] > span {
  color: #fff
}
#st-1 .st-btn[data-network='reddit'] {
  background-color: #ff4500
}
#st-1 .st-btn[data-network='reddit'] img {
  filter: 
}
#st-1 .st-btn[data-network='reddit'] > span {
  color: #fff
}#st-1 .st-btn[data-network='snapchat'] > span {
  color: #333};
}</style></head>
  <body>
  	<header>
  			<div id="theme-button">Dark Theme</div>
  			<a href="https://am4a.cc" class="image-light"><img class="site-logo" alt="Website logo" src="am4a-site-logo.png"></a>
  			<a href="https://am4a.cc" class="image-dark hidden"><img class="site-logo" alt="Website logo" src="am4a-site-logo-dark.png"></a>
  	</header>
    <main>
    	<section class="main-content content-first">
    		<div class="reddit">
	    		<div>Join us on reddit:</div>
	    		<a href="https://www.reddit.com/r/ampcc/" target="_blank">r/ampcc</a>
	    	</div>
	    	<div class="x">
	    		<div>Join us on X:</div>
	    		<a href="https://x.com/amp_convert" target="_blank">@amp_convert</a>
	    	</div>
	    	<style>
	    		.reddit{
	    			margin-bottom: 10px;
	    		}
	    		.x{
					  display: flex;
					  margin-bottom: 40px;
					  justify-content: center;
					  align-items: center;
					  flex-wrap: wrap;
					  row-gap: 10px;
					  column-gap: 20px;
					}
					.x div{
					  font-size: 20px;
					}
					.x a{
					  color: #fff;
					  background-color: #657786; 
					  padding: 10px 20px;
					  letter-spacing: 0.05em;
					  text-decoration: none;
					  font-size: 18px;
					  border-radius: 5px;
					}
	    	</style>
    		<div class="note"><img src="coffee-icon.svg" alt="" width="25px"><span>Please help me keep this website ad free. <a href="https://ko-fi.com/am4acc" target="_blank"> Tip me for a coffee</a> and bookmark this site if you like it.</span></div>
        <div class="converter-box">
        	<form class="converter-input-box">
        		<div class="converter-input">
        			<div class="input-text">
        				<span>Enter YouTube Video or Playlist URL</span>
        			</div>
        			<input id="input-url" type="text" placeholder="https://www.youtube.com/watch?v=r39bqo510g">
        			<!--<div>Site is currently being upgraded. Service may be experiencing interuptions.</div>-->
        			<div class="converter-alert hidden"><span class="alert-text"></span></div>
        		</div>
        		<div class="converter-quality-button">
        			<div class="quality-select-box hidden">
        				<div class="input-text">
        					<span>Quality</span>
        				</div>
        				<div id="quality-select-display"><span id="quality-select-display-value">Best</span><img id="dropdown-icon-quality" alt="" src="dropdown-icon.svg" width="15px"></div>
        				<div id="quality-select-list">
        					<div id="quality-select-list-1" quality="0" class="quality-select-options active">Best</div>
        					<div id="quality-select-list-2" quality="5" class="quality-select-options">Medium</div>
        					<div id="quality-select-list-3" quality="10" class="quality-select-options">Worst</div>
        				</div>
        			</div>
        			<input id="quality-select-value" type="hidden" value="320k">
        			<label class="converter-button-container">
	        				<img src="converter-icon.svg" alt="" width="20px">
	        				<input id="convert-button" class="button" type="submit" value="Convert">
        			</label>
        		</div>
        	</form>
        	<div id="conversion-processing" class="hidden">
        		<div class="animation-box">
	        		<img src="converter-icon.svg" alt="" width="50px">
	        		<span>Converting...</span>
        		</div>
        		<div class="progress-bar">
        			<div class="progress"></div>
        			<span class="progress-container"><span class="progress-percent">0</span>%</span>
        		</div>
        		<style>
        			.progress-bar{
        				display: flex;
        				align-items: center;
        				justify-content: center;
        				position: relative;
        				width: 260px;
    						height: 30px;
        				background-color: var(--progress-bar-background);
        				letter-spacing: 2px;
        				font-size: 16px;
        				color: #f8f8f8;
        			}
        			.progress-container{
        				position: relative;
        				z-index: 1;
        			}
        			.progress{
        				position: absolute;
        				top: 0;
        				left: 0;
        				height: 100%;
        				background-color: var(--progress-bar);
        				transition: width 980ms;
        			}
        		</style>
        		<div id="conversion-processing-card">
        				<img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" class="card-thumbnail empty">
	        			<div class="card-title empty"><span class="content"></span></div>
	        			<div class="card-duration empty"></div>
        		</div>
        	</div>
        	<div id="conversion-finished" class="hidden">
        		<h1></h1>
        		<div id="conversion-finished-buttons">
	        		<a id="download-button" class="button download" href="" download=""><img src="download-icon.svg" alt="" width="25px">DOWNLOAD</a>
	        		<a class="button coffee" href="https://ko-fi.com/am4acc" target="_blank"><img src="coffee-icon.svg" alt="" width="25px">Buy me a coffee</a>
	        		<a id="convert-another-button" class="button convert-another" href=""><img src="converter-icon.svg" alt="" width="23px">Convert Another</a>
        		</div>
        		<div class="converter-alert finished hidden"><span class="alert-text finished"></span></div>
        	</div>
        </div>
	    </section>
	    <section class="content-second">
	    	<div>
	    		<p style="text-align: center; margin-bottom: 20px">If you like my website, feel free to share it:</p>
	    		<div style="margin-top: 20px" class="sharethis-inline-share-buttons st-center  st-inline-share-buttons st-animated" id="st-1"><div class="st-btn st-first" data-network="facebook" style="display: inline-block;">
  <img alt="facebook sharing button" src="https://platform-cdn.sharethis.com/img/facebook.svg">
  
</div><div class="st-btn" data-network="twitter" style="display: inline-block;">
  <img alt="twitter sharing button" src="https://platform-cdn.sharethis.com/img/twitter.svg">
  
</div><div class="st-btn" data-network="email" style="display: inline-block;">
  <img alt="email sharing button" src="https://platform-cdn.sharethis.com/img/email.svg">
  
</div><div class="st-btn" data-network="sharethis" style="display: inline-block;">
  <img alt="sharethis sharing button" src="https://platform-cdn.sharethis.com/img/sharethis.svg">
  
</div><div class="st-btn" data-network="messenger" style="display: inline-block;">
  <img alt="messenger sharing button" src="https://platform-cdn.sharethis.com/img/messenger.svg">
  
</div><div class="st-btn st-last" data-network="reddit" style="display: inline-block;">
  <img alt="reddit sharing button" src="https://platform-cdn.sharethis.com/img/reddit.svg">
  
</div></div>
	    	</div>
	    	<div>
	    		<p style="text-align: center; margin-bottom: 20px">Need to download a YouTube video MP3 audio? Check out my AMP3 YouTube to MP3 converter with playlist support:</p>
	    		<a href="https://amp3.cc" class="image-light"><img style="width: 200px" class="site-logo" alt="AMP3 Website logo" src="amp3-logo.png"></a>
					<a href="https://amp3.cc" class="image-dark hidden"><img style="width: 200px" class="site-logo" alt="AMP4 Website logo" src="amp3-logo-dark.png"></a>
	    	</div>
	    	<div>
	    		<p style="text-align: center; margin-bottom: 20px">Need to download a YouTube video? Check out my AMP4 video downloader:</p>
	    		<a href="https://amp4.cc" class="image-light"><img style="width: 200px" class="site-logo" alt="AMP4 Website logo" src="amp4-site-logo.png"></a>
					<a href="https://amp4.cc" class="image-dark hidden"><img style="width: 200px" class="site-logo" alt="AMP4 Website logo" src="amp4-site-logo-dark.png"></a>
	    	</div>
	    	<div>
	    		<h2>What is YouTube to M4A Converter</h2>
	    		<p>A YouTube to M4A converter is a tool which allows you to download audio from videos and playlists on YouTube.com and save it in M4A format. That way you can listen to YouTube songs and podcasts on your device offline and where you can't access the YouTube. Our YouTube to M4A Converter is free to use. You can download anything from YouTube in M4A format simply by copy and pasting an URL from YouTube video.</p>
	    	</div>
	    	<div>
	    		<h2>Why to use AM4A YouTube to M4A converter</h2>
	    		<p>AM4A converter is fast and free to use. It also supports playlist downloads. Videos and playlists are supported for up to 120 minutes in length. There is no need for users to register or login to convert YouTube videos to M4A. AM4A converter is ad-free, that means that there are no ads on the page - because we all know how annoying ads can be. It is totally safe to use, without any bloat or viruses. I also don't collect any kind user information. Thats why AM4A is one of the best and safest YouTube to M4A converters out there. Since I don't make any money from ads, I would really appreciate any donations to cover the server cost, so I can keep it ad-free. Link for donations with Ko-fi: <a href="https://ko-fi.com/amp3">Ko-fi donations</a> If you like AM4A converter, please bookmark it.</p>
	    	</div>
	    	<div>
	    		<h2>How to use AM4A YouTube to M4A Converter</h2>
	    		<p>
	    			</p><ol>
	    				<li>You visit YouTube.com and find a video of a song or any other video, which you would like to convert to M4A. AM4A also works for playlists, so you can download multiple songs at once that are in the playlist. You then copy the video or playlist URL from the upper URL bar in your browser. If you are on Android phone or an iPhone, you click share icon bellow the video, and then click on copy link button.</li>
	    				<li>You then go to my website and paste the copied URL to the input field.</li>
	    				<li>Next, you select the quality of your M4A file / files. You click on the quality button, and select prefed quality from the dropdown. Default quality is set to "Best", that is the best quality you can convert into. Since on nowdays devices, storage isn't a problem anymore, I reccomend that you convert YouTube videos to M4A with "Best" quality setting, to get the best sound possible.</li>
	    				<li>After that, you click on the Convert button, and your conversion will start.</li>
	    				<li>When the conversion is finished, a download button will appear. You click on this button, and your M4A file will start to download. If you converted a playlist, all of your songs in a playlist, will be saved in a .zip file. You can then click on Convert another button, to convert another YouTube video or playlist.</li>
	    			</ol>
	    		<p></p>
	    	</div>
	    </section>
    </main>
	<footer>
		<div class="footer-content">
			<div>©2024 am4a.cc</div>
			<div class="logos-footer">
				<a href="https://am4a.cc"><img class="site-logo" alt="Website logo" src="https://am4a.cc/am4a-site-logo-white.png"></a>
				<a href="https://amp3.cc"><img class="site-logo" alt="AMP3 Website logo" src="https://am4a.cc/amp3-logo-white.png"></a>
				<a href="https://amp4.cc"><img class="site-logo" alt="AMP4 website logo" src="https://am4a.cc/amp4-site-logo-white.png"></a>
			</div>
			<div id="terms">
				<a href="/contact">Contact</a>
				<a href="/copyright-claims">Copyright claims</a>
				<a href="/privacy-policy">Privacy Policy</a>
				<a href="/terms-of-use">Terms of Use</a>
			</div>
		</div>
<style>
	.logos-footer{
		display: flex;
		gap: 10px;
		justify-content: center;
		align-items: center;
		flex-wrap: wrap;
	}
	.logos-footer img{
		width: 160px;
	}
</style>
<script>
	function moveProgress(percent){
		let progressBar = document.querySelector(".progress-bar");
		let progress = document.querySelector(".progress");
		document.querySelector(".progress-percent").innerText = Math.round(percent/100*90);
		progress.style.width = (Math.round(percent/100*90))+"%";
	}
	function displayError(errorMessage, type){
		let setError;

		if(errorMessage == "final"){
			setError = "Conversion failed. Try again.";
		}else if(errorMessage == "url"){
			setError = "Invalid YouTube Video URL";
		}else if(errorMessage){
			setError = errorMessage;
		}else{
			setError = "Something went wrong. Try again.";
		}
		if(type == "finished"){
			document.querySelector(".alert-text.finished").innerText = setError;
			document.querySelector(".converter-alert.finished").classList.remove("hidden");
		}else{
			document.querySelector(".alert-text").innerText = setError;
			document.querySelector(".converter-alert").classList.remove("hidden");
		}
	}

	function hideError(){
		document.querySelector(".converter-alert").classList.add("hidden");
		document.querySelector(".converter-alert.finished").classList.add("hidden");
	}

	function checkUrl(){
		let inputUrl = document.querySelector("#input-url").value;
		const regex = new RegExp(/^[A-z0-9\-&=_/.:?]*((youtube\.com)|(youtu\.be)|(soundcloud\.com))[A-z0-9\-&=_/.:?%]+$/, "i");
		return inputUrl.match(regex);
	}

	function displayInitial(){
		document.querySelector("#input-url").value = "";
		document.querySelector("#conversion-processing-card .card-thumbnail").src = "data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=";
		document.querySelector("#conversion-processing-card .card-thumbnail").classList.add("empty");
		document.querySelector("#conversion-processing-card .card-title .content").innerText = "";
		document.querySelector("#conversion-processing-card .card-title").classList.add("empty");
		document.querySelector("#conversion-processing-card .card-duration").innerText = "";
		document.querySelector("#conversion-processing-card .card-duration").classList.add("empty");
		document.querySelector(".converter-input-box").classList.remove("hidden");
		document.querySelector("#conversion-processing").classList.add("hidden");
		document.querySelector("#conversion-finished").classList.add("hidden");
		localStorage.removeItem("sessionId");
		localStorage.removeItem("playlist");
		document.querySelector(".progress-percent").innerText = "0";
		document.querySelector(".progress").style.width = "0%";
		if(typeof intervalProgress !== "undefined"){
			clearInterval(intervalProgress);
		}
	}

	function displayProcessing(){
		document.querySelector(".converter-input-box").classList.add("hidden");
		document.querySelector("#conversion-processing").classList.remove("hidden");
		document.querySelector("#conversion-finished").classList.add("hidden");
	}

	function displayFinished(){
		document.querySelector(".converter-input-box").classList.add("hidden");
		document.querySelector("#conversion-processing").classList.add("hidden");
		document.querySelector("#conversion-finished").classList.remove("hidden");
	}
	function socketInit(session, type){
		let playlist;
		let ws;

		if(type="reinit"){
			hideError();
			displayProcessing();
		}

		if(localStorage.getItem("playlist")){
			playlist = true;
		}else{
			playlist = false;
		}

		try{
			ws = new WebSocket("wss://am4a.cc/ws", "json");
		}catch(error){
			hideError();
	  	displayError("Service temporarily unavailable");
	  	displayInitial();
		}
		
		ws.onopen = function(e){
		  ws.send(session);
		  localStorage.setItem('sessionId', session);
		};
		ws.onmessage = function(event){
			let data = JSON.parse(event.data);
			if(data['event']){
				switch(data['event']){
				  case 'queue':
				  	document.querySelector(".progress-percent").innerText = "0";
						document.querySelector(".progress").style.width = "0%";
						if(typeof intervalProgress !== "undefined"){
							clearInterval(intervalProgress);
						}
				  	document.querySelector(".card-duration").classList.remove("empty");
				  	document.querySelector(".card-title").classList.remove("empty");
				  	document.querySelector("#conversion-processing-card .card-thumbnail").src = data['thumbnail'];
						document.querySelector("#conversion-processing-card .card-title .content").innerText = data['title'];
						document.querySelector("#conversion-processing-card .card-duration").innerText = data['duration'];
						let titleContent = document.querySelector("#conversion-processing-card .card-title .content");
						let titleContainer = document.querySelector("#conversion-processing-card .card-title");
						titleContent.style.transform = "translateX(0px)";
						if((titleContent.offsetWidth-20) > titleContainer.offsetWidth){
							titleContent.animate([
							  {transform: 'translateX(0px)'},
							  {transform: 'translateX(-'+(titleContent.offsetWidth-titleContainer.offsetWidth/2)+'px)'}
							],{
							  duration: titleContent.offsetWidth*20,
							  iterations: Infinity
							});
						}
					break;

					case 'download':
						if(data['progress']<100){
							moveProgress(data['progress']);
						}else if(data['progress']>=100){
							moveProgress(data['progress']);
							var intervalProgress = setInterval(function(){
								let currentPercent = parseInt(document.querySelector(".progress-percent").innerText);
								if(currentPercent != 100){
									document.querySelector(".progress-percent").innerText = ++currentPercent;
									document.querySelector(".progress").style.width = (++currentPercent) + "%";
								}else{
									if(typeof intervalProgress !== "undefined"){
										clearInterval(intervalProgress);
									}
								}
							}, 1000);
						}
					break;
						
				  case 'file':
						if(data['done']){
							document.querySelector(".progress-percent").innerText = "100";
							document.querySelector(".progress").style.width = "100%";
							if(typeof intervalProgress !== "undefined"){
								clearInterval(intervalProgress);
							}
							let downloadFile = encodeURIComponent(data['file']);
							let downloadTitle = encodeURIComponent(data['title']);
							let fileType = data['file'].split(".").pop();
							let worker = encodeURIComponent(data['worker']);
							let downloadUrl;
							
							if(playlist){

								document.querySelector("#download-button").download = data['title']+" [AM4A].zip";

								if(worker == "w3."){
	              	downloadUrl = "https://w3.am4a.cc/"+session+"/"+downloadFile;
	              }else{
	                downloadUrl = "https://am4a.cc/dl/"+worker+"/"+session+"/"+downloadFile;
	              }
							}else{
								document.querySelector("#download-button").download = data['title']+" [AM4A].m4a";

								if(worker == "w3."){
	                downloadUrl = "https://w3.am4a.cc/"+session+"/"+downloadTitle+"."+fileType;
	              }else{
	                downloadUrl = "https://am4a.cc/dl/"+worker+"/"+session+"/"+downloadTitle+"."+fileType;
	              }
							}

							document.querySelector("#download-button").href = downloadUrl;
							
							document.querySelector("#conversion-finished h1").innerText = data['title'];
							localStorage.removeItem("sessionId");
							displayFinished();
							ws.close();
						}else{
							playlist = true;
							localStorage.setItem("playlist", "true");
						}
					break;
						
				  case 'error':
				  	if(data['message'] == "failed to run job"){
				  		hideError();
				  		displayError("Video URL not found.");
				  		displayInitial();
				  	}else if(data['message'] == "max duration exceeded" && playlist){
				  		hideError();
				  		displayError("Playlist length cropped to 240 min", "finished");
				  	}else if(data['message'] == "max duration exceeded" && !playlist){
				  		hideError();
				  		displayError("Video length of 240 min exceeded.");
				  		displayInitial();
				  	}
					break;
						
				  default:
				  	hideError();
						displayError("final");
						displayInitial();
				}
			}
		};
		ws.onclose = function(event){
		  if(event.wasClean){
				ws.close();
				localStorage.removeItem("sessionId");
				localStorage.removeItem("playlist");
		  }else{
		  	if(localStorage.getItem("sessionId")){
					socketInit(localStorage.getItem("sessionId"));
		  	}else{
			  	hideError();
			  	displayError("final");
			  	displayInitial();
				}
		  }
		};
		ws.onerror = function(event){
			ws.close();
			hideError();
			displayInitial();
		  displayError("final");
		};
	}
	if(localStorage.getItem("sessionId")){
		socketInit(localStorage.getItem("sessionId"), "reinit");
	}

	const formSubmit = document.querySelector("form.converter-input-box");
	const convertAnotherButton = document.querySelector("#convert-another-button");
	const downloadButton = document.querySelector("#download-button");

	convertAnotherButton.addEventListener("click", function(event){
		event.preventDefault();
		displayInitial();
		hideError();
	});
	downloadButton.addEventListener("click", function(event){
		localStorage.removeItem("sessionId");
	});
	formSubmit.addEventListener("submit", function(event){
		event.preventDefault();
		
		if(checkUrl()){

			hideError();
			displayProcessing();

			grecaptcha.execute('6Lc8peUpAAAAAFMiAF67rni01ffUiQn_DSdYlkfK', {action: 'submit'}).then(function(token) {

				let formData = new FormData();
				formData.append('reToken', token);
        fetch('/recaptcha', {
				  method: 'POST',
				  headers:{
						'Accept': 'application/json'
				  },
				  body: formData
				}).then(function(res){return res.json();})
					.then(function(data){
						if(data['success']){
							let url = document.querySelector("#input-url").value;
							let quality = document.querySelector("#quality-select-value").value;

				      let formData = new FormData();
				      formData.append('url', url);
							formData.append('quality', quality);
							fetch('/convert', {
							  method: 'POST',
							  headers:{
									'Accept': 'application/json'
							  },
							  body: formData
							}).then(function(res){return res.json();})
							  .then(function(data){

								if(data['success']){

										socketInit(data['message']);
						  		
								}else if(!data['success'] && data['message'] == "Are you a robot?"){
									hideError();
									displayInitial();
									displayError("Wait a moment before converting");
								}else{
									hideError();
									displayInitial();
									displayError("final");
								}
								})
							  .catch(function(err){
							  	hideError();
							  	displayInitial();
							  	displayError("final");
							  })
						}else{
							hideError();
			  			displayInitial();
			  			displayError("Recaptcha failed. Please try again.");
						}
					})
      });

		}else{
			displayError("url");
		}
	});

	const qualitySelector = document.querySelector("#quality-select-display");
	const qualitySelectorList = document.querySelector("#quality-select-list");
	const qualitySelectDisplay = document.querySelector(".quality-select-box");

	qualitySelector.addEventListener("click", function(e){
		if(qualitySelectDisplay.classList.contains("hidden")){
			qualitySelectDisplay.classList.remove("hidden");
		}else{
			qualitySelectDisplay.classList.add("hidden");
		}
	});

	qualitySelectorList.addEventListener("blur", function(e){
		qualitySelectDisplay.classList.add("hidden");
	});

	let qualityValues = document.querySelectorAll(".quality-select-options");
	for(const qualityValue of qualityValues){
		qualityValue.addEventListener("click", function(e){
			document.querySelector(".quality-select-options.active").classList.remove("active");
			this.classList.add("active");
			qualitySelectDisplay.classList.add("hidden");
			document.querySelector("#quality-select-value").value = this.getAttribute("quality");
			document.querySelector("#quality-select-display-value").innerText = this.innerText;
		});
	}
</script>
	</footer>
  

<div><div class="grecaptcha-badge" data-style="bottomright" style="width: 256px; height: 60px; display: block; transition: right 0.3s ease 0s; position: fixed; bottom: 14px; right: -186px; box-shadow: gray 0px 0px 5px; border-radius: 2px; overflow: hidden;"><div class="grecaptcha-logo"><iframe title="reCAPTCHA" width="256" height="60" role="presentation" name="a-ca3wkv5sxpec" frameborder="0" scrolling="no" sandbox="allow-forms allow-popups allow-same-origin allow-scripts allow-top-navigation allow-modals allow-popups-to-escape-sandbox" src="https://www.google.com/recaptcha/api2/anchor?ar=1&amp;k=6Lc8peUpAAAAAFMiAF67rni01ffUiQn_DSdYlkfK&amp;co=aHR0cHM6Ly9hbTRhLmNjOjQ0Mw..&amp;hl=en&amp;v=xds0rzGrktR88uEZ2JUvdgOY&amp;size=invisible&amp;cb=ho5cr9ekqdjt"></iframe></div><div class="grecaptcha-error"></div><textarea id="g-recaptcha-response-100000" name="g-recaptcha-response" class="g-recaptcha-response" style="width: 250px; height: 40px; border: 1px solid rgb(193, 193, 193); margin: 10px 25px; padding: 0px; resize: none; display: none;"></textarea></div><iframe style="display: none;"></iframe></div></body></html>