
{"id":11,"date":"2025-05-01T06:37:13","date_gmt":"2025-05-01T06:37:13","guid":{"rendered":"https:\/\/vocagathering.com\/fall-2025\/?page_id=11"},"modified":"2026-02-22T22:02:54","modified_gmt":"2026-02-22T22:02:54","slug":"apply","status":"publish","type":"page","link":"https:\/\/vocagathering.com\/2026\/apply","title":{"rendered":"Apply"},"content":{"rendered":"<head>\n    <script src=\"https:\/\/www.google.com\/recaptcha\/api.js\" async defer><\/script>\n    <script src=\"https:\/\/code.jquery.com\/jquery-3.7.1.min.js\" integrity=\"sha256-\/JqT3SQfawRcv\/BIHPThkBvs0OEvtFFmqPF\/lYI\/Cxo=\" crossorigin=\"anonymous\"><\/script>\n<\/head>\n<div class=\"alignfull\">\n    <hr class=\"rainbow\">\n    <h1 class=\"special-header neg-bot-mar left-pad\">HOW TO APPLY<\/h1>\n    <hr class=\"rainbow no-bot-mar\">\n<\/div>\n<div class=\"bg-graphic alignfull\">\n    <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/02\/bg-pattern.png\">\n<\/div>\n<section class=\"alignfull fade-block deco-block no-top-mar\">\n    <aside class=\"left-pad\">\n        <h2>EVENT RULES<\/h2>\n    <\/aside>\n\n    <div class=\"right-pad\">\n        <p>\n            Please read the rules before applying! Your song submission must follow the guidelines to be eligible for the event.\n        <\/p>\n        <h3>Your song submission must:<\/h3>\n        <ul>\n            <li>\n                Be an original composition (no covers, remixes, or remasters) uploaded to Youtube using the hashtag <strong>#Vocagathering2026<\/strong> within the video description or title.\n            <\/li>\n            <li>\n                Be uploaded to YouTube between March 14th 12AM UTC and March 16th 12 AM UTC\n            <\/li>\n            <li>\n                Be publicly accessible without age restriction.\n            <\/li>\n            <li>\n                Adhere to YouTube&#8217;s ToS\n            <\/li>\n            <li>\n                Have the \u2018likes\u2019 value set to be public.\n            <\/li>\n            <li>\n                Be published to YouTube for the first time (Prior publications to YouTube Music through a distribution service such as DistroKid without an appropriate PV attached is allowed)\n            <\/li>\n        <\/ul>\n        <h3>\n            Your musical composition must:\n        <\/h3>\n        <ul>\n            <li>\n                Be original and contain the use of a vocal synthesizer\n            <\/li>\n            <li>\n                Use samples transformatively, if used\n            <\/li>\n            <li>\n                Use voicebanks created with consent\n            <\/li>\n            <li>\n                Follow the ToS of the voicebank(s) and synthesizer engine(s) used\n            <\/li>\n            <li>\n                Be at least 30 seconds long\n            <\/li>\n            <li>\n                NOT contain AI-generated musical compositions\n            <\/li>\n        <\/ul>\n        <h3>\n            Art in your music video (PV\/MV) must:\n        <\/h3>\n        <ul>\n            <li>\n                Be used with permission\n            <\/li>\n            <li>\n                NOT contain AI-generated content\n            <\/li>\n        <\/ul>\n        <h3>\n            We also stipulate that:\n        <\/h3>\n        <ul>\n            <li>\n                The person who submits the song owns the YouTube channel the song was uploaded to.\n            <\/li>\n            <li>\n                Only one submission per channel is permitted per Vocagathering event\n            <\/li>\n            <li>\n                Participating in multiple teams is permitted as long as you are the main creator in only ONE team\n            <\/li>\n        <\/ul>\n        <p>\n            Failure to include and complete all criteria may result in your song entry being excluded from the event.\n        <\/p>\n        <p>\n            <strong>Any submission found containing harmful, derogatory, and\/or discriminatory content will be removed. Discretion\n            is up to the event organizers.<\/strong>\n        <\/p>\n\n    <\/div>\n<\/section>\n\n\n<section class=\"alignfull fade-block deco-block\">\n    <aside class=\"left-pad\">\n        <h2>SUBMITTING YOUR VIDEO<\/h2>\n    <\/aside>\n\n    <div class=\"right-pad\">\n        <p>\n            <ol>\n                <!-- Manual date replacement here (TODO) -->\n                <li>Schedule your song video to publish between the times <strong>March 14th 12AM UTC and March 16th 12AM UTC<\/strong><\/li>\n                <li>Copy your song\u2019s YouTube URL<\/li>\n                <li>Submit your song on this page between <strong>March 14th 12AM UTC and March 16th 12AM UTC<\/strong> (a 48 hour period) by pasting the song\u2019s URL in the submission box<\/li>\n                <li>(Optional) Feel free to post your song on social medias with the hashtag #Vocagathering2026!<\/li>\n            <\/ol>\n        <\/p>\n    <\/div>\n<\/section>\n<section class=\"alignfull fade-block  deco-block\">\n    <aside class=\"left-pad\">\n        <h2>APPLICATION FORM<\/h2>\n    <\/aside>\n\n    <div id=\"app-section\" class=\"right-pad\">\n        <p>\n            Please read the above rules and instructions before submitting an entry!\n        <\/p>\n        <form id=\"song-form\">\n            <div class=\"inline-txt-sub\">\n                <label for=\"url\"><strong>Youtube Url:<\/strong><\/label>\n                <input id=\"url\" type=\"text\" name=\"youtube-url\" required>\n            <\/div>\n            <br>\n            <input id=\"creator-check\" type=\"checkbox\" required>\n            <label for=\"creator-check\">I confirm I am the original creator(s) of the entry<\/label>\n            <br><br>\n            <input id=\"rules-check\" type=\"checkbox\" required>\n            <label for=\"rules-check\">I confirm that my entry conforms to the submission rules<\/label>\n            <br><br>\n            <div class=\"g-recaptcha\" data-theme=\"dark\" data-sitekey=\"6Lee5m8qAAAAAI0lIYFreleRTfrF1Q8phqdkBLhM\"><\/div>\n            <br>\n            <input type=\"submit\" value=\"Submit song\">\n\n        <\/form>\n        <div id=\"status-container\">\n            <div id=\"loading-response\">\n                <h2>Loading&#8230;<\/h2>\n                <p><\/p>\n            <\/div>\n            <div id=\"success-response\">\n                <h2>Success!<\/h2>\n                <p><\/p>\n            <\/div>\n            <div id=\"failure-response\">\n                <h2>Error<\/h2>\n                <p><\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n<script>\n    init();\n\n    function init() {\n        $('#status-container').hide();\n\n        determineDisplay();\n\n    }\n\n    async function determineDisplay() {\n        try {\n            jQuery.get(VG_AJAX_URL, {\n                action: \"getDates\",\n                dataType: \"json\"\n            })\n            .done(function(data) {\n                data = JSON.parse(data);\n                let section = document.getElementById(\"app-section\");\n                switch( data.responseText.phase ) {\n                    case 0: \/\/ before apps open\n                        section.innerHTML = \"\";\n                        let p2 = document.createElement(\"p\");\n                        p2.textContent = \"Submissions are not open yet. Please check back later.\";\n                        section.append(p2);\n                        break;\n                    case 1: \/\/ apps open\n                        \/\/ assign event listeners\n                        document.getElementById('song-form').addEventListener(\"submit\", submitSong);\n                        break;\n                    default: \/\/ apps are closed\n                        section.innerHTML = \"\";\n                        let p = document.createElement(\"p\");\n                        p.textContent = \"Submissions are closed.\";\n                        section.append(p);\n                }\n            });\n        } catch (error) {\n            console.error(\"Error getting dates\")\n        }\n    }\n\n    async function submitSong(e) {\n        try {\n            e.preventDefault();\n            $('#status-container').show();\n            updateStatus('loading-response', '');\n\n            \/\/ check recaptcha\n            const captchaRes = grecaptcha.getResponse();\n\n            if (!captchaRes.length > 0) {\n                const message = \"CAPTCHA not completed.\"\n                updateStatus('failure-response', message);\n                return;\n            }\n \n            const submittedUrl = $('#url')[0].value;\n\n            \/\/ if not submission, throw error\n            if (submittedUrl == \"\") {\n                const message = \"Required fields are empty.\";\n                updateStatus('failure-response', message);\n                return;\n            }\n\n            \/\/ check submission format\n            if (!checkUrl(submittedUrl)) {\n                const message =\"Incorrect URL format. Please make sure the URL starts with \\\"https:\/\/www.youtube.com\/watch?v=\\\".\";\n                updateStatus('failure-response', message);\n                console.error(message);\n                return;\n            }\n\n            let id = submittedUrl.replace(\"https:\/\/www.youtube.com\/watch?v=\", \"\");\n            \/\/ extract youtube id in case of extra stuff\n            const re = \/[0-9A-Za-z_-]{10}[048AEIMQUYcgkosw]\/;\n            id = re.exec(id)[0];\n\n            \/\/ submit to db\n            let data = await jQuery.post(VG_AJAX_URL, {\n                action: \"submitSong\", \/\/ action\n                dataType: 'text',\n                songId: id,\n            });\n            \/\/ check feedback\n            data = JSON.parse(data);\n            if (data.statusCode != 200) {\n                updateStatus('failure-response', data.responseText);\n            } else {\n                updateStatus('success-response', data.responseText);\n            }\n        } catch (exception) {\n            updateStatus('failure-response', \"Something went wrong. If the issue persists, please report it to the site owner\");\n            console.error(exception);\n        }\n    }\n\n    \/\/ Check if the string matches a youtube url format\n    function checkUrl(urlString) {\n        const re = \/^https:\\\/\\\/www\\.youtube\\.com\\\/watch\\?v=\\w+\/;\n        return re.test(urlString);\n    }\n\n    \/**\n    * Shows the inputted status box with given message.\n    * statusElem {String} - ID of element to show (loading-response, success-response, failure-response)\n    * message {String} - message to display in the element.\n    **\/\n    function updateStatus(statusElemId, message) {\n        document.querySelectorAll(\"#status-container > div\").forEach((div) => {\n            div.classList.add(\"hidden\");\n        });\n        let elem = $('#' + statusElemId)[0];\n        elem.querySelector(\"p\").textContent = message;\n        elem.classList.remove(\"hidden\");\n    }\n<\/script>\n\n<style>\n    h1 {\n        margin-bottom: 0px;\n    }\n\n    .hidden {\n        display: none;\n    }\n\n    #status-container {\n        background: var(--gradient);\n        margin-top: 2rem;\n        border-radius: 1rem;\n        padding: 1rem;\n    }\n\n    #status-container > div {\n        text-align: center;\n        padding: 1rem;\n        border-radius: 0.5rem;\n        background: var(--default-bg-color);\n    }\n    \n    #status-container > div > * {\n        margin: 0;\n    }\n\n    #status-container h2 {\n        margin: 0;\n    }\n\n    #success-response {\n        background-color: var(--secondary-color);\n    }\n\n    #failure-response {\n        background-color: var(--primary-color-light);\n    }\n<\/style>\n\n","protected":false},"excerpt":{"rendered":"<p>HOW TO APPLY EVENT RULES Please read the rules before applying! Your song submission must follow the guidelines to be eligible for the event. Your song submission must: Be an original composition (no covers, remixes, or remasters) uploaded to Youtube using the hashtag #Vocagathering2026 within the video description or title. Be uploaded to YouTube between [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-no-title","meta":{"footnotes":""},"class_list":["post-11","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vocagathering.com\/2026\/wp-json\/wp\/v2\/pages\/11","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vocagathering.com\/2026\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/vocagathering.com\/2026\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/vocagathering.com\/2026\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vocagathering.com\/2026\/wp-json\/wp\/v2\/comments?post=11"}],"version-history":[{"count":39,"href":"https:\/\/vocagathering.com\/2026\/wp-json\/wp\/v2\/pages\/11\/revisions"}],"predecessor-version":[{"id":760,"href":"https:\/\/vocagathering.com\/2026\/wp-json\/wp\/v2\/pages\/11\/revisions\/760"}],"wp:attachment":[{"href":"https:\/\/vocagathering.com\/2026\/wp-json\/wp\/v2\/media?parent=11"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}