def METHOD_NAME(self, force=False):
    # If the headers already exist with an auth token, return unless we're regenerating
    if self.headers and 'x-mediabrowser-token' in self.headers and force is False:
        return
    headers = {}
    device_name = self.settings.getSetting('deviceName')
    if len(device_name) == 0:
        device_name = "JellyCon"
    # Ensure ascii and remove invalid characters
    device_name = py2_decode(device_name).replace('"', '_').replace(',', '_')
    device_id = get_device_id()
    version = get_version()
    authorization = (
        'MediaBrowser Client="Kodi JellyCon", Device="{device}", '
        'DeviceId="{device_id}", Version="{version}"'
    ).format(
        device=device_name,
        device_id=device_id,
        version=version
    )
    headers['x-emby-authorization'] = authorization
    # If we have a valid token, ensure it's included in the headers unless we're regenerating
    if self.token and force is False:
        headers['x-mediabrowser-token'] = self.token
    else:
        # Check for updated credentials since initialization
        user_details = load_user_details()
        token = user_details.get('token')
        if token:
            self.token = token
            headers['x-mediabrowser-token'] = self.token
    # Make headers available to api calls
    self.headers = headers