class ExtractorYoutubeChannelFormatStream extends
        ExtractorYoutubeFormatStream {
    
    private static Logger logger =
            Logger.getLogger(ExtractorYoutubeChannelFormatStream.class.getName());

    {
        setExtractLimit(1);
    }
    
    @Override
    protected boolean shouldProcess(CrawlURI uri) {
        return uri.getContentLength() > 0
                && uri.getFetchStatus() == 200
                && TextUtils.matches("^https?://(?:www\\.)?youtube\\.com/user.*$", 
                        uri.getUURI().toCustomString());
    }    
    
    @Override
    protected void extract(CrawlURI uri) {<FILL_FUNCTION_BODY>}    
    

}

        ReplayCharSequence cs;
        try {
            cs = uri.getRecorder().getContentReplayCharSequence();
        } catch (IOException e) {
            uri.getNonFatalFailures().add(e);
            logger.log(Level.WARNING, "Failed get of replay char sequence in "
                    + Thread.currentThread().getName(), e);
            return;
        }

        Matcher matcher = TextUtils.getMatcher(
                "data-swf-config=\"(\\{.*?\\}\")>", cs);
        
        if (matcher.find()) {
             String str = matcher.group(1);

             String jsonStr = StringEscapeUtils.unescapeHtml(StringEscapeUtils.unescapeHtml(str));
            // logger.fine("Just Extracted: "+jsonStr);
            try {
                JSONObject json = new JSONObject(jsonStr);
                if (json.has("args")) {
                    JSONObject args = json.getJSONObject("args");
                    if (args.has("url_encoded_fmt_stream_map")) {
                        String streamMap = args.getString("url_encoded_fmt_stream_map");

                        // logger.info("Just Extracted: "+stream_map);
                        LinkedHashMap<String, String> parsedVideoMap = parseStreamMap(streamMap);
                        addPreferredOutlinks(uri, parsedVideoMap);
                    }
                }
            } catch (JSONException e) {
                logger.log(Level.WARNING,
                        "Error parsing JSON object - Skipping extraction", e);
            }
        }
        TextUtils.recycleMatcher(matcher);
    
<methods>public non-sealed void <init>() ,public java.lang.Integer getExtractLimit() ,public List<java.lang.String> getItagPriority() ,public void setExtractLimit(java.lang.Integer) ,public void setItagPriority(List<java.lang.String>) <variables>private static final List<java.lang.String> DEFAULT_ITAG_PRIORITY,private static final Set<java.lang.String> KNOWN_ITAGS,private static java.util.logging.Logger logger