| --- |
| layout: default |
| title: MW Metadata Bulk |
| script: youtube-metadata-bulk |
| --- |
| <div class="container"> |
| <p> |
| MW Metadata bulk grabs details about multiple YouTube videos, a playlist's videos, or a channel's public videos. |
| </p> |
| <p> |
| Submit a comma or whitespace separated list of multiple videos, playlists, or channels |
| </p> |
| <div class="input-group mb-3"> |
| <input type="text" class="form-control" placeholder="https://www.youtube.com/channel/UCuAXFkgsw1L7xaCfnd5JJOw" |
| aria-label="https://www.youtube.com/channel/UCuAXFkgsw1L7xaCfnd5JJOw" aria-describedby="submit" |
| id="value" autocomplete="off"> |
| <button class="btn btn-primary loading disabled" type="button" id="submit"> |
| <span>Submit</span> |
| <span class="countdown"></span> |
| </button> |
| </div> |
| <div class="form-check"> |
| <input class="form-check-input" type="checkbox" value="" id="createdPlaylists" autocomplete="off"> |
| <label class="form-check-label" for="createdPlaylists"> |
| Inspect videos in created playlists to find unlisted, private, and deleted videos (channels only) |
| </label> |
| </div> |
| </div> |
| {% include format_share.html %} |
| <div class="container mb-15"> |
| <h2><span class="export">Export &</span> Share</h2> |
| <p class="export">Save this result as a zip file or load from a previous export. Drag and drop supported.</p> |
| <button class="btn btn-secondary export" id="export"> |
| <span class="spinner"><span class="spinner-border spinner-border-sm" role="status"></span></span> |
| <span class="text"><i class="bi bi-download"></i> Export</span> |
| </button><span class="export"> </span> |
| <button class="btn btn-secondary export" id="import" onclick="document.getElementById('importFileChooser').click()"> |
| <span class="spinner"><span class="spinner-border spinner-border-sm" role="status"></span></span> |
| <span class="text"><i class="bi bi-upload"></i> Import</span> |
| <input id="importFileChooser" type="file" hidden/> |
| </button> |
| <div class="form-check export" style="margin:10px 0"> |
| <input class="form-check-input" type="checkbox" value="" id="includeThumbs" autocomplete="off"> |
| <label class="form-check-label" for="includeThumbs"> |
| Include thumbnails on export (this may take a long time) |
| <span id="thumbProgress" class="orange"></span> |
| </label> |
| </div> |
| <p class="export">Contains file(s)</p> |
| <ul class="export"> |
| <li>about.txt - Metadata about this result.</li> |
| <li>videos.json - Array of all raw video data.</li> |
| <li>channels.json - Array of all raw channel data.</li> |
| <li>playlists.json - Array of all raw playlist data.</li> |
| <li>unavailable.json - Basic data for unavailable videos.</li> |
| <li>β±.csv - Data from each table section below.</li> |
| <li>thumbs/β±.png - Thumbs if available.</li> |
| </ul> |
| <p class="export"></p> |
| <p>Share this result:</p> |
| <div class="input-group" style="max-width: 226px;"> |
| <input type="text" class="form-control" aria-describedby="copy" id="shareLink" autocomplete="off"> |
| <button class="btn btn-primary clipboard" type="button" data-clipboard-target="#shareLink"><i |
| class="bi bi-clipboard"></i></button> |
| </div> |
| <p style="margin-top: 10px"> |
| <a target="_blank" href="https://github.com/mattwright324/youtube-metadata/discussions/150"> |
| What happened to export? |
| </a> |
| </p> |
| </div> |
| <div class="container mb-15"> |
| <h2>Videos</h2> |
| <p> |
| List of all videos, playlist videos, or channel public uploads. |
| Customize columns to show more or less data as needed. |
| </p> |
| <div class="progress" style="margin-bottom:5px"> |
| <div id="progressBar" class="progress-bar" role="progressbar" style="" aria-valuenow="0" aria-valuemin="0" |
| aria-valuemax="100"> |
| <div class="label"></div> |
| </div> |
| </div> |
| <div id="progressText" style="width: 100%;text-align: center;">Idle</div> |
| <br> |
| <label for="column-options">Select column(s)</label> |
| <select id="column-options" multiple="multiple" hidden></select> |
| </div> |
| <div class="container-fluid mb-15"> |
| <table id="videosTable" class="table table-striped table-hover" style="width:100%"></table> |
| </div> |
| <div class="container mb-15"> |
| <h2>Tags</h2> |
| <p>Aggregate total tag counts on found videos.</p> |
| <table id="tagsTable" class="table table-striped table-hover" style="width:100%"></table> |
| </div> |
| <div class="container mb-15"> |
| <h2>Geotags</h2> |
| <p> |
| Aggregate total geotag counts on found videos. |
| Want to visualize this data in a map? |
| Export this result and import the zip into |
| <a href="https://mattw.io/youtube-geofind" target="_blank">YouTube Geofind</a>!</p> |
| </p> |
| <table id="geotagsTable" class="table table-striped table-hover" style="width:100%"></table> |
| </div> |
| <div class="container mb-15"> |
| <h2>Links</h2> |
| <p> |
| Aggregate total link counts in found video descriptions. |
| Be careful visiting what may show up here, by default results will not be hyperlinked for safety. |
| </p> |
| <div class="form-check mb-15"> |
| <input class="form-check-input" type="checkbox" value="" id="makeHyperlinks" autocomplete="off" |
| onchange="bulk.toggleLinksColumn(0);bulk.toggleLinksColumn(1)"> |
| <label class="form-check-label" for="makeHyperlinks"> |
| Make them hyperlinks anyways |
| </label> |
| </div> |
| <table id="linksTable" class="table table-striped table-hover" style="width:100%"></table> |
| </div> |
| <div class="container mb-15"> |
| <h2>Upload Frequency</h2> |
| <p> |
| Aggregate uploads frequency by hour and day. |
| Transformable to any timezone |
| (<a target="_blank" href="https://upload.wikimedia.org/wikipedia/commons/8/88/World_Time_Zones_Map.png">map</a>) |
| and filterable by year when activity occurred. |
| Guesstimate region using typical sleep/activity patterns, see change in behavior over time, |
| or see typical upload times in your own timezone. |
| </p> |
| <div class="row" style="margin: 0 0 1.5em 0"> |
| <select id="offset" class="form-select" style="width:auto;margin-right:10px" autocomplete="off"> |
| <option value="-1200">UTC β12:00</option> |
| <option value="-1100">UTC β11:00</option> |
| <option value="-1000">UTC β10:00</option> |
| <option value="-0930">UTC β09:30</option> |
| <option value="-0900">UTC β09:00</option> |
| <option value="-0800">UTC β08:00</option> |
| <option value="-0700">UTC β07:00</option> |
| <option value="-0600">UTC β06:00</option> |
| <option value="-0500">UTC β05:00</option> |
| <option value="-0400">UTC β04:00</option> |
| <option value="-0330">UTC β03:30</option> |
| <option value="-0300">UTC β03:00</option> |
| <option value="-0200">UTC β02:00</option> |
| <option value="-0100">UTC β01:00</option> |
| <option value="+0000" selected>UTC Β±00:00</option> |
| <option value="+0100">UTC +01:00</option> |
| <option value="+0200">UTC +02:00</option> |
| <option value="+0300">UTC +03:00</option> |
| <option value="+0330">UTC +03:30</option> |
| <option value="+0400">UTC +04:00</option> |
| <option value="+0430">UTC +04:30</option> |
| <option value="+0500">UTC +05:00</option> |
| <option value="+0530">UTC +05:30</option> |
| <option value="+0545">UTC +05:45</option> |
| <option value="+0600">UTC +06:00</option> |
| <option value="+0630">UTC +06:30</option> |
| <option value="+0700">UTC +07:00</option> |
| <option value="+0800">UTC +08:00</option> |
| <option value="+0845">UTC +08:45</option> |
| <option value="+0900">UTC +09:00</option> |
| <option value="+0930">UTC +09:30</option> |
| <option value="+1000">UTC +10:00</option> |
| <option value="+1030">UTC +10:30</option> |
| <option value="+1100">UTC +11:00</option> |
| <option value="+1200">UTC +12:00</option> |
| <option value="+1245">UTC +12:45</option> |
| <option value="+1300">UTC +13:00</option> |
| <option value="+1345">UTC +13:45</option> |
| <option value="+1400">UTC +14:00</option> |
| </select> |
| <select id="year" class="form-select" style="width:auto" autocomplete="off"> |
| <option value="" selected>All years</option> |
| </select> |
| </div> |
| <div id="uploadFrequency"></div> |
| </div> |
| <div class="container mb-15"> |
| <h2>Unavailable</h2> |
| <p> |
| Videos that are unavailable from channels (created playlists on), playlists, or videos. |
| They are either <a target="_blank" href="https://github.com/mattwright324/youtube-metadata/wiki/Deleted-and-Private-Videos">deleted or made private</a>. |
| Consider searching for user-made playlists to find more unavailable videos. |
| </p> |
| <div id="unavailable"> |
| <div class="input-group mb-3" style="align-items: center;"> |
| <button class="btn btn-secondary loading disabled" type="button" id="checkUnavailable" style="margin-right: 10px"> |
| <span>Check Unavailable</span> |
| <span class="countdown"></span> |
| </button> |
| <span>Check Filmot for any archived metadata for unavailable videos.</span> |
| </div> |
| <div class="progress" style="margin-bottom:5px"> |
| <div id="unavailableProgressBar" class="progress-bar" role="progressbar" style="" aria-valuenow="0" aria-valuemin="0" |
| aria-valuemax="100"> |
| <div class="label"></div> |
| </div> |
| </div> |
| <div id="unavailableProgressText" style="width: 100%;text-align: center;">Idle</div> |
| <br> |
| </div> |
| <label for="unavailable-columns">Select column(s)</label> |
| <select id="unavailable-columns" multiple="multiple" hidden></select> |
| </div> |
| <div class="container-fluid mb-15"> |
| <table id="unavailableTable" class="table table-striped table-hover" style="width:100%"></table> |
| </div> |
| <div class="container mb-15"> |
| <h2>Other</h2> |
| <p>Other potentially useful aggregate data on found videos.</p> |
| <table id="otherTable" class="table table-striped table-hover" style="width:100%"></table> |
| </div> |
|
|