@staticmethod<EOL><INDENT>def fetch(yts, needed_range, fh):<DEDENT>
if yts.preferences['<STR_LIT>'] and yts.preferences['<STR_LIT>'] and isinstance(yts.url, tuple) and not yts.preferences['<STR_LIT>']:<EOL><INDENT>with tempfile.NamedTemporaryFile(suffix="<STR_LIT>", delete=False) as d, tempfile.NamedTemporaryFile(prefix='<STR_LIT:a>') as a, tempfile.NamedTemporaryFile(prefix='<STR_LIT:v>') as v:<EOL><INDENT>v.write(yts.r_session.get(yts.url[<NUM_LIT:0>]).content)<EOL>a.write(yts.r_session.get(yts.url[<NUM_LIT:1>]).content)<EOL>PP = youtube_dl.postprocessor.FFmpegMergerPP(yts.ytdl)<EOL>PP.run({'<STR_LIT>': d.name, '<STR_LIT>': (v.name, a.name)}) <EOL>_d = d.name<EOL><DEDENT>with open(_d, mode="<STR_LIT:rb>") as d:<EOL><INDENT>yts.data.write( d.read() )<EOL>yts.data.flush()<EOL>yts.filesize = os.path.getsize(_d)<EOL>yts.avail += (<NUM_LIT:0>, yts.filesize)<EOL><DEDENT>os.remove(_d)<EOL><DEDENT>else: <EOL><INDENT>if yts.preferences['<STR_LIT>'] is False: <EOL><INDENT>yts.data.write(yts.r_session.get(yts.url).content)<EOL>yts.data.flush()<EOL>yts.avail += (<NUM_LIT:0>, yts.filesize)<EOL><DEDENT>else: <EOL><INDENT>hr = (needed_range[<NUM_LIT:0>], needed_range[<NUM_LIT:1>] - <NUM_LIT:1>)<EOL>get = yts.r_session.get(yts.url, headers={'<STR_LIT>': '<STR_LIT>' + '<STR_LIT:->'.join(str(i) for i in hr)})<EOL>yts.data.seek(hr[<NUM_LIT:0>])<EOL>yts.data.write(get.content)<EOL>yts.data.flush()<EOL>ret = list( int(s) for s in get.headers.get('<STR_LIT>').split('<STR_LIT:U+0020>')[<NUM_LIT:1>].split('<STR_LIT:/>')[<NUM_LIT:0>].split('<STR_LIT:->') )<EOL>ret[<NUM_LIT:1>] += <NUM_LIT:1><EOL>yts.avail += tuple(ret)<EOL>yts.processing_range -= needed_range<EOL><DEDENT><DEDENT>
Download desired range of data and put it in `yts` object (e.g. ``YTStor``).

Parameters
----------
yts : YTStor
    Stor-like object to which we will write.
needed_range : tuple
    Two element tuple that represents a data range - compliant with ``range_t`` subrange definition.
fh : int
    Descriptor used by a process for filesystem operations.

Returns
-------
None
    Method does not return; data is written directly to `yts` object.