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
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}'
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}'