public YoutubeStreamUrl(final String data) throws DecoderException {
        URLCodec urlCodec = new URLCodec();
        String[] splitData = data.split("&");

        for (String s : splitData) {
            if (s.contains("url=")) {
                url = urlCodec.decode(StringUtils.substringAfter(s, "="));
            } else if (s.contains("itag=")) {
                itag = StringUtils.substringAfter(s, "=");
            } else if (s.contains("s=")) {
                this.s = StringUtils.substringAfter(s, "=");
            } else if (s.contains("init=")) {
                init = StringUtils.substringAfter(s, "=");
            } else if (s.contains("bitrate=")) {
                bitrate = StringUtils.substringAfter(s, "=");
            } else if (s.contains("size=")) {
                size = StringUtils.substringAfter(s, "=");
            } else if (s.contains("quality=")) {
                quality = StringUtils.substringAfter(s, "=");
            } else if (s.contains("type=")) {
                type = urlCodec.decode(StringUtils.substringAfter(s, "="));
            }
        }

        // setting the default values for the remaining fields.
        signatureRequired = false;
        useExtraParams = true;
        useMimeType = true;
        startRange = 0;
        endRange = Integer.valueOf(getClen());
    }