local preferred_alangs = {"jpn", "ja", "japanese"} local preferred_slangs = {"jpn", "ja", "japanese"} local phrases = { "日本語オンリーで行こう!英語なんて大嫌い!", "これで完全に日本語モードです!", "やったね!日本語が優先されました!", "日本語が一番!英語は嫌いだ!", "今、完全に日本語です!英語はなし!" } function select_tracks() local tracks = mp.get_property_native("track-list") -- Disable all subtitles at the beginning for _, track in ipairs(tracks) do if track.type == "sub" then mp.set_property("sid", "no", track.id) end end local japanese_subtitle_tracks = {} -- Enable Japanese subtitles if available for _, track in ipairs(tracks) do if track.type == "sub" and table.contains(preferred_slangs, track.lang) then table.insert(japanese_subtitle_tracks, track.id) end end if #japanese_subtitle_tracks > 0 then mp.set_property("sid", japanese_subtitle_tracks[1]) end -- Add a delay to ensure the tracks are loaded before displaying the phrase mp.add_timeout(5, function() show_phrase() end) end function table.contains(table, value) for _, v in ipairs(table) do if v == value then return true end end return false end function show_phrase() local phrase = phrases[math.random(#phrases)] mp.osd_message(phrase, 2000) end mp.register_event("file-loaded", select_tracks) -- Ensure the phrase shows up when MPV is not in idle mode if not mp.get_property_native("idle") then select_tracks() end