Greasy Fork is available in English.

Youtube exact upload

Adds exact upload time to youtube videos

// ==UserScript==
// @name         Youtube exact upload
// @namespace    youtube-exact-upload
// @version      0.2
// @description  Adds exact upload time to youtube videos
// @author       theo0165
// @source       https://github.com/theo0165/youtube-exact-upload
// @website      https://github.com/theo0165
// @match        https://www.youtube.com/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    var YT_API_KEY = "";

    console.log("YT EXACT UPLOAD LOADED");

    var BASE_URL = "https://www.googleapis.com/youtube/v3/videos?part=snippet&key=" + YT_API_KEY;

    function genUrl(){
        const urlParams = new URLSearchParams(window.location.search);

        if(urlParams.get("v") != null){
            return BASE_URL + "&id=" + urlParams.get("v");
        }else {
            return "";
        }
    }

    function parseDate(date){
        var months = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"];

        return date.getDate() + " " + months[date.getMonth()] + ". " + date.getFullYear() + " " + (date.getHours() < 10 ? date.getHours() + "0" : date.getHours()) + ":" + (date.getMinutes() < 10 ? date.getMinutes() + "0" : date.getMinutes());
    }

    if(YT_API_KEY != "" || typeof YT_API_KEY != "undefined"){
        var url = genUrl();

        if(url != ""){
            fetch(url)
            .then(function(response){
                return response.json();
            })
            .then(function(data){
                if(data.pageInfo.totalResults > 0){
                    var element = document.querySelector(".date");
                    var date = new Date(data.items[0].snippet.publishedAt);

                    element.innerHTML = "Published at " + parseDate(date);
                }
            })
            .catch(error => console.error("YOUTUBE EXACT UPLOAD ERROR: " + error, "\nINVALID API KEY?"))
        }
    }else{
        console.error("YOUTUBE EXACT UPLOAD ERROR: Undefined api key");
    }
})();