Greasy Fork is available in English.

add video download func in m.facebook.com

add video download func in m.facebook.com,plus add video height to window height.

// ==UserScript==
// @name         add video download func in m.facebook.com
// @namespace    add video download func in m.facebook.com
// @version      0.2
// @description  add video download func in m.facebook.com,plus add video height to window height.
// @author       zero0evolution
// @include      /^https\:\/\/m\.facebook\.com/
// @grant        none
// ==/UserScript==


// remove controlslist="nodownload"

var addVideoDownloadFunc = (videoElem)=>{
	if(videoElem.hasAttribute("controlslist")){
		videoElem.controlsList.value = videoElem.controlsList.value.replace(/nodownload/img,"")
	}
	videoElem.style.setProperty("height","100vh","important")
	videoElem.style.setProperty("width","auto","important")


	var nextImgElem = videoElem.nextElementSibling
	if(nextImgElem instanceof Element && nextImgElem.matches(".img")){
		nextImgElem.style.setProperty("height","100vh","important")
		nextImgElem.style.setProperty("width","auto","important")
		nextImgElem.style.setProperty("background-size","auto","important")
	}
}

var videoFilter = (topElem) =>{
	if(topElem.matches("video")){
		addVideoDownloadFunc(topElem)
	}
	for(let eachElem of topElem.querySelectorAll("video")){
		addVideoDownloadFunc(eachElem)
	}
}

videoFilter(document.documentElement)

//建立新的觀察物件
var observerObj = new MutationObserver(
	function (mutationObjs){
		for(let eachMutationObj of mutationObjs){
			for(let eachAddNode of eachMutationObj.addedNodes){
				if(eachAddNode.nodeType === 1){
					videoFilter(eachAddNode)
				}
			}
		}
	}
)

observerObj.observe(
	document.documentElement,{
		childList:true,
		subtree:true,
	}
)