Extract clips according to the specification file or string.
        
        Arguments:
            specsFilePathOrStr (str): Specification file path or string
            outputDir (str): Location of the extracted clips
            zipOutput (bool): Archive extracted clips' flag

        Specifications format:
            <begin:seconds> <end:seconds> [<text_metadata>]

            20.5    59.75   Discussion about dogs
            105.3   200.3   Cat story

        Notes:
            <text_metadata> is completely optional

def extractClips(self, specsFilePathOrStr, outputDir=None, zipOutput=False):
        """Extract clips according to the specification file or string.
        
        Arguments:
            specsFilePathOrStr (str): Specification file path or string
            outputDir (str): Location of the extracted clips
            zipOutput (bool): Archive extracted clips' flag

        Specifications format:
            <begin:seconds> <end:seconds> [<text_metadata>]

            20.5    59.75   Discussion about dogs
            105.3   200.3   Cat story

        Notes:
            <text_metadata> is completely optional
        """
        clips = SpecsParser.parse(specsFilePathOrStr)

        # Output to current working directory if no outputDir was provided
        if not outputDir:
            outputDir = os.path.abspath('.')

        zipFile = None
        if zipOutput:
            bname = os.path.splitext(os.path.basename(specsFilePathOrStr))[0]
            zipPath = "%s_clips.zip" % bname
            zipFile = zipfile.ZipFile(os.path.join(outputDir, zipPath), mode='w')

        for i, clip in enumerate(clips):
            # 13 clips => clip01.mp3, clip12.mp3...
            filenameFormat = 'clip%%0%dd.mp3' % len(str(len(clips)))

            filepath = os.path.join(outputDir, filenameFormat % (i+1))

            clipData = self._extractClipData(clip)

            with open(filepath, 'wb') as f_out:
                f_out.write(clipData)

            if zipFile:
                zipFile.write(filepath, arcname=os.path.basename(filepath))
                os.unlink(filepath)

        if zipFile:
            zipFile.close()