+ function format_seconds(total_seconds) {
+ if (total_seconds < 0) {
+ return "?";
+ }
+ const seconds = total_seconds % 60;
+ const minutes = Math.floor(total_seconds / 60);
+ return `${minutes}:` + (seconds < 10 ? '0' : '') + `${seconds}`
+ }
+ add_text_to(div, " (");
+ const timestamp_span = add_child_to("span", div);
+ clearInterval(timestamp_interval);
+ let timestamp = data.timestamp;
+ timestamp_span.textContent = format_seconds(timestamp);
+ if (data.is_playing) {
+ timestamp_interval = setInterval(function() {
+ timestamp += 1;
+ timestamp_span.textContent = format_seconds(timestamp);
+ }, MS_IN_S / data.speed);
+ }
+ add_text_to(div, "/" + format_seconds(data.duration) + "): ");