Ejemplo n.º 1
0
def main():

    if request.form["requestType"] == "uploaded":

        chosen_file = request.files["chosen_file"]
        extension = (chosen_file.filename).split(".")[-1]

        if extension not in allowed_filetypes:
            return make_response(
                jsonify({"message": "Incompatible filetype selected."}), 415)

        # Make the filename safe
        filename_secure = secure_filename(chosen_file.filename)
        # Save the uploaded file to the uploads folder.
        chosen_file.save(os.path.join("uploads", filename_secure))

        response = make_response(
            jsonify({"message": "File uploaded. Converting..."}), 200)

        return response

    if request.form["requestType"] == "convert":

        try:
            socketio.start_background_task(read_progress)
            logger.info("Started progress reader.")

        except Exception as error:
            logger.error(error)

        finally:
            file_name = request.form["file_name"]
            chosen_file = os.path.join("uploads", secure_filename(file_name))
            chosen_codec = request.form["chosen_codec"]
            # Put the JavaSript FormData into appropriately-named variables:
            mp3_encoding_type = request.form["mp3_encoding_type"]
            cbr_abr_bitrate = request.form["cbr_abr_bitrate"]
            mp3_vbr_setting = request.form["mp3_vbr_setting"]
            is_y_switch = request.form["is_y_switch"]
            # AAC
            fdk_type = request.form["fdk_type"]
            fdk_cbr = request.form["fdk_cbr"]
            fdk_vbr = request.form["fdk_vbr"]
            is_fdk_lowpass = request.form["is_fdk_lowpass"]
            fdk_lowpass = request.form["fdk_lowpass"]
            # Vorbis
            vorbis_encoding = request.form["vorbis_encoding"]
            vorbis_quality = request.form["vorbis_quality"]
            # Vorbis/Opus
            slider_value = request.form["slider_value"]
            # AC3
            ac3_bitrate = request.form["ac3_bitrate"]
            # FLAC
            flac_compression = request.form["flac_compression"]
            # DTS
            dts_bitrate = request.form["dts_bitrate"]
            # Opus
            opus_cbr_bitrate = request.form["opus-cbr-bitrate"]
            opus_encoding_type = request.form["opus-encoding-type"]
            # Desired filename
            output_name = request.form["output_name"]
            # Downmix multi-channel audio to stereo?
            is_downmix = request.form["is_downmix"]

            # Run the appropritate section of converter.py:

            if chosen_codec == 'MP3':
                converter.run_mp3(chosen_file, mp3_encoding_type,
                                  cbr_abr_bitrate, mp3_vbr_setting,
                                  is_y_switch, output_name, is_downmix)
                extension = 'mp3'
            elif chosen_codec == 'AAC':
                converter.run_aac(chosen_file, fdk_type, fdk_cbr, fdk_vbr,
                                  output_name, is_downmix, is_fdk_lowpass,
                                  fdk_lowpass)
                extension = 'm4a'
            elif chosen_codec == 'Opus':
                converter.run_opus(chosen_file, opus_encoding_type,
                                   slider_value, opus_cbr_bitrate, output_name,
                                   is_downmix)
                extension = 'opus'
            elif chosen_codec == 'FLAC':
                converter.run_flac(chosen_file, flac_compression, output_name,
                                   is_downmix)
                extension = 'flac'
            elif chosen_codec == 'Vorbis':
                converter.run_vorbis(chosen_file, vorbis_encoding,
                                     vorbis_quality, slider_value, output_name,
                                     is_downmix)
                extension = 'ogg'
            elif chosen_codec == 'WAV':
                converter.run_wav(chosen_file, output_name, is_downmix)
                extension = 'wav'
            elif chosen_codec == 'MKV':
                converter.run_mkv(chosen_file, output_name, is_downmix)
                extension = 'mkv'
            elif chosen_codec == 'MKA':
                converter.run_mka(chosen_file, output_name, is_downmix)
                extension = 'mka'
            elif chosen_codec == 'ALAC':
                converter.run_alac(chosen_file, output_name, is_downmix)
                extension = 'm4a'
            elif chosen_codec == 'AC3':
                converter.run_ac3(chosen_file, ac3_bitrate, output_name,
                                  is_downmix)
                extension = 'ac3'
            elif chosen_codec == 'CAF':
                converter.run_caf(chosen_file, output_name, is_downmix)
                extension = 'caf'
            elif chosen_codec == 'DTS':
                converter.run_dts(chosen_file, dts_bitrate, output_name,
                                  is_downmix)
                extension = 'dts'
            else:  # The chosen codec is Speex
                converter.run_speex(chosen_file, output_name, is_downmix)
                extension = 'spx'

            converted_file_name = output_name + "." + extension

            response = make_response(
                jsonify({
                    "message":
                    "File converted. The converted file will now start downloading.",
                    "downloadFilePath": 'download/' + converted_file_name
                }), 200)

            return response
Ejemplo n.º 2
0
def homepage():
    if request.form['request_type'] == 'log_convert_clicked':
        log_this('clicked Convert Button')
        return ''

    elif request.form["request_type"] == "uploaded":

        session['progress_filename'] = str(time.time())[:-8]
    
        log_this('uploaded a file:')
        chosen_file = request.files["chosen_file"]
        filesize = request.form["filesize"]
        log.info(chosen_file)
        log.info(f'Size: {filesize} MB')
        
        # Make the filename safe
        filename_secure = secure_filename(chosen_file.filename)
        # Save the uploaded file to the uploads folder.
        chosen_file.save(os.path.join("uploads", filename_secure))
        
        return session['progress_filename']
    
    elif request.form["request_type"] == "convert":

        wav_bit_depth = request.form["wav_bit_depth"]
        filename = request.form["filename"]
        filename_without_ext = filename.split('.')[0]
        chosen_codec = request.form["chosen_codec"]
        crf_value = request.form["crf_value"]
        mp4_encoding_mode = request.form["mp4_encoding_mode"]
        is_keep_video = request.form["is_keep_video"]
        uploaded_file_path = os.path.join("uploads", secure_filename(filename))
        # MP3
        mp3_encoding_type = request.form["mp3_encoding_type"]
        mp3_bitrate = request.form["mp3_bitrate"]
        mp3_vbr_setting = request.form["mp3_vbr_setting"]
        # AAC
        fdk_type = request.form["fdk_type"]
        fdk_cbr = request.form["fdk_cbr"]
        fdk_vbr = request.form["fdk_vbr"]
        is_fdk_lowpass = request.form["is_fdk_lowpass"]
        fdk_lowpass = request.form["fdk_lowpass"]
        # Vorbis
        vorbis_encoding = request.form["vorbis_encoding"]
        vorbis_quality = request.form["vorbis_quality"]
        # Vorbis/Opus
        opus_vorbis_slider = request.form["opus_vorbis_slider"]
        # AC3 
        ac3_bitrate = request.form["ac3_bitrate"]
        # FLAC
        flac_compression = request.form["flac_compression"]
        # DTS
        dts_bitrate = request.form["dts_bitrate"]
        # Opus
        opus_cbr_bitrate = request.form["opus_cbr_bitrate"]
        opus_encoding_type = request.form["opus_encoding_type"]
        # Desired filename
        output_name = request.form["output_name"]

        variables_to_validate = [filename_without_ext, chosen_codec, is_keep_video, mp3_encoding_type, mp3_bitrate,
        mp3_vbr_setting, fdk_type, fdk_cbr, fdk_vbr, is_fdk_lowpass, vorbis_encoding, vorbis_quality,
        opus_vorbis_slider, ac3_bitrate, flac_compression, dts_bitrate, opus_cbr_bitrate, opus_encoding_type,
        output_name, wav_bit_depth, mp4_encoding_mode, crf_value]

        strings_not_allowed = ['command', ';', '$', '&&', '/', '\\' '"', '?', '*', '<', '>', '|', ':', '`', '.']

        # check_no_variable_contains_bad_string is a func defined in converter.py
        if converter.is_bad_string_in_variables(variables_to_validate, strings_not_allowed):
            return 'You tried being clever, but there\'s a server-side check for disallowed strings', 400

        else:
            log.info(f'They chose {chosen_codec}\nOutput Filename: {output_name}')
            output_path = f'"conversions/{output_name}"'

            # Run the appropritate section of converter.py:

            if chosen_codec == 'MP3':
                converter.run_mp3(session['progress_filename'], uploaded_file_path, is_keep_video, mp3_encoding_type, mp3_bitrate, mp3_vbr_setting, output_path)
                if is_keep_video == "yes":
                    just_ext = uploaded_file_path.split('.')[-1]
                    if just_ext == 'mp4':
                        extension = 'mp4'
                    else:
                        extension = 'mkv'
                else:
                    extension = 'mp3'

            elif chosen_codec == 'AAC':
                converter.run_aac(session['progress_filename'], uploaded_file_path, is_keep_video, fdk_type, fdk_cbr, fdk_vbr, is_fdk_lowpass,
                fdk_lowpass, output_path)
                if is_keep_video == "yes":
                    just_ext = uploaded_file_path.split('.')[-1]
                    if just_ext == 'mp4':
                        extension = 'mp4'
                    else:
                        extension = 'mkv'
                else:
                    extension = 'm4a'

            elif chosen_codec == 'Opus':
                converter.run_opus(session['progress_filename'], uploaded_file_path, opus_encoding_type, opus_vorbis_slider, opus_cbr_bitrate,
                output_path)
                extension = 'opus'   

            elif chosen_codec == 'FLAC':
                converter.run_flac(session['progress_filename'], uploaded_file_path, is_keep_video, flac_compression, output_path)
                if is_keep_video == "yes":
                    extension = 'mkv'
                else:
                    extension = 'flac'

            elif chosen_codec == 'Vorbis':
                converter.run_vorbis(session['progress_filename'], uploaded_file_path, vorbis_encoding, vorbis_quality, opus_vorbis_slider,
                output_path) 
                extension = 'mka'

            elif chosen_codec == 'WAV':
                converter.run_wav(session['progress_filename'], uploaded_file_path, is_keep_video, wav_bit_depth, output_path)
                if is_keep_video == "yes":
                    extension = 'mkv'
                else:
                    extension = 'wav'

            elif chosen_codec == 'MKV':
                converter.run_mkv(session['progress_filename'], uploaded_file_path, output_path)
                extension = 'mkv'

            elif chosen_codec == 'MKA':
                converter.run_mka(session['progress_filename'], uploaded_file_path, output_path)
                extension = 'mka'

            elif chosen_codec == 'ALAC':
                converter.run_alac(session['progress_filename'], uploaded_file_path, is_keep_video, output_path)
                if is_keep_video == "yes":
                    extension = 'mkv'
                else:
                    extension = 'm4a'

            elif chosen_codec == 'AC3':
                converter.run_ac3(session['progress_filename'], uploaded_file_path, is_keep_video, ac3_bitrate, output_path)
                if is_keep_video == "yes":
                    just_ext = uploaded_file_path.split('.')[-1]
                    if just_ext == 'mp4':
                        extension = 'mp4'
                    else:
                        extension = 'mkv'
                else:
                    extension = 'ac3'

            elif chosen_codec == 'CAF':
                converter.run_caf(session['progress_filename'], uploaded_file_path, output_path)
                extension = 'caf'

            elif chosen_codec == 'DTS':
                converter.run_dts(session['progress_filename'], uploaded_file_path, is_keep_video, dts_bitrate, output_path)
                if is_keep_video == "yes":
                    extension = 'mkv'
                else:
                    extension = 'dts'

            elif chosen_codec == 'MP4':
                converter.run_mp4(session['progress_filename'], uploaded_file_path, mp4_encoding_mode, crf_value, output_path)
                extension = 'mp4'
            
            elif chosen_codec == 'MKV':
                converter.run_mkv(session['progress_filename'], uploaded_file_path, output_path)
                extension = 'mkv'

            converted_file_name = output_name + "." + extension

            return f'/conversions/{converted_file_name}'
Ejemplo n.º 3
0
def homepage():
    if request.form['request_type'] == 'log_convert_clicked':
        log_this('clicked on the convert button.')
        return ''

    elif request.form["request_type"] == "uploaded":

        session['progress_filename'] = str(time())[:-8]
    
        log_this('uploaded a file:')
        chosen_file = request.files["chosen_file"]
        filesize = request.form["filesize"]
        log.info(chosen_file)
        log.info(f'Size: {filesize} MB')
        
        # Make the filename safe
        filename_secure = secure_filename(chosen_file.filename)
        # Save the uploaded file to the uploads folder.
        os.makedirs('uploads', exist_ok=True) 
        chosen_file.save(os.path.join("uploads", filename_secure))
        
        return session['progress_filename']
    
    elif request.form["request_type"] == "convert":

        wav_bit_depth = request.form["wav_bit_depth"]
        filename = request.form["filename"]
        chosen_codec = request.form["chosen_codec"]
        crf_value = request.form["crf_value"]
        mp4_encoding_mode = request.form["mp4_encoding_mode"]
        is_keep_video = request.form["is_keep_video"]
        uploaded_file_path = os.path.join("uploads", secure_filename(filename))
        # MP3
        mp3_encoding_type = request.form["mp3_encoding_type"]
        mp3_bitrate = request.form["mp3_bitrate"]
        mp3_vbr_setting = request.form["mp3_vbr_setting"]
        # AAC
        fdk_type = request.form["fdk_type"]
        fdk_cbr = request.form["fdk_cbr"]
        fdk_vbr = request.form["fdk_vbr"]
        is_fdk_lowpass = request.form["is_fdk_lowpass"]
        fdk_lowpass = request.form["fdk_lowpass"]
        # Vorbis
        vorbis_encoding = request.form["vorbis_encoding"]
        vorbis_quality = request.form["vorbis_quality"]
        # Vorbis/Opus
        opus_vorbis_slider = request.form["opus_vorbis_slider"]
        # AC3 
        ac3_bitrate = request.form["ac3_bitrate"]
        # FLAC
        flac_compression = request.form["flac_compression"]
        # DTS
        dts_bitrate = request.form["dts_bitrate"]
        # Opus
        opus_cbr_bitrate = request.form["opus_cbr_bitrate"]
        opus_encoding_type = request.form["opus_encoding_type"]
        # Desired filename
        output_name = request.form["output_name"]
 
        log.info(f'They chose {chosen_codec} | Output Filename: {output_name}')
        os.makedirs('conversions', exist_ok=True)
        output_path = f'conversions/{output_name}'

        # Run the appropriate section of converter.py:

        if chosen_codec == 'MP3':
            converter.run_mp3(session['progress_filename'], uploaded_file_path, is_keep_video, mp3_encoding_type,
            mp3_bitrate, mp3_vbr_setting, output_path)
            if is_keep_video == "yes":
                just_ext = uploaded_file_path.split('.')[-1]
                if just_ext == 'mp4':
                    extension = 'mp4'
                else:
                    extension = 'mkv'
            else:
                extension = 'mp3'

        elif chosen_codec == 'AAC':
            converter.run_aac(session['progress_filename'], uploaded_file_path, is_keep_video, fdk_type, fdk_cbr,
            fdk_vbr, is_fdk_lowpass,
            fdk_lowpass, output_path)
            if is_keep_video == "yes":
                just_ext = uploaded_file_path.split('.')[-1]
                if just_ext == 'mp4':
                    extension = 'mp4'
                else:
                    extension = 'mkv'
            else:
                extension = 'm4a'

        elif chosen_codec == 'Opus':
            converter.run_opus(session['progress_filename'], uploaded_file_path, opus_encoding_type, opus_vorbis_slider,
            opus_cbr_bitrate, output_path)
            extension = 'opus'   

        elif chosen_codec == 'FLAC':
            converter.run_flac(session['progress_filename'], uploaded_file_path, is_keep_video, flac_compression,
            output_path)
            if is_keep_video == "yes":
                extension = 'mkv'
            else:
                extension = 'flac'

        elif chosen_codec == 'Vorbis':
            converter.run_vorbis(session['progress_filename'], uploaded_file_path, vorbis_encoding, vorbis_quality,
            opus_vorbis_slider, output_path) 
            extension = 'mka'

        elif chosen_codec == 'WAV':
            converter.run_wav(session['progress_filename'], uploaded_file_path, is_keep_video, wav_bit_depth, output_path)
            if is_keep_video == "yes":
                extension = 'mkv'
            else:
                extension = 'wav'

        elif chosen_codec == 'MKV':
            converter.run_mkv(session['progress_filename'], uploaded_file_path, output_path)
            extension = 'mkv'

        elif chosen_codec == 'MKA':
            converter.run_mka(session['progress_filename'], uploaded_file_path, output_path)
            extension = 'mka'

        elif chosen_codec == 'ALAC':
            converter.run_alac(session['progress_filename'], uploaded_file_path, is_keep_video, output_path)
            if is_keep_video == "yes":
                extension = 'mkv'
            else:
                extension = 'm4a'

        elif chosen_codec == 'AC3':
            converter.run_ac3(session['progress_filename'], uploaded_file_path, is_keep_video, ac3_bitrate, output_path)
            if is_keep_video == "yes":
                just_ext = uploaded_file_path.split('.')[-1]
                if just_ext == 'mp4':
                    extension = 'mp4'
                else:
                    extension = 'mkv'
            else:
                extension = 'ac3'

        elif chosen_codec == 'CAF':
            converter.run_caf(session['progress_filename'], uploaded_file_path, output_path)
            extension = 'caf'

        elif chosen_codec == 'DTS':
            converter.run_dts(session['progress_filename'], uploaded_file_path, is_keep_video, dts_bitrate, output_path)
            if is_keep_video == "yes":
                extension = 'mkv'
            else:
                extension = 'dts'

        elif chosen_codec == 'MP4':
            converter.run_mp4(session['progress_filename'], uploaded_file_path, mp4_encoding_mode, crf_value, output_path)
            extension = 'mp4'
        
        elif chosen_codec == 'MKV':
            converter.run_mkv(session['progress_filename'], uploaded_file_path, output_path)
            extension = 'mkv'

        converted_file_name = output_name + "." + extension
        return f'/conversions/{converted_file_name}'