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

Nhìn chung là bản protocol_hook sắp tới kiếm streamlink bằng cách sau:
Code:
    if getOS() == 'Windows' then
        local cmd = 'run '..cwd..'/streamlink/bin/streamlink.exe '..url2..' 720p,best,worst --config='..cwd..'/streamlink.conf'
    else
        local cmd = 'run streamlink 720p,best,worst --config='..cwd..'/streamlink.conf'
    end

Không còn hardlink nữa mà giờ là symlink cho Mac/Linux, nhưng streamlink.conf vẫn phải ở cùng thư mục MPV cho tiện quản lý.
 
Theo cấu trúc folder thread thì streamlink sẽ luôn nằm cùng thư mục MPV, streamlink.conf (khá quan trọng) cũng vậy, với lại kiếm streamlink từ hệ thống quá khó vì nó là portable, nên cứ dựa vào thư mục gốc của MPV suy ra streamlink cho dễ:
Mac với Linux thì không rõ streamlink cài kiểu gì, nên chắc dùng luôn symlink dẫu sao cũng vừa thêm tính năng kiểm tra hệ điều hành.

Nhìn chung là cứ cố gắng cúc thôi. :D
Nếu muốn lấy thư mục config của mpv thì Khầy thử trick này xem
local path = utils.join_path(mp.find_config_file('.'),"streamlink")
Result:
1695785192125.png
 
Nếu muốn lấy thư mục config của mpv thì Khầy thử trick này xem
local path = utils.join_path(mp.find_config_file('.'),"streamlink")
Result:
View attachment 2094840
Ngon, cách này đơn giản hẳn :D

Mà dump nó ra mới thấy có nhiều hàng để nghịch, cái object mp này không thấy nhắc đến find_config_file trong doc nhưng lại quan trọng:

{ ["raw_wait_event"] = function: 0x01deffb82598,["request_event"] = function: 0x01deffb82610,["find_config_file"] = function: 0x01deffb82528,["get_script_directory"] = function: 0x01deffb82718,["command"] = function: 0x01deffb82850,["commandv"] = function: 0x01deffb828b0,["command_native"] = function: 0x01deffb82950,["raw_command_native_async"] = function: 0x01deffb82a00,["raw_abort_async_command"] = function: 0x01deffb82c10,["get_property"] = function: 0x01deffb82788,["get_property_osd"] = function: 0x01deffb82808,["get_property_bool"] = function: 0x01deffb8b648,["get_property_number"] = function: 0x01deffb8b6b8,["get_property_native"] = function: 0x01deffb8b760,["del_property"] = function: 0x01deffb8b7e0,["set_property"] = function: 0x01deffb8b848,["set_property_bool"] = function: 0x01deffb82a88,["set_property_number"] = function: 0x01deffb82af8,["set_property_native"] = function: 0x01deffb82ba0,["raw_observe_property"] = function: 0x01deffb8bbf0,["raw_unobserve_property"] = function: 0x01deffb8bc60,["get_time"] = function: 0x01deffb8bcd0,["input_set_section_mouse_area"] = function: 0x01deffb8bd38,["format_time"] = function: 0x01deffb8bdb0,["enable_messages"] = function: 0x01deffb8be18,["get_wakeup_pipe"] = function: 0x01deffb8be80,["raw_hook_add"] = function: 0x01deffb8bee8,["raw_hook_continue"] = function: 0x01deffb8bf50,["add_timeout"] = function: 0x01deffb9ae50,["add_periodic_timer"] = function: 0x01deffb9ae80,["abort_async_command"] = function: 0x01deffb8caa0,["create_osd_overlay"] = function: 0x01deffb8cb50,["script_name"] = protocol_hook,["UNKNOWN_TYPE"] = { ["info"] = this value is inserted if the C type is not supported,["type"] = UNKNOWN_TYPE,} ,["MAP"] = { ["info"] = native map,["type"] = MAP,} ,["ARRAY"] = { ["info"] = native array,["type"] = ARRAY,} ,["get_next_timeout"] = function: 0x01deffb9b138,["set_osd_ass"] = function: 0x01deffb8cb18,["get_osd_size"] = function: 0x01deffb8cc60,["get_osd_margins"] = function: 0x01deffb8cc90,["observe_property"] = function: 0x01deffb9b350,["unobserve_property"] = function: 0x01deffb9b400,["get_script_name"] = function: 0x01deffbe2d48,["get_opt"] = function: 0x01deffbe30f0,["keep_running"] = true,["register_event"] = function: 0x01deffb9b4b8,["unregister_event"] = function: 0x01deffb9b528,["log"] = function: 0x01deffb824f0,["input_enable_section"] = function: 0x01deffbe3150,["input_disable_section"] = function: 0x01deffbe3180,["register_idle"] = function: 0x01deffb9b5d8,["unregister_idle"] = function: 0x01deffb9b720,["msg"] = { ["error"] = function: 0x01deffb9b8d0,["trace"] = function: 0x01deffb9b9c0,["debug"] = function: 0x01deffb9b990,["log"] = function: 0x01deffb824f0,["fatal"] = function: 0x01deffb9b8a0,["warn"] = function: 0x01deffb9b900,["verbose"] = function: 0x01deffb9b960,["info"] = function: 0x01deffb9b930,} ,["wait_event"] = function: 0x01deffb9b9f0,["dispatch_events"] = function: 0x01deffb9ba88,["use_suspend"] = false,["set_key_bindings"] = function: 0x01deffb97e00,["osd_message"] = function: 0x01deffb9bb80,["input_define_section"] = function: 0x01deffbe3120,["unregister_script_message"] = function: 0x01deffb9b298,["add_hook"] = function: 0x01deffb8c828,["enable_key_bindings"] = function: 0x01deffb97eb8,["disable_key_bindings"] = function: 0x01deffb97ef0,["set_mouse_area"] = function: 0x01deffb8d240,["command_native_async"] = function: 0x01deffb8c8a8,["get_mouse_pos"] = function: 0x01deffbe31b0,["add_key_binding"] = function: 0x01deffb8d400,["add_forced_key_binding"] = function: 0x01deffb8d470,["remove_key_binding"] = function: 0x01deffb8d4a8,["cancel_timer"] = function: 0x01deffb9af60,["register_script_message"] = function: 0x01deffb9b228,["flush_keybindings"] = function: 0x01deffb8d2c0,}
 
Last edited:
Set xong không dùng được ublock element picker nữa bác ạ, mà các trang addon option vd như trang của header editor cũng không thể dùng được nốt
Còn flop, waterflop, mercury thì vẫn với các tác vụ trên đều bị thường xuyên nháy màn hình (hiếm khi không nháy) - không tốt cho mắt và cũng tốn tài nguyên máy hơn

Hiện tượng nhấp nháy thường là do Dark Reader và không chỉnh nglayout lên cao:

Tuy nhiên có giải pháp cho những người không muốn tăng nglayout, kéo xuống.

Mình cũng tìm ra là nếu chỉ để khắc phục hiện tượng trang nhấp nháy thì vào trong Manage Colors, chỉnh Background thành màu ưa thích rồi chọn Never, vậy thì trang sẽ không bao giờ nhấp nháy màu trắng gây hại mắt nữa:
1695789122183.png


Còn cho những người thạo với khẩm dô thì sửa trong about:config sẽ nhanh hơn:
browser.display.background_color#c0c0c0
browser.display.document_color_use1

Mở tiếp file userChrome.css lên, thêm:
Code:
/* Screen Flashing Fix */
#browser {
  background: #c0c0c0!important;
}

Hoặc black hay #000000 nếu nền đen.

Bài test, ấn Ctrl+T liên tục và cảm nhận: https://streamable.com/i7hv8j

Kết quả kiểm tra bằng cách ấn Ctrl+T, nếu nó ra màu kiểu này là thành công, trang web không bao giờ nhấp nháy trắng nữa:
1695789180762.png
 
Last edited:
Đã cúc xong nhé, bản mới đang test mấy hôm nay, càng thêm tính năng càng lỗi, càng kéo dài thời gian ra mắt, chắc không thêm nữa rồi test một bài trên các trang quan trọng rồi thả bom.

Video không che đây, kênh nó hiển thị hơi cùi bắp tí cơ mà méo mó có hơn không: https://streamable.com/se2yn7
sai chỗ nào vậy fen. lưu thành file m3u8 thì keos thả xem d9c mà ko có playlist :sad:
1695796769177.png
 
Back
Top