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

em chợt nhận ra là autosub không chạy và sub từ addon của nó không pass sang cho mpv, thành ra không lấy được sub việt
Chắc mod lại là ok, vì vấn đề là streamio nó không để tên phim ở MPV nên không có gì để MPV lấy, có hai khả năng:
  • Ép cho Stremio gửi tiêu đề phim (title) cho MPV
  • Ép plugin auto sub cho phép mình tự điền tên phim

Cách 1 dĩ nhiên là tốt nhất.

Đoạn này trong file server.js có vẻ được vì thằng playArg trống, nghĩa là mình có thể sử dụng nó cho mục đích gửi --title= :D
Code:
        mpv: {
            title: "MPV",
            args: ['--no-terminal'],
            subArg: '--sub-file=', // DOESN'T WORK ON MAC
            timeArg: '--start=',
            playArg: '',
            darwin: {
                path: ["/usr/local/bin/mpv", "/opt/local/bin/mpv", "/sw/bin/mpv"] // Homebrew, MacPort, Fink
            },
            linux: {
                path: ["/usr/bin/mpv"]
            },
            win32: {
                path: []
            }
        },

Hiện tại xem hiện sub ngon phết nếu không quan tâm tiếng Việt:
1684515602205.png
 
Chắc mod lại là ok, vì vấn đề là streamio nó không để tên phim ở MPV nên không có gì để MPV lấy, có hai khả năng:
  • Ép cho Stremio gửi tiêu đề phim (title) cho MPV
  • Ép plugin auto sub cho phép mình tự điền tên phim

Cách 1 dĩ nhiên là tốt nhất.

Đoạn này trong file server.js có vẻ được vì thằng playArg trống, nghĩa là mình có thể sử dụng nó cho mục đích gửi --title= :D
Code:
        mpv: {
            title: "MPV",
            args: ['--no-terminal'],
            subArg: '--sub-file=', // DOESN'T WORK ON MAC
            timeArg: '--start=',
            playArg: '',
            darwin: {
                path: ["/usr/local/bin/mpv", "/opt/local/bin/mpv", "/sw/bin/mpv"] // Homebrew, MacPort, Fink
            },
            linux: {
                path: ["/usr/bin/mpv"]
            },
            win32: {
                path: []
            }
        },

Hiện tại xem hiện sub ngon phết nếu không quan tâm tiếng Việt:
View attachment 1845220
không được rồi bác ạ. Không biết có đúng argument của nó không nữa, không thấy có doc để mà làm theo luôn
 
không được rồi bác ạ. Không biết có đúng argument của nó không nữa, không thấy có doc để mà làm theo luôn
Chắc phải hard mod (sửa lại một vài thành phần trong server.js):
  • Tạo biến lấy title bằng javascript, cả cái ứng dụng stremio này dùng Javascript làm nền tảng nên biết js làm được tất
  • Nhúng vào playArg

Nói chung cứ từ từ kiểu gì cũng ra cách, mình đọc code của nó rồi rất rõ ràng, toàn là Pure Javascript.

Mod lại đoạn này chắc ok thôi:

Code:
    function getDevice(player, platform) {
        var playerObj = players[player];
        var platformObj = playerObj[platform];
        return {
            name: playerObj.title,
            type: 'external',
            id: player,
            onlyHtml5Formats: playerObj.onlyHtml5Formats,
            play: function (src) {
                // if it's a torrent, use the filename instead of file index
                var torrentUrl = src.match(/\/(?<ih>[0-9a-f]{40})\/(?<id>[0-9]+)$/)
                if (torrentUrl) {
                    var fileIdx = torrentUrl.groups.id
                    var filename = enginefs.getFilename(torrentUrl.groups.ih, fileIdx)
                    if (filename)
                        src = src.replace(new RegExp(fileIdx + '$'), encodeURIComponent(filename))
                }
                var self = this;
                // wait for all variables on to become eventually available on 'player' model
                setTimeout(function(){
                    var port = enginefs.baseUrl.match(".*?:([0-9]+)")[1];
                    var host = enginefs.baseUrl.match("^http://(.*):[0-9]+$")[1];
                    var subsPath = self.subtitlesSrc;
                    var time = self.time;
                    var subsFile = '';

                    var playExternal = function(){
                        var playerPaths = platformObj.path.filter(function (path) {
                            return fs.existsSync(path.replace(/"/ig, ''))
                        });
                        if (playerPaths.length > 0) {
                            var wrappedSrc = '"' + src + '"';
                            var subsCmd = subsFile && players[player]['subArg'] && players[player]['subArg'].length > 0 ? players[player]['subArg'] + subsFile : '';
                            var argsCmd = players[player]['args'] && players[player]['args'].length > 0 ? players[player]['args'].join(" ") : '';
                            var timeCmd = players[player]['timeArg'] && players[player]['timeArg'].length > 0 ? players[player]['timeArg'] + parseInt(time / 1000) : '';
                            var playCmd = players[player]['playArg'] && players[player]['playArg'].length > 0 ? players[player]['playArg'] + wrappedSrc : wrappedSrc;
                            var fullCmd = playerPaths[0] + ' ' + timeCmd + ' ' + argsCmd + " " + subsCmd + ' ' + playCmd;

                            child.exec(fullCmd, function(error) {
                                console.error('Failed executing external player command:', error);
                            })
                            .on('exit', function() {
                                if(subsFile) try {
                                    fs.unlinkSync(subsFile);
                                } catch(e) {
                                    console.error('Cannot remove the subtitles file:', e);
                                }
                            });
                        }
                    };

                    if(subsPath) {
                        subsFile = path.join(os.tmpdir(), 'stremio-' + player + '-subtitles.srt');
                        http.request({
                            host: host,
                            path: '/subtitles.srt?from=' + encodeURIComponent(subsPath),
                            port: port
                        }, function (response) {
                            var data = '';

                            // receive all data and save it to data variable
                            response.on('data', function (d) {
                                data += d.toString()
                            });

                            // when stop receiving subtitles play video with subtitles in external player
                            response.on('end', function () {
                                try {
                                    fs.writeFileSync(subsFile, data.toString());
                                } catch(e) {
                                    console.error('Cannot get the subtitles:', e);
                                    subsFile = '';
                                }
                                playExternal();
                            });
                        }).end();
                    }
                    else{
                       playExternal();
                    }
                }, PLAYBACK_DELAY);
            }
        }
    }

name: playerObj.title, chính là phần tiêu đề MPV, đầu tiên var title = lấy tên tiêu đề từ stremio, rồi điền vào nó là xong.
 
Chắc mod lại là ok, vì vấn đề là streamio nó không để tên phim ở MPV nên không có gì để MPV lấy, có hai khả năng:
  • Ép cho Stremio gửi tiêu đề phim (title) cho MPV
  • Ép plugin auto sub cho phép mình tự điền tên phim

Cách 1 dĩ nhiên là tốt nhất.

Đoạn này trong file server.js có vẻ được vì thằng playArg trống, nghĩa là mình có thể sử dụng nó cho mục đích gửi --title= :D
Code:
        mpv: {
            title: "MPV",
            args: ['--no-terminal'],
            subArg: '--sub-file=', // DOESN'T WORK ON MAC
            timeArg: '--start=',
            playArg: '',
            darwin: {
                path: ["/usr/local/bin/mpv", "/opt/local/bin/mpv", "/sw/bin/mpv"] // Homebrew, MacPort, Fink
            },
            linux: {
                path: ["/usr/bin/mpv"]
            },
            win32: {
                path: []
            }
        },

Hiện tại xem hiện sub ngon phết nếu không quan tâm tiếng Việt:
View attachment 1845220
bác xài addon sub nào vậy
sao nó sub một nơi còn phim một nơi bác nhỉ :eek:
1684517226846.png
 
Em thấy trong này có khi như vậy, nhưng sửa lại thành 'start ""' thì vẫn không thấy nó thay đổi gì ở phần title của mpv cả
1684518542388.png
 
đang xài Firefox bản gốc, sau khi làm theo cách bật ECH thì vào mấy trang bị chặn như pỏn húp, medium ngon lành, tui mới đú đởn thử cài bản mod tete009 thì giờ vào mấy trang này ko được nữa :cry: mặc dù kiểm tra trong about:config thì mấy cái mình đã chỉnh sửa vẫn như cũ, vào trang defo.ie để check thì nó để not attempted (lúc trước là success) :cry: giờ chắc phải cài lại bản gốc ở ĐÂY hả anh em ?:cry:
 
đang xài Firefox bản gốc, sau khi làm theo cách bật ECH thì vào mấy trang bị chặn như pỏn húp, medium ngon lành, tui mới đú đởn thử cài bản mod tete009 thì giờ vào mấy trang này ko được nữa :cry: mặc dù kiểm tra trong about:config thì mấy cái mình đã chỉnh sửa vẫn như cũ, vào trang defo.ie để check thì nó để not attempted (lúc trước là success) :cry: giờ chắc phải cài lại bản gốc ở ĐÂY hả anh em ?:cry:
tạo profiles mới xem thử đi bác
 
Em chịu chết rồi, rõ ràng nó dẫn path đến mpv.exe, chả biết họ code kiểu gì

bác xài addon sub nào vậy
sao nó sub một nơi còn phim một nơi bác nhỉ :eek:
Tìm ra cách rồi, mở ra MPV, có tên, có plugin, có sub:

Thay vì xem trong ứng dụng stremio, mở http://127.0.0.1:11470 trong Firefox (nghĩa là ở đây ta phải dùng Firefox thay vì dùng stremio, hoàn toàn có thể tắt giao diện stremio đi cho tiết kiệm RAM, chỉ cần cái dịch vụ stremio-runtime.exe chạy là ok, các bạn có thể tạo một file stremio-runtime.bat với nội dung stremio-runtime.exe server.js đặt trong folder Stremio-4 (gõ Win+R rồi copy/paste %USERNAME%\AppData\Local\Programs\LNV\Stremio-4 xong Enter) rồi tạo shortcut ném vào folder Startup (Win+R, gõ shell:startup cho nó khởi động cùng Windows), xem rồi chọn Watch on MPV ở:
1684565809774.png


Nếu muốn sub thì tải trong Firefox rồi kéo thả vào cửa sổ MPV:
1685279629827-png.1862024


Sửa dòng này thành, chú ý phải bọc đường dẫn trong '", và nếu không để MPV ở D:\mpv\mpv.exe thì phải tự thay vào và sửa \ thành \\:

Code:
        mpv: {
            title: "MPV",
            args: [''],
            subArg: '--sub-file=', // DOESN'T WORK ON MAC
            timeArg: '--start=',
            playArg: '',
            darwin: {
                path: ["/usr/local/bin/mpv", "/opt/local/bin/mpv", "/sw/bin/mpv"] // Homebrew, MacPort, Fink
            },
            linux: {
                path: ["/usr/bin/mpv"]
            },
            win32: {
                path: ['"D:\\mpv\\mpv.exe"']
            }
        },

1684565451068.png


Ra hẳn bản MPV hàng khủng do mình khổ công chỉnh chọt:

1684566228666.png


Song ngữ luôn cho máu chiến, vừa học tiếng Pháp vừa xem:
1684567232843.png


Việc mở stremio trong Firefox là tốt nhất vì:
  • Có thể áp dụng Userscript cho phép làm nhiều trò bệnh hoạn, ví dụ tự mở MPV không cần ấn vào Open on MPV
  • Ít lỗi hơn giao diện ứng dụng mặc định
  • Dễ cài addon hơn cho io
  • Dễ quản lý hơn tất cả trong một Firefox, bớt đi một ứng dụng chạy nền, cứ tạo một bookmark tên IO rồi để URL là http://127.0.0.1:11470 mỗi khi cần mở từ Firefox
 

Attachments

  • 1684566538488.png
    1684566538488.png
    34.3 KB · Views: 118
Last edited:
tạo profile mới rồi làm lại từ đầu vẫn không được nữa bạn, giờ vào trang defo.ie nó để not attempted luôn rồi
image
Muốn khôi phục lại Firefox cũ thì:
Nếu tete mà không dùng được ECH có khi nào tác giả tete không compile với ECH nhỉ.

Vừa test thử với Firefox thường để chắc chắn là ít nhất ECH 1000% hoạt động nhé:

1684572041671.png


1684572142491.png
 
Last edited:
Muốn khôi phục lại Firefox cũ thì:
Nếu tete mà không dùng được ECH có khi nào tác giả tete không compile với ECH nhỉ.

Vừa test thử với Firefox thường để chắc chắn là ít nhất ECH 1000% hoạt động nhé:

View attachment 1846209

View attachment 1846212
link bạn đưa mình là bản 32bit nên mình tải lại bản 64bit, giờ vào vẫn không được luôn, check cái trang defo.ie đó thì vẫn not attempted, vô lý vãi :waaaht:
 
giờ mới phát hiện là adblocker ultimate không hỗ trợ $removeparam nên không dùng được bộ lọc adguard url tracking filter các bác ạ :)
 
link bạn đưa mình là bản 32bit nên mình tải lại bản 64bit, giờ vào vẫn không được luôn, check cái trang defo.ie đó thì vẫn not attempted, vô lý vãi :waaaht:
Vào thử https://jp.pornhub.com/ với https://1.medium.com xem sao. Sau đó qua https://www.pornhub.com/ với https://medium.com.

Nói chung là đây là cách để câu cho HTTP3 nó đớp mồi, sau khi đớp xong là tha hồ vào.
 
Back
Top