kiến thức Tổng hợp những addon chất cho Firefox / Chromium

Update tiếp post này, hiện tại mình đã tìm ra cách xem video từ cái server Wa rồi nhé, điều duy nhất cần phải làm là fake Referer của MPV bằng cách thêm --http-header Referer=https://anime47.com/ vào Arguments của nút Streamlink:

Name: StreamlinkReferer
Executable Name: D:\mpv\streamlink\bin\streamlinkw.exe
Arguments: [HREF] 480p,best --http-header Referer=https://anime47.com/ --stream-segment-threads=3 --stream-segment-timeout 35.00 --http-no-ssl-verify --twitch-disable-ads --player-no-close --player=D:\mpv\mpv.exe
hoặc dùng [PROTOCOL]//[HOSTNAME]/ sẽ áp dụng cho nhiều trang hơn
[HREF] 480p,best --http-header Referer=[PROTOCOL]//[HOSTNAME]/ --stream-segment-threads=3 --stream-segment-timeout 35.00 --http-no-ssl-verify --twitch-disable-ads --player-no-close --player=D:\mpv\mpv.exe

Chú ý: Đoạn 480p,best chỉnh thành best nếu muốn chất lượng cao nhất, 480p là để mùa đứt cáp.

Chọn: Toolbar ButtonLink Context

Nên tạo hẳn một nút mới cho Streamlink nhé là StreamlinkReferer dành cho trường hợp này, từ từ sẽ nghĩ ra cách tạo plugin cho nó tự động dùng referer, hiện tại thật ra làm cho biết chứ 2 server còn lại dùng tốt hơn nhiều rồi, tuy nhiên nó sẽ mở ra cánh cửa cho những trường hợp tương tự sau này gặp phải. :D
Cũng không hiểu sao Streamlink nó ép MPV mở được file video bị fake thành ảnh, còn bản thân MPV thì lại không được ? Có lẽ cần tạo Issue trên Github của MPV về vụ này.

Ngoài ra những bạn đã và đang sử dụng nút Streamlink cũ thì nên cập nhập thành nút này, nút này đỉnh cao ở chỗ nó chia luồng stream để tải đa luồng trước những file .ts của stream, giúp tăng tốc tải stream cũng như tắt SSL check đi cho khỏi rắc rối.

Và hậu quả không thể đoán lường :love:
https://streamja.com/51wvN
sao mình mở bình thường stream vẫn đc mà bác
 
sao mình mở bình thường stream vẫn đc mà bác
Xem bằng Streamlink thì nó có vài ưu điểm:
  • Bỏ qua quảng cáo tinh xảo như Twitch (nếu có tài khoản Twitch Premium thì không cần Streamlink vì khi này MPV là ngon nhất)
  • Tận dụng đa luồng xem stream nên ổn định hơn

Nói chung có tài khoản pre Twitch thì xem thẳng MPV cho lành vì pre = không quảng cáo, chỉ cần dùng --cookies-from-browser.
 
Hiện tại mình test thử thì thấy tính năng loại bỏ tracking query bỏ sót AJAX, ví dụ như m.youtube.com khi tìm kiếm nó sẽ ra link tracking kiểu https://m.youtube.com/watch?v=aWONbcJpuYo&pp=ygULZG90YSAyIGxpdmU%3D

Link tìm kiếm: https://m.youtube.com/results?sp=mAEA&search_query=dota+2+live

Kể cả thêm pp vào nó vẫn không xóa pp đi được, ví dụ:

View attachment 1811911

Trong about:config:

Nếu có giải pháp nào mà hoạt động kiểu dùng script mà dùng addEventListener "mouseover" để khử tracking query khi đặt chuột lên thì sẽ triệt để hơn. Bởi nếu trang web có thể gắn tracking query vào được là họ có thể gửi thông tin qua (setTimeout/setInterval+XHR), như vậy nghĩa là mình vẫn thua họ.

Hiện tại mình không thấy có script hay addon nào khử được như vậy. Nên các giải pháp kiểu ClearURLs này chưa thực sự hoàn thiện lắm.

@erogemaster225 Có cao kiến nào về vụ này ?
Nếu mà modify được khi hover thì lại nguy hiểm vl cái này không đồng ý, cái pp kia có vẻ là search string nó encode lại (và chỉ có mobile có cái này nên không rõ lắm không mở youtube mobile) chứ không unique theo từng người nên có sợ bị tracking thì bọn google cũng có đủ trò hay hơn cái đó
 
Cái này rắc rối mà kém hiệu quả lắm, thử cái này xem:
  • Tải thằng Cù tại đây https://curl.se/windows/dl-8.0.1_8/curl-8.0.1_8-win32-mingw.zip
  • Giải nén sao cho curl.exe cùng folder với mpv.exe
  • Tải thằng này thẳng và folder scripts trong portable_config: https://codeberg.org/jouni/mpv_sponsorblock_minimal/raw/branch/master/sponsorblock_minimal.lua
Ấn b để bật nó lên nhé, còn nếu muốn tự động thì sửa file sponsorblock_minimal.lua chỉnh local ON = false thành local ON = true

Kết quả: https://streamable.com/qhfgb3

Vậy là xong thôi, thằng này dùng webAPI nên không bao giờ hết đát, luôn luôn cập nhập theo thời gian thực. Tác giả viết nó cho Linux cơ mà chắc chắn hoạt động trên Windows vì Windows cũng có Cù.
Win nó có sẵn curl vài năm rồi mà nhỉ
 
à ko bác, mình dùng trên web m.youtube luôn ấy:byebye:
cái này em chịu bác ạ, không thấy cái script hay addon nào như vậy cả, chắc là ít ai dùng pc mà lại dùng web mobile xem video, android người ta dùng revanced hết rồi
PLJmXG1.png
 
à ko bác, mình dùng trên web m.youtube luôn ấy:byebye:
Trước vẫn tua ngon mà hiện giờ Youtube Mobile nó đổi code nên không tua được nữa, nói chung cũng bó tay vì code Youtube nó qua rắc rối, cơ mà mình chỉ có thể gợi ý là nếu biết viết Userscript có thể ép tung cái thẻ video của Youtube Mobile ra là tua được, bạn dựa trên ý tưởng này rồi phát triển ra, cứ Ctrl + Shift + I, chạy video, paste vào rồi Run sẽ thấy phép lạ, video phép lạ: https://streamable.com/bxli39

Code:
try {
document.querySelector('#player-container-id').innerHTML = document.querySelector('#player video').outerHTML } catch (e) {
   
}

var video = document.querySelector('#player-container-id video')
video.setAttribute('controls', '');
video.style.width = '100%';

Có gì bạn tự biến thành script nhé.
 
Win nó có sẵn curl vài năm rồi mà nhỉ
Cù này cập nhập thường xuyên lắm sợ Windows không theo nổi, ngoài ra hiện tại nó đang đấu với TLS Fingerprint với curl-impersonate, nên không cập nhập chỉ có thiệt vào thân, chép vào folder MPV sẽ toàn vẹn và Portable hơn, chuyển máy này qua máy khác tốn vài s.

Như mình copy Firefox qua máy khác chỉ copy cả folder Firefox chứa luôn cả folder MPV là xong, chạy dùng luôn cả quan tâm đến chỉnh chọt gì cả.
 
Thanks thím đã remind. Tác giả vẫn chưa update cho bản Mac M1chip nên tạm mình xài IINA.
Mình thấy mpv đã có support cho Apple Silicon rồi mà ta: https://formulae.brew.sh/formula/mpv#default
Hay ý bạn là bản cài đặt qua
Bash:
brew install --cask mpv
lấy nguồn từ đây : https://laboratory.stolendata.net/~djinn/mpv_osx/ vô coi thì đúng là tác giả không có máy MacM1 thiệt.
Mình thường chỉ dùng bản mpv chạy từ Terminal thôi, cài bằng cách :
Bash:
brew install mpv
nên không để ý đến bản kia lắm.
mpv từ Terminal vẫn có thể chạy được khi gọi qua trung gian osascipt thôi.
 
Trước vẫn tua ngon mà hiện giờ Youtube Mobile nó đổi code nên không tua được nữa, nói chung cũng bó tay vì code Youtube nó qua rắc rối, cơ mà mình chỉ có thể gợi ý là nếu biết viết Userscript có thể ép tung cái thẻ video của Youtube Mobile ra là tua được, bạn dựa trên ý tưởng này rồi phát triển ra, cứ Ctrl + Shift + I, chạy video, paste vào rồi Run sẽ thấy phép lạ, video phép lạ: https://streamable.com/bxli39

Code:
try {
document.querySelector('#player-container-id').innerHTML = document.querySelector('#player video').outerHTML } catch (e) {
  
}

var video = document.querySelector('#player-container-id video')
video.setAttribute('controls', '');
video.style.width = '100%';

Có gì bạn tự biến thành script nhé.
yes thanks bác, để mình mày mò tiếp xem thế nào, thành công thì mình chia sẻ vào thread :byebye:
 
Trước vẫn tua ngon mà hiện giờ Youtube Mobile nó đổi code nên không tua được nữa, nói chung cũng bó tay vì code Youtube nó qua rắc rối, cơ mà mình chỉ có thể gợi ý là nếu biết viết Userscript có thể ép tung cái thẻ video của Youtube Mobile ra là tua được, bạn dựa trên ý tưởng này rồi phát triển ra, cứ Ctrl + Shift + I, chạy video, paste vào rồi Run sẽ thấy phép lạ, video phép lạ: https://streamable.com/bxli39

Code:
try {
document.querySelector('#player-container-id').innerHTML = document.querySelector('#player video').outerHTML } catch (e) {
 
}

var video = document.querySelector('#player-container-id video')
video.setAttribute('controls', '');
video.style.width = '100%';

Có gì bạn tự biến thành script nhé.
JavaScript:
let progressBar = document.querySelector('.ytm-progress-bar')
let player = document.querySelector('video.html5-main-video')
progressBar.addEventListener('click', function(event) {
  let boundingRect = progressBar.getBoundingClientRect();
  let clickPosition = event.clientX - boundingRect.left;
  let progressBarWidth = boundingRect.width;
  let percentage = (clickPosition / progressBarWidth);
  player.currentTime = Math.floor(percentage * player.duration);
});
Lưu ý cái này muốn thêm vào userscript thì phải đợi page load xong rồi vid chạy mới có progress bar để select
 
JavaScript:
let progressBar = document.querySelector('.ytm-progress-bar')
let player = document.querySelector('video.html5-main-video')
progressBar.addEventListener('click', function(event) {
  let boundingRect = progressBar.getBoundingClientRect();
  let clickPosition = event.clientX - boundingRect.left;
  let progressBarWidth = boundingRect.width;
  let percentage = (clickPosition / progressBarWidth);
  player.currentTime = Math.floor(percentage * player.duration);
});
Lưu ý cái này muốn thêm vào userscript thì phải đợi page load xong rồi vid chạy mới có progress bar để select
Uầy quá ngon cực phẩm luôn, cảm ơn nhiều, mình mod lại chút giờ nó hỗ trợ được cả AJAX rồi, full không che: https://streamable.com/lfw5ge

Userscript hoàn thiện luôn:
Code:
// ==UserScript==
// @name            Youtube Mobile Seekable
// @author          erogemaster225
// @namespace       http://www.example.url/to/your-web-site/
// @description     Put a good description in here
// @license         Creative Commons Attribution License
// @version            0.2
// @include         http*://m.youtube.com/*
// @grant        none
// @run-at           document-start
// @released        2006-04-17
// @updated         2006-04-19
// @compatible      Greasemonkey
// ==/UserScript==

setInterval(function() {
if (location.href.indexOf('/watch') != -1) {
let progressBar = document.querySelector('.ytm-progress-bar')
let player = document.querySelector('video.html5-main-video')
if (!progressBar.getAttribute('tagged') && player.getAttribute('src')) {
progressBar.addEventListener('click', function(event) {
  let boundingRect = progressBar.getBoundingClientRect();
  let clickPosition = event.clientX - boundingRect.left;
  let progressBarWidth = boundingRect.width;
  let percentage = (clickPosition / progressBarWidth);
  player.currentTime = Math.floor(percentage * player.duration);
});
progressBar.setAttribute('tagged', 'true');
console.log('tagged');
}
}
}, 2000);

Cơ chế hoạt động là dùng setInterval cứ 2 giây kiểm tra progressBar một lần, nếu không có tagged thì biến thành tua được rồi thêm tagged, hiệu năng hết cỡ, hoạt động cả trên nền AJAX. :D

Phôi Userscript để nhân bản vô tính: https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/post-24721705

@ktpttd @asuka1523 trươc hỏi: https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/post-23971769

Ngon rồi nhé :D
 
Last edited:
Uầy quá ngon cực phẩm luôn, cảm ơn nhiều, mình mod lại chút giờ nó hỗ trợ được cả AJAX rồi, full không che: https://streamable.com/lfw5ge

Userscript hoàn thiện luôn:
Code:
// ==UserScript==
// @name            Youtube Mobile Seekable
// @author          erogemaster225
// @namespace       http://www.example.url/to/your-web-site/
// @description     Put a good description in here
// @license         Creative Commons Attribution License
// @version            0.1
// @include         http*://m.youtube.com/watch*
// @grant        none
// @run-at           document-start
// @released        2006-04-17
// @updated         2006-04-19
// @compatible      Greasemonkey
// ==/UserScript==

setInterval(function() {
let progressBar = document.querySelector('.ytm-progress-bar')
let player = document.querySelector('video.html5-main-video')
if (!progressBar.getAttribute('tagged') && player.getAttribute('src')) {
progressBar.addEventListener('click', function(event) {
  let boundingRect = progressBar.getBoundingClientRect();
  let clickPosition = event.clientX - boundingRect.left;
  let progressBarWidth = boundingRect.width;
  let percentage = (clickPosition / progressBarWidth);
  player.currentTime = Math.floor(percentage * player.duration);
});
progressBar.setAttribute('tagged', 'true');
console.log('tagged');
}
}, 2000);

Cơ chế hoạt động là dùng setInterval cứ 2 giây kiểm tra progressBar một lần, nếu không có tagged thì biến thành tua được rồi thêm tagged, hiệu năng hết cỡ, hoạt động cả trên nền AJAX. :D

Phôi Userscript để nhân bản vô tính: https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/post-24721705

@ktpttd @asuka1523 trươc hỏi: https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/post-23971769

Ngon rồi nhé :D
đỉnh vl, toàn tay to. Hehe:beauty:
 
Mình thấy mpv đã có support cho Apple Silicon rồi mà ta: https://formulae.brew.sh/formula/mpv#default
Hay ý bạn là bản cài đặt qua
Bash:
brew install --cask mpv
lấy nguồn từ đây : https://laboratory.stolendata.net/~djinn/mpv_osx/ vô coi thì đúng là tác giả không có máy MacM1 thiệt.
Mình thường chỉ dùng bản mpv chạy từ Terminal thôi, cài bằng cách :
Bash:
brew install mpv
nên không để ý đến bản kia lắm.
mpv từ Terminal vẫn có thể chạy được khi gọi qua trung gian osascipt thôi.
Mềnh làm y chang từng bước. Thử cả 2 cách mà cứ nhấn vào là nó gọi osascript xong là đứng im luôn thím nạ. :(
Edit: xem log thì nó báo thế này
Code:
Error reading config file.
Error parsing option gpu-api (option parameter could not be parsed)
/Users/ippuoodle/.config/mpv/mpv.conf:67: setting option gpu-api='vulkan' failed.
[libmpv_render] Unrecognized/unavailable FORMAT name: 'rgba16hf'!
[sub_fonts_dir_auto] This version of mpv does not support the sub-fonts-dir option
 
Last edited:
Back
Top