class ServerWrapper {

    public String processVideo(String videoId, SettingsProvider settingsProvider) {

        ProcessUrlBuilder urlBuilder = new ProcessUrlBuilder()
                .withHost(this.Host)
                .withScheme(this.Scheme)
                //.withPort(this.Port)
                .withVideoId(videoId)
                .withSoundedSpeed(settingsProvider.getSoundSpeed())
                .withSilentSpeed(settingsProvider.getSilenceSpeed())
                .withSilentThreshold(settingsProvider.getSilenceThreshold())
                .withFrameMargin(settingsProvider.getFrameMargin());

        if (settingsProvider.getAdvancedOptionsSwitchEnabled()) {
            urlBuilder
                .withSampleRate(settingsProvider.getSampleRate())
                .withFrameRate(settingsProvider.getFrameRate())
                .withFrameQuality(settingsProvider.getFrameQuality());
        }

        HttpUrl url = urlBuilder.build();
        Request request = new Request.Builder()
                .url(url)
                .get()
                .build();

        return this.getStringResponseFromServer(request);
    }

    @Inject public  ServerWrapper(OkHttpClient okHttpClient, FileSystemWrapper filesystemWrapper);

}