Greasy Fork

Greasy Fork is available in English.

TikTok Video Save As

Save TikTok video as a file with the video ID and username as the file name when middle-clicked or Alt+Right Clicked

当前为 2024-06-02 提交的版本,查看 最新版本

// ==UserScript==
// @name         TikTok Video Save As
// @namespace    http://tampermonkey.net/
// @version      0.9
// @description  Save TikTok video as a file with the video ID and username as the file name when middle-clicked or Alt+Right Clicked
// @match        https://www.tiktok.com/@*
// @match        https://discord.com/channels/*
// @grant        GM_download
// ==/UserScript==

(function() {
  'use strict';
  var tikTokVideoIdRegex = /video\/(\d+)/;
  var discordTikTokUrlRegex = /https:\/\/www.tiktok.com\/(\w+)\/video\/(\d+)/;

  document.addEventListener('auxclick', function(event) {
    if (event.button === 1 || (event.button === 2 && event.altKey)) { // middle click or Alt+Right Click
      var link = event.target.closest('a');
      if (link && link.href) {
        var tikTokVideoIdMatch = link.href.match(tikTokVideoIdRegex);
        var discordTikTokUrlMatch = link.href.match(discordTikTokUrlRegex);
        if (tikTokVideoIdMatch) {
          var videoId = tikTokVideoIdMatch[1];
          var username = link.href.match(/https:\/\/www.tiktok.com\/(@\w+)/)[1];
          var newUrl = `https://tikwm.com/video/media/hdplay/${videoId}.mp4`; // Replace with your new link
          var fileName = `${videoId} ${username}.mp4`;
          GM_download(newUrl, fileName);
          event.stopPropagation();
          event.preventDefault();
          return false;
        } else if (discordTikTokUrlMatch) {
          // Handle Discord's URL pattern
          var videoId = discordTikTokUrlMatch[2];
          var username = discordTikTokUrlMatch[1];
          var newUrl = `https://tikwm.com/video/media/hdplay/${videoId}.mp4`; // Replace with your new link
          var fileName = `${videoId} ${username}.mp4`;
          GM_download(newUrl, fileName);
          event.stopPropagation();
          event.preventDefault();
          return false;
        }
      }
    }
  });
})();