@Nonnull @Override public String getThumbnailUrl() throws ParsingException { assertPageFetched(); // Try to get high resolution thumbnail first, if it fails, use low res from the player instead try { return doc.select("link[itemprop=\"thumbnailUrl\"]").first().attr("abs:href"); } catch (Exception ignored) { // Try other method... } try { if (playerArgs != null && playerArgs.isString("thumbnail_url")) return playerArgs.getString("thumbnail_url"); } catch (Exception ignored) { // Try other method... } try { return videoInfoPage.get("thumbnail_url"); } catch (Exception e) { throw new ParsingException("Could not get thumbnail url", e); } }
@Nonnull @Override public String getDashMpdUrl() throws ParsingException { assertPageFetched(); try { String dashManifestUrl; if (videoInfoPage.containsKey("dashmpd")) { dashManifestUrl = videoInfoPage.get("dashmpd"); } else if (playerArgs != null && playerArgs.isString("dashmpd")) { dashManifestUrl = playerArgs.getString("dashmpd", ""); } else { return ""; } if (!dashManifestUrl.contains("/signature/")) { String encryptedSig = Parser.matchGroup1("/s/([a-fA-F0-9\\.]+)", dashManifestUrl); String decryptedSig; decryptedSig = decryptSignature(encryptedSig, decryptionCode); dashManifestUrl = dashManifestUrl.replace("/s/" + encryptedSig, "/signature/" + decryptedSig); } return dashManifestUrl; } catch (Exception e) { throw new ParsingException("Could not get dash manifest url", e); } }
if (playerArgs != null && playerArgs.isString(encodedUrlMapKey)) { encodedUrlMap = playerArgs.getString(encodedUrlMapKey, ""); } else if (videoInfoPage.containsKey(encodedUrlMapKey)) {
@Override public String getThumbnailUrl() throws ParsingException { if (itemObject.isString(ARTWORK_URL_KEY)) { final String artworkUrl = itemObject.getString(ARTWORK_URL_KEY, ""); if (!artworkUrl.isEmpty()) return artworkUrl; if (trackObject.isString(ARTWORK_URL_KEY)) { final String url = trackObject.getString(ARTWORK_URL_KEY, ""); if (!url.isEmpty()) return url;
@Nonnull @Override public String getHlsUrl() throws ParsingException { assertPageFetched(); try { String hlsvp = ""; if (playerArgs != null) { if( playerArgs.isString("hlsvp") ) { hlsvp = playerArgs.getString("hlsvp", ""); }else { hlsvp = JsonParser.object() .from(playerArgs.getString("player_response", "{}")) .getObject("streamingData", new JsonObject()) .getString("hlsManifestUrl", ""); } } return hlsvp; } catch (Exception e) { throw new ParsingException("Could not get hls manifest url", e); } }