master 47197d9d95f8 cached
7 files
7.6 KB
3.3k tokens
1 requests
Download .txt
Repository: unclehking/tumblr-video-downloader
Branch: master
Commit: 47197d9d95f8
Files: 7
Total size: 7.6 KB

Directory structure:
gitextract_mlvo_z1v/

├── README.md
├── tumblrVideoDown/
│   ├── manifest.json
│   └── res/
│       ├── css/
│       │   └── style.css
│       └── js/
│           ├── background.js
│           └── main.js
├── tumblrVideoDown.crx
└── tumblrVideoDown.pem

================================================
FILE CONTENTS
================================================

================================================
FILE: README.md
================================================
# tumblrVideoDown
tumblr视频下载chrome扩展程序(兼容各大“国产”浏览器急速版)

###chrome网上应用商店:
https://chrome.google.com/webstore/detail/njnkdhldbefijmdmjongfghcelgajjli

### Firefox附加组件商店:
https://addons.mozilla.org/zh-CN/firefox/addon/tumblrvideodownloader/

截图: <br />
![github](https://raw.githubusercontent.com/unclehking/tumblrVideoDown/master/screenshot/1.webp "github")  
![github](https://raw.githubusercontent.com/unclehking/tumblrVideoDown/master/screenshot/2.webp "github")  
![github](https://raw.githubusercontent.com/unclehking/tumblrVideoDown/master/screenshot/3.webp "github")  
<font color=red>
### 离线chrome扩展程序(.crx文件)安装方式:
 <div>1、打开chrome扩展程序页面 chrome://extensions/ 或者 菜单 > 更多工具> 扩展程序;</div>
 <div>2、把.crx文件拖进该页面。</div>
 </font>

### 2016-05-23
<div>1、修复video控制条被隐藏的bug; </div>
<div>2、新增“复制视频真实地址到剪贴板”。</div>


================================================
FILE: tumblrVideoDown/manifest.json
================================================
{
"update_url": "https://clients2.google.com/service/update2/crx",

	"name": "Tumblr Video Downloader",
	"short_name": "A Chrome Extension for download Tumblr video.",
	"version": "1.6",
	"author": "HKing",
	"description":"A Chrome Extension for easily download video from Tumblr website.",
	"background": {
		"scripts": ["res/js/background.js"]
	},
	"content_scripts": [
		{
			"matches": ["*://*.tumblr.com/*"],
			"css":["res/css/style.css"],
			"js": ["res/js/jquery.min.js","res/js/main.js"],
			"all_frames": true,
			"run_at":"document_end"
		}
	],
	"permissions": [
        "contextMenus","*://*.tumblr.com/*","downloads"
	],
	"icons": {
		"16": "res/pic/icon_16.png",
		"48": "res/pic/icon_48.png",
		"128": "res/pic/icon_128.png"
	},
	"browser_action": {
		"name": "Tumblr Video Downloader",
		"default_icon": "res/pic/icon_128.png"
	},
	"manifest_version": 2

}


================================================
FILE: tumblrVideoDown/res/css/style.css
================================================
/*HKing 2016-04-29*/
video.vjs-tech{
	position: absolute !important;
	top: 0px !important;
	left: 0px !important;
	z-index: 998 !important;
}
.hkingWrap{
	position: absolute;
	right: 4px;
	top: 4px;
	width: 60px;
	height: 60px;
	border-radius: 100%;
	line-height: 28px;
	z-index: 999 !important;
	background-color: #ff0000;
	display: none;
	text-align: center;
	cursor: pointer;
	overflow: hidden;
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1),
				4px 0 6px rgba(0, 0, 0, 0.1),
				0 -4px 6px rgba(0, 0, 0, 0.1),
				-4px 0 6px rgba(0, 0, 0, 0.1);
}
.hkingWrap::before{
	display: block;
	content: " ";
	width: 26px;
	height: 4px;
	background-color: #fff;
	border-radius: 3px;
	position: absolute;
	left: 16px;
	bottom: 12px;
}
.hkingWrap::after{
	display: block;
	content: " ";
	height: 32px;
	width: 4px;
	background-color: #fff;
	border-radius: 3px;
	position: absolute;
	left: 27px;
	bottom: 20px;
}
.hkingWrap > div::before{
	display: block;
	content: " ";
	height: 22px;
	width: 4px;
	background-color: #fff;
	border-radius: 3px;
	position: absolute;
	left: 20px;
	bottom: 18px;
	transform: rotate(-45deg);
}
.hkingWrap > div::after{
	display: block;
	content: " ";
	height: 22px;
	width: 4px;
	background-color: #fff;
	border-radius: 3px;
	position: absolute;
	left: 34px;
	bottom: 18px;
	transform: rotate(45deg);
}

.hkingWrap > p{
	display: none;
	width: 100%;
	height: 100%;
	background-color: green;
	position: relative;
	z-index: 998;
}
.hkingWrap > p:before{
	display: block;
	content: " ";
	height: 20px;
	width: 4px;
	background-color: #fff;
	border-radius: 3px;
	position: absolute;
	left: 19px;
	bottom: 13px;
	transform: rotate(-45deg);
}
.hkingWrap > p:after{
	display: block;
	content: " ";
	height: 32px;
	width: 4px;
	background-color: #fff;
	border-radius: 3px;
	position: absolute;
	left: 34px;
	bottom: 12px;
	transform: rotate(40deg);
}

.crt-video:hover .hkingWrap{
	display: block;
}

.crt-skin-default.vjs-has-started .vjs-control-bar{
	z-index: 1000 !important;
}


================================================
FILE: tumblrVideoDown/res/js/background.js
================================================
/*HKing 2016-06-25*/
const url = "www.tumblr.com";
const lang = navigator.language;
chrome.runtime.onMessage.addListener(
	f_nancy = (request, sender, sendResponse) =>{
		chrome.downloads.download(
			{
				url: request.url
			},
			id=>{}
		);
		sendResponse({info:"downloading"});
	}
);
chrome.browserAction.onClicked.addListener( tab =>{
	chrome.tabs.getAllInWindow(null, f_nancy = tabs =>{
		for(let t of tabs){
			if (t.url && t.url.match(url)) {
				f_nancy.tTab = true;
				chrome.tabs.update(t.id, {selected:true});
				break;
			}
		}
		!f_nancy.tTab && chrome.tabs.create({"url":`https://${url}`, "selected":true});
	});

});

lang === "zh-CN"
&&
(function(){
	chrome.contextMenus.create({
		"title": "迅雷下载此视频",
		"contexts":["video"],
		"id":"thunderDownload",
		"documentUrlPatterns":["*://*.tumblr.com/*"]
	});
	chrome.contextMenus.onClicked.addListener((info,tab)=>{
		let rUrl = `https://vt.tumblr.com/${/tumblr_.*/.exec(info.srcUrl)[0].replace(/\//g,"_")}.mp4`,
		thunderUrl = `thunder://${window.btoa(`AA${rUrl}ZZ`)}`;
		if(info.menuItemId === "thunderDownload"){
			chrome.tabs.sendMessage(
				tab.id,
				{
					url:thunderUrl,
					oldUrl:info.srcUrl,
					rUrl:rUrl
				},
				response=>{}
			);
		}

	});
})();


================================================
FILE: tumblrVideoDown/res/js/main.js
================================================
/*HKing 2016-04-29*/

var ifr;
chrome.runtime.onMessage.addListener(
	f_nancy = (request, sender, sendResponse) =>{
		var v = document.querySelector("video").querySelector("source");
		if(v.src==request.oldUrl || self==top){
			ifr = ifr || (f_nancy.isFirst=true,document.createElement('iframe'));
			ifr.src = request.url;
			f_nancy.isFirst && document.body.appendChild(ifr);
		};
	    return false;
	}
);
document.addEventListener('mouseover', (e) =>{
	if(e.target.nodeName == "VIDEO"){
		let $t = jQuery(e.target);
		if(!$t.next().hasClass('hkingWrap')){
			let oUrl = e.target.querySelector("source").src,
			    rUrl = `https://vt.tumblr.com/${/tumblr_.*/.exec(oUrl)[0].replace(/\//g,"_")}.mp4`,
			    hkingWrap = `<div class="hkingWrap" data-url="${rUrl}" title="Download this video.">
								<div></div>
								<p></p>
							</div>`;
			jQuery($t).after(hkingWrap);
			$t.next().click( (event) =>{
				var target = event.target;
				chrome.runtime.sendMessage(
					{
						url:target.dataset.url
					},
					response=>{
						$(target).find("p").show().delay(2000).fadeOut(1000);
					}
				)
				return false;
			});
		}

	};
});


================================================
FILE: tumblrVideoDown.pem
================================================
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCxPC3dwO/iAl3f
aTbQUkDIcTHSIkKllNvdVKuX02bdzBno+OF7wfuIdflH6Xegbxd5r61weS0qSfZY
Tridmt3Wv77sfvTxeyO0Q4v3tYhUa+Z2XGj4fmCGN10bPcKxheP2BgwGLt0dQ0IA
l98Hdti7FAnTlG5ZSLZxCdXGBxqkY474hRkfpzbVmW9XRqfkFlAVq8OfNgWnJoU2
7hgOqrElF6d8gCFi/ChFNaHaMwbv1w0J/9NLp8XdXYs0dzFn7B+WH9V0AZM9tglZ
EwkyFjjo6PMvht26jtJqOUu1PrFQkFmx43Hl4Ls/qQk3roZAApXzeIVDj3tRIBoo
WqKIyX5/AgMBAAECggEARJXGJgcwjSRfUUI07P63hRmQrwGFCvCE+Kx4TqOHLhN6
f1Y4Y5zYiqEkmzh0i4gR7IwYMOsjmDbQ9rFX7d1tNVo0Nu6WORBu66Yr9uqv3AN5
RppSIL8++RFZnV4UBoCKi70hUA84j8dkNjiPHSNXkWWau963qSNjPnEQ4bYEEFK1
hBrzDRXwBmdQ5VlUGR6vh0oxi18BVdkkFkGJHxbi0ohNsRtMEARoKRr2WHHDtpjA
jCdopmuKCReVo6WFr8weZAiqmeyESMMd8t3MBqWWYeYIYdaqU/CQDCb5c+QQ1fAp
q+WOg492MEwtdoB3iZ9XAFZWFq7rsK/8bMIlQWSMIQKBgQDf2WL3NhYqsoqxuCzy
n2doiiee8fxSvskACYjf7yuECn+Zy5vj4P7NJ05X6mZ3GTv8Rzd+CfytVb0LX98h
u7IvIx1NqvboQ+GsdAyEYaOXevvyftavwgIkWVbA1qkBz8sfz/QGD4fxfaVIU3bD
1D9svA966qpyKwyHs1ay9xMc7wKBgQDKsNvyFeP4cIwwWyI2h9UQcnR6iutrxmng
UG+xeDwzqTGqVEmBA86T0jIIOBfIVQVye/EOH8eyw23WzNHeGML04QvujH7HoXC5
vdovnUiy5cpqwGy1P26wqb3k7n+C4u1DiDSK3aUse2Guy7WvSAespY4kfbp8GIXt
uMCGvsPXcQKBgFVj78St9TbEdPPmdf73n9LZINQZK0/FR5ekC3qhGdB80MAyU31S
TuCjpdcTq5KzJZbO8/Q4ixL0KfE02UFdAFPK6Vq/ZQClJGlMu5mkRWt7lrCigfL5
5ydGjTlyqXXvdmTkRwoo0orkizBT5nI9fRRViPIyomJ62YTKfMA4UCoxAoGBAMCT
1vWknMvAS0HqZJBA8EvHIyoG8XSduJyab/TDExfWaky19nxw3IYQEN9ERDxfo2RJ
pBdSVI9hJOwQAFovVpQJeie1LwOHPK4NVs8kdh0bPP2+Q8rVMNsC+1wWyenWp60h
LSK/Qh8IPyAvhji6jCgZx/qdxl//gMgDYFDl0PbRAoGAEz7WE67daAAAPZDFAh5O
w4JKyRQaOzFBbvKTf9eFQfkhGqRstHuDmKbMOH8W4pctApJyMo5xCtmcWyj4tTlN
94hf7b7d6hQH2XXgPKrLd1IeEPucREj3N+a3XjaIBECaXRZ/ndbwWM5qQX3/sgxe
pGfBqYyvvp7gv9utifmU+E0=
-----END PRIVATE KEY-----
Download .txt
gitextract_mlvo_z1v/

├── README.md
├── tumblrVideoDown/
│   ├── manifest.json
│   └── res/
│       ├── css/
│       │   └── style.css
│       └── js/
│           ├── background.js
│           └── main.js
├── tumblrVideoDown.crx
└── tumblrVideoDown.pem
Condensed preview — 7 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (9K chars).
[
  {
    "path": "README.md",
    "chars": 808,
    "preview": "# tumblrVideoDown\ntumblr视频下载chrome扩展程序(兼容各大“国产”浏览器急速版)\n\n###chrome网上应用商店:\nhttps://chrome.google.com/webstore/detail/njnkd"
  },
  {
    "path": "tumblrVideoDown/manifest.json",
    "chars": 873,
    "preview": "{\n\"update_url\": \"https://clients2.google.com/service/update2/crx\",\n\n\t\"name\": \"Tumblr Video Downloader\",\n\t\"short_name\": \""
  },
  {
    "path": "tumblrVideoDown/res/css/style.css",
    "chars": 1991,
    "preview": "/*HKing 2016-04-29*/\nvideo.vjs-tech{\n\tposition: absolute !important;\n\ttop: 0px !important;\n\tleft: 0px !important;\n\tz-ind"
  },
  {
    "path": "tumblrVideoDown/res/js/background.js",
    "chars": 1234,
    "preview": "/*HKing 2016-06-25*/\nconst url = \"www.tumblr.com\";\nconst lang = navigator.language;\nchrome.runtime.onMessage.addListener"
  },
  {
    "path": "tumblrVideoDown/res/js/main.js",
    "chars": 1145,
    "preview": "/*HKing 2016-04-29*/\n\nvar ifr;\nchrome.runtime.onMessage.addListener(\n\tf_nancy = (request, sender, sendResponse) =>{\n\t\tva"
  },
  {
    "path": "tumblrVideoDown.pem",
    "chars": 1704,
    "preview": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCxPC3dwO/iAl3f\naTbQUkDIcTHSIkKllNvdVKuX02b"
  }
]

// ... and 1 more files (download for full content)

About this extraction

This page contains the full source code of the unclehking/tumblr-video-downloader GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 7 files (7.6 KB), approximately 3.3k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!