通过油猴脚本,给 X(原 twitter)网页版信息流中增加一个下载按钮
解析服务由 ssstwitter.com 提供,本脚本仅是将其附着在信息流中,以免去用户额外输入地址操作。
脚本的安装与使用
脚本安装
脚本已上传 greasyfork : https://greasyfork.org/zh-CN/scripts/478651-twitter-%E8%A7%86%E9%A2%91%E4%B8%8B%E8%BD%BD ,点击即可进行安装;
脚本使用
- 确保脚本已安装成功;
- (随意的)浏览 Twitter ,直到看到不错的视频;
- 右键复制视频地址;
- 点击下载视频 按钮;
- 粘贴视频地址 - 解析 - 下载;
通过这个脚本预估可帮助省去的操作步骤:
- (复制好视频链接后)打开新的标签页;
- 输入地址 ssstwitter.com (当然,如果你之前打开过该网页,你或许只需要输入 ss ,按↓键,点击回车键即可);
- 下载完后切换回 twitter 标签页;
- 如果你不小心关闭了 ssstwitter.com 页面,那么不可避免的又要重复一遍上述步骤;
- So?脚本的意义就是….
脚本的源码
其中脚本源码如下:
// ==UserScript==
// @name Twitter 视频下载
// @namespace https://limbopro.com/
// @version 0.1.1
// @description Twitter 网页版视频下载
// @author limbopro
// @license MIT
// @match https://twitter.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=twitter.com
// @grant none
// ==/UserScript==
(function () {
'use strict';
setInterval(() => {
if (document.querySelectorAll('[data-testid="cellInnerDiv"]')) { // 判断当前页面是否存在推文
let article = document.querySelectorAll('[data-testid="cellInnerDiv"]') // 找到当前页面已加载的所有推文
for (let i = 0; i < article.length; i++) {
if (!article[i].querySelector('a[href*=ssstwitter]')) { // 确保这些推文还没有附着下载按钮
if (article[i].querySelector('[data-testid="videoPlayer"]')) { // 如果推文中包含 videoPlayer 则在其身上附着下载按钮
console.log(article[i].textContent); // 在控制台列出该推文的内容
let a = document.createElement('a') // 新建元素 a
a.href = 'https://ssstwitter.com/result_various'; // 解析服务地址
a.target = '_blank'; // 新页面打开
a.zIndex = '114154'; // 位于 114154 层,确保 a 元素不被其他元素遮挡
a.style = 'position:absolute;right:40px;top:20px;background-color:blue;color:aquamarine;z-index:114154;' // 为其设置必要的样式
a.textContent = "下载视频"; // a 元素的文字内容
article[i].appendChild(a) // 执行附着
}
}
}
}
}, 1000) // 每秒执行一次脚本 直至关闭当前页面
})();
效果(简简单单,未做太多修饰):
* 本文最后更新时间: 2024-03-01 13:44