Skip to content

init.py

init()

Initial setup.

Source code in mps_youtube/init.py
def init():
    """ Initial setup. """

    _process_cl_args()

    # set player to mpv or mplayer if found, otherwise unset
    suffix = ".exe" if mswin else ""
    vlc, mplayer, mpv = "vlc" + suffix, "mplayer" + suffix, "mpv" + suffix

    # check for old pickled binary config and convert to json if so
    config.convert_old_cf_to_json()

    if not os.path.exists(g.CFFILE):

        if has_exefile(vlc):
            config.PLAYER.set(vlc)

        elif has_exefile(mpv):
            config.PLAYER.set(mpv)

        elif has_exefile(mplayer):
            config.PLAYER.set(mplayer)

        config.save()

    else:
        config.load()
        try:
            assign_player(config.PLAYER.get)  # Player is not assigned when config is loaded
        except Exception as ex:
            g.message = "%sFailed to get %s`s version. Probabily it is not installed. Try installing it again or change player using `set player <player_name>` %s" %(c.y, config.PLAYER.get , c.w)
            screen.update()
            input("Press Enter to go back to main menu.")

    # Make pafy use the same api key
    # pafy.set_api_key(config.API_KEY.get)

    _init_readline()
    cache.load()
    _init_transcode()

    # ensure encoder is not set beyond range of available presets
    if config.ENCODER.get >= len(g.encoders):
        config.ENCODER.set("0")

    # check mpv/mplayer version
    if has_exefile(config.PLAYER.get):
        load_player_info(config.PLAYER.get)

    # setup colorama
    if has_colorama and mswin:
        # Colorama converts ansi escape codes to Windows system calls
        colorama.init()

    # find muxer app
    if mswin:
        g.muxapp = has_exefile("ffmpeg.exe") or has_exefile("avconv.exe")

    else:
        g.muxapp = has_exefile("ffmpeg") or has_exefile("avconv")

    # initialize MPRIS2 interface
    if config.MPRIS.get:
        try:
            from . import mpris
            conn1, conn2 = multiprocessing.Pipe()
            g.mprisctl = mpris.MprisConnection(conn1)
            t = multiprocessing.Process(target=mpris.main, args=(conn2,))
            t.daemon = True
            t.start()
        except ImportError:
            print("could not load MPRIS interface. missing libraries.")