diff --git a/.gitignore b/.gitignore
index 17d03fd4a3a91d1c30aa1baa4845dbb0a0496626..53311fac5b8bf71547a7293934cfea11eae22d70 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
 assets/backgrounds/*
 assets/sounds/*
 radio/*
+out/*
diff --git a/Makefile b/Makefile
index 8b40b8a61c90c0b9f54681997cf93307100e1acc..f288578f5881eeaadcd02fa360196a3ce462d6c9 100644
--- a/Makefile
+++ b/Makefile
@@ -21,10 +21,23 @@ ifndef back
 	$(eval back=${DEFAULT_BG})
 endif
 	@echo "Compiling ending"
-	@ sh ${ASSETS_DIR}/scripts/downloader.sh "${ASSETS_DIR}backgrounds/${back}" "${OUT_DIR}/ending_src"
-	@ffmpeg -v error -stream_loop -1 -i "${OUT_DIR}/ending_src" -i "${ASSETS_DIR}/sounds/${sound}" -vf "subtitles=${ASSETS_DIR}message.ass" -c:a copy -strict -1 -shortest -y "${OUT_DIR}ending.mp4"
+	@sh ${ASSETS_DIR}/scripts/downloader.sh "${ASSETS_DIR}backgrounds/${back}" "${OUT_DIR}/ending_src"
+	@ffmpeg -stream_loop -1 -i "${OUT_DIR}/ending_src" -i "${ASSETS_DIR}/sounds/${sound}" -vf "subtitles=${ASSETS_DIR}/messages/announce.ass" -c:a copy -strict -1 -shortest -y "${OUT_DIR}ending.mp4"
 	@echo "Ending compiled successfully"
 
+build_ad: cleanup out_dir
+	@sh ${ASSETS_DIR}/scripts/downloader.sh "${url}" "${OUT_DIR}/new_ad"
+	@ffmpeg -i "${OUT_DIR}/new_ad" \
+		-ss ${ss} -t 10 \
+		-an -y "${OUT_DIR}/new_ad.webm"
+	@ffmpeg -i "${OUT_DIR}/new_ad.webm" \
+		-framerate 30 -pix_fmt yuv420p \
+		-movflags +faststart \
+		-b:v 0 -crf 20 \
+		-vf "scale=w=1280:h=720:force_original_aspect_ratio=2,crop=1280:720,subtitles=${ASSETS_DIR}/messages/ad.ass" \
+		-c:v vp8 -an -y -strict 1 "${OUT_DIR}/ad.webm"
+	@mktemp "${ASSETS_DIR}/ads/adXXXXX.webm" | xargs mv -v "${OUT_DIR}/ad.webm" 
+
 build_sound: out_dir
 	@sh ${ASSETS_DIR}/scripts/downloader.sh "${url}" "${OUT_DIR}/sound_target"
 	@ffmpeg -i "${OUT_DIR}/sound_target" -ss ${ss} -t ${t} -q:a 0 -map a -y sound.mp3
@@ -45,10 +58,12 @@ concat:
 preview:
 	@mpv "${OUT_DIR}/final.mp4"
 
-
 playerctl_load:
 	@sh ${ASSETS_DIR}/scripts/playerctl_loader.sh
 
+play_radio:
+	vlc --no-dbus --sout '#transcode{vcodec=VP80,ab64,acodec=opus}:standard{access=http,mux=ogg,dst=:8888/}' --sout-mux-caching 10000
+
 cleanup:
 	@echo "Cleaning up outdir"
 	@rm -rfv "${OUT_DIR}"
diff --git a/assets/ads/adE9soi.webm b/assets/ads/adE9soi.webm
new file mode 100644
index 0000000000000000000000000000000000000000..fd4775c2bb13a52590cb2be79548deacdd9cb2b3
Binary files /dev/null and b/assets/ads/adE9soi.webm differ
diff --git a/assets/ads/adOfPam.webm b/assets/ads/adOfPam.webm
new file mode 100644
index 0000000000000000000000000000000000000000..d2f9683ece1218868b2f1c8388cd0e90edad1da4
Binary files /dev/null and b/assets/ads/adOfPam.webm differ
diff --git a/assets/ads/adcdkrD.webm b/assets/ads/adcdkrD.webm
new file mode 100644
index 0000000000000000000000000000000000000000..4f2c150ed3ef2af8a6890729615f74c028ededa5
Binary files /dev/null and b/assets/ads/adcdkrD.webm differ
diff --git a/assets/ads/adulP4O.webm b/assets/ads/adulP4O.webm
new file mode 100644
index 0000000000000000000000000000000000000000..60c3f3f4d331ca5b662cadcccdefa4ad3b8de087
Binary files /dev/null and b/assets/ads/adulP4O.webm differ
diff --git a/assets/ads/adzsUQz.webm b/assets/ads/adzsUQz.webm
new file mode 100644
index 0000000000000000000000000000000000000000..77c261aefc5abe1de1a74b3c4b7ed70058c1bf1b
Binary files /dev/null and b/assets/ads/adzsUQz.webm differ
diff --git a/assets/messages/ad.ass b/assets/messages/ad.ass
new file mode 100644
index 0000000000000000000000000000000000000000..b6b9bb318f9862bf7fce8253ed3960629b3d441b
--- /dev/null
+++ b/assets/messages/ad.ass
@@ -0,0 +1,20 @@
+[Script Info]
+; Script generated by Aegisub 3.2.2
+; http://www.aegisub.org/
+Title: Ad subtitle.
+ScriptType: v4.00+
+WrapStyle: 0
+ScaledBorderAndShadow: yes
+YCbCr Matrix: None
+
+[Aegisub Project Garbage]
+Last Style Storage: Default
+
+[V4+ Styles]
+Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
+Style: Center,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,-1,0,0,0,100,100,0,0,1,2,2,5,10,10,10,1
+
+[Events]
+Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
+Dialogue: 0,00:00:00.00,00:00:10.00,Center,,0,0,0,,{\pos(190,160)}{\fad(1200, 0)} We happy to see you here at {\fad}{\pos}
+Dialogue: 0,00:00:00.00,00:00:10.00,Center,,0,0,0,,{\pos(190,200)}{\fad(1200, 0)} http://s3rius.ddns.net/{\fad}{\pos}
diff --git a/assets/message.ass b/assets/messages/announce.ass
similarity index 100%
rename from assets/message.ass
rename to assets/messages/announce.ass
diff --git a/assets/scripts/playerctl_loader.sh b/assets/scripts/playerctl_loader.sh
index f041d7a0a0ee91f889a713ffc288ffec88c72b25..690237ffeb22fa2f0b54982d80adbe3b491448b6 100644
--- a/assets/scripts/playerctl_loader.sh
+++ b/assets/scripts/playerctl_loader.sh
@@ -10,16 +10,28 @@ if [[ $(playerctl status) != "Playing" ]]; then
 fi
 
 workdir="$(mktemp -d playlist-XXXXXX)"
-pushd "$workdir"
+ads_dir="../assets/ads/"
+today="$(date +%D)"
+res_dir="radio/${today}"
+
+mkdir -p "$res_dir"
 
-index=0
+if [[ -e "${res_dir}" ]];then
+  compiled_index="$(ls "$res_dir" | grep compiled | sort --numeric-sort | tail -n 1 | cut -d '.' -f1 | cut -d '-' -f2)"
+else
+  compiled_index="-1"
+fi
+index="0"
 
-playlist_title="playlist"
+pushd "$workdir"
 
 function cleanup_and_exit() {
   rm -fv "current.mp3" "bg.png" "cover.jpg" "cover.png"
+  ffmpeg -f concat -i concat -c copy "compiled-$((compiled_index + 1)).webm"
+  rm -fv "concat"
   popd
-  mv "$workdir" "$playlist_title"
+  ls "$workdir" | grep compiled | xargs -I '{}' mv -v $workdir/'{}' "$res_dir"
+  rm -rfv "$workdir"
 }
 
 trap "cleanup_and_exit" EXIT
@@ -30,10 +42,6 @@ while [[ "$(playerctl status)" = "Playing" ]];do
   artUrl="$(playerctl metadata mpris:artUrl)"
   url="$(playerctl metadata xesam:url)"
 
-  if [[ "${index}" = "0" ]];then
-    playlist_title="Radio ${artist} - ${title}"
-  fi
-
   # Downloading song and album cover
   wget "${url}" -O "current.mp3"
   wget "${artUrl}" -O "cover.jpg"
@@ -47,19 +55,28 @@ while [[ "$(playerctl status)" = "Playing" ]];do
   
   rm -fv "cover.jpg" "cover.png"
 
-  ffmpeg -r 1 -loop 1 -i "bg.png" -i "current.mp3" \
-    -map 0:v -map 1:a \
-    -c:v vp9 -crf 23 -g 60 \
-    -c:a opus \
-    -vf "scale=-1:720,pad=ceil(iw/2)*2:ceil(ih/2)*2" \
-    -maxrate 2M -bufsize 2M \
-    -preset ultrafast -pix_fmt yuv420p \
-    -framerate 30 \
-    -movflags +faststart \
-    -shortest -y -strict -2 "${index}.webm"
+  target_adv="$(find "$ads_dir" -type f | shuf -n 1)"
+  echo "Selected ad: $target_adv"
+
+  ffmpeg -loop 1 -r 3 -i bg.png -i current.mp3 -r 25 -i "${target_adv}" \
+    -filter_complex "[0:v]scale=w=1280:h=720:force_original_aspect_ratio=2,crop=1280:720[img]; \
+    [2:v]setpts=10*PTS[adv]; \
+    [adv]loop[ladv]; \
+    [img][ladv]overlay=enable='gt(mod(t, 40), 30)'[rv]" \
+    -map "[rv]" \
+    -map 1:a \
+    -framerate 30 -g 360 \
+    -c:v vp8 -pix_fmt yuv420p -movflags +faststart \
+    -c:a libopus \
+    -err_detect ignore_err \
+    -shortest -strict -2 -y \
+    "${index}.webm"
+  
+  echo "file '${index}.webm'" >> concat
 
   index=$((index + 1))
   if ! (playerctl next);then
     break
   fi
 done
+playerctl stop