diff --git a/browser/IDriver.py b/browser/IDriver.py
index e18d6ed..4eff625 100644
--- a/browser/IDriver.py
+++ b/browser/IDriver.py
@@ -1,2 +1,12 @@
 class IDriver():
-    ...
\ No newline at end of file
+    def new_tab(self) -> str:
+        ...
+
+    def change_tab(self, tab_handler: str):
+        ...
+
+    def open_url(self, url: str, tab_handler: str = ""):
+        ...
+
+    def screenshot(self, tab_handler: str = "") -> str:
+        ...
diff --git a/browser/manager.py b/browser/manager.py
index 2fd9118..94bb83f 100644
--- a/browser/manager.py
+++ b/browser/manager.py
@@ -1,12 +1,17 @@
+import threading
+from urllib.parse import urlparse
+
 from config.helper import config
 from browser.edge import EdgeDriver
 from browser.chrome import ChromeDriver
 from typing import TYPE_CHECKING
 
 if TYPE_CHECKING:
-    from typing import Type
+    from typing import Type, Optional
     from browser.IDriver import IDriver
 
+_manager: "Optional[BrowserManager]" = None
+
 
 class BrowserManager():
     _mapping: "dict[str, Type[IDriver]]" = {
@@ -18,8 +23,75 @@ class BrowserManager():
         _config = config()["webdriver"]["use"]
         if _config not in self._mapping:
             raise Exception("不支持的浏览器")
-        self._driver = self._mapping[_config]()
+        self._driver: IDriver = self._mapping[_config]()
+        self._tabs: list[TabInfo] = []
+
+    def init_browser(self):
+        _users = config()['live']['users']
+        if type(_users) is not list:
+            _users = [_users]
+        _rooms = config()['live']['rooms']
+        if type(_rooms) is not list:
+            _rooms = [_rooms]
+        for _user in _users:
+            self.open_user_page(str(_user))
+        for _room in _rooms:
+            self.open_live_page(str(_room))
 
     @property
     def driver(self):
         return self._driver
+
+    def open_user_page(self, sec_user_id: str):
+        tab = TabInfo()
+        tab.tab_type = TabInfo.TAB_TYPE_USER
+        tab.user_id = sec_user_id
+        if urlparse(sec_user_id).scheme:
+            tab.url = sec_user_id
+        else:
+            # 单独的用户id
+            tab.url = "https://www.douyin.com/user/" + sec_user_id
+        self.open_tab(tab)
+
+    def open_live_page(self, live_url: str):
+        tab = TabInfo()
+        tab.tab_type = TabInfo.TAB_TYPE_LIVE
+        if not urlparse(live_url).scheme:
+            # 单独的房间号
+            live_url = "https://live.douyin.com/" + live_url
+        tab.url = live_url
+        self.open_tab(tab)
+
+    def open_tab(self, tab_info: "TabInfo"):
+        tab_handler = self._driver.new_tab()
+        tab_info.tab_handler = tab_handler
+        if not tab_info.tab_type:
+            tab_info.tab_type = TabInfo.TAB_TYPE_OTHER
+        self.driver.open_url(tab_info.url, tab_handler)
+        if tab_info not in self._tabs:
+            self._tabs.append(tab_info)
+
+
+class TabInfo(object):
+    TAB_TYPE_OTHER = "other"
+    TAB_TYPE_USER = "user"
+    TAB_TYPE_LIVE = "live"
+
+    def __init__(self):
+        self.tab_handler: str = ""
+        self.user_id: str = ""
+        self.url: str = ""
+        self.tab_type: str = self.TAB_TYPE_OTHER
+
+
+def init_manager():
+    global _manager
+    _manager = BrowserManager()
+    threading.Thread(target=_manager.init_browser).start()
+    return _manager
+
+
+def get_manager():
+    if _manager is None:
+        return init_manager()
+    return _manager
diff --git a/config/settings.yml b/config/settings.yml
index 24d46a1..8f53b71 100644
--- a/config/settings.yml
+++ b/config/settings.yml
@@ -23,6 +23,12 @@ output:
       unknown: "./debug"
       known: False
 
+live:
+  rooms:
+    - "585723119943"
+  users:
+    - MS4wLjABAAAAzBItqEvCjPryxn_Y6w6LtRBFDOVNfjvYSJg8VVZFwlw
+
 http:
   host: 127.0.0.1
   port: 5000
diff --git a/main.py b/main.py
index 6fe29bf..ca0edea 100644
--- a/main.py
+++ b/main.py
@@ -3,7 +3,7 @@ import subprocess
 
 from config.helper import config
 from handler.http_server import app
-from browser.manager import BrowserManager
+from browser.manager import init_manager as init_browser_manager
 from output.manager import OutputManager
 
 if __name__ == '__main__':
@@ -13,9 +13,7 @@ if __name__ == '__main__':
     ])
     api_thread = threading.Thread(target=app.run, args=(config()["http"]["host"], config()["http"]["port"],))
     api_thread.start()
-    browser_manager = BrowserManager()
+    browser_manager = init_browser_manager()
     output_manager = OutputManager()
     output_manager.start_loop()
     api_thread.join()
-
-