This will stream the results to a file called <filename>
        This will return the url for a Request instead of actually
        performing the request, and then store it in self['label'].

        :param filename: str of the full path of the file to save
        :param _url:     str of the sub url of the api call (ex. g/device/list)
        :param kwargs:   dict of additional arguments
        :return:

def save(self, filename, _url, **kwargs):
        """
        This will stream the results to a file called <filename>
        This will return the url for a Request instead of actually
        performing the request, and then store it in self['label'].

        :param filename: str of the full path of the file to save
        :param _url:     str of the sub url of the api call (ex. g/device/list)
        :param kwargs:   dict of additional arguments
        :return:
        """
        api_call = self._create_api_call('save', _url, kwargs)
        api_call.filename = filename

        data = self._clean_arguments(kwargs.pop('data', None))
        params = self._clean_arguments(kwargs)
        mkdir(os.path.split(filename)[0])
        if os.path.exists(filename):
            os.remove(filename)

        if filename.lower().endswith('.m3u8'):  # remove old files
            mkdir(os.path.split(filename)[0])
            ts_path = api_call.get_ts_folder(filename)
            mkdir(ts_path)
            [os.remove(file_) for file_ in glob.glob(ts_path + '/*.ts')]

        api_call.set_request(method='GET',
                             data=data,
                             params=params,
                             sub_url=_url)

        api_call.send(stream_to_file=filename)

        last_repeat_needed = 0
        while last_repeat_needed < api_call.repeat_needed:
            last_repeat_needed = api_call.repeat_needed
            for remaining_repeat_attempts in range(1000, -1, -1):
                if not api_call.repeat_needed:
                    break
                api_call.send(stream_to_file=filename)
        return filename