diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/GfycatRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/GfycatRipper.java index 9c2db859..5bbef13d 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/GfycatRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/GfycatRipper.java @@ -10,7 +10,11 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import com.rarchives.ripme.ripper.AbstractSingleFileRipper; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import com.rarchives.ripme.utils.Http; @@ -73,12 +77,14 @@ public class GfycatRipper extends AbstractSingleFileRipper { @Override public List getURLsFromPage(Document doc) { List result = new ArrayList<>(); - Elements videos = doc.select("source"); - String vidUrl = videos.first().attr("src"); - if (vidUrl.startsWith("//")) { - vidUrl = "http:" + vidUrl; + Elements videos = doc.select("script"); + for (Element el : videos) { + String json = el.html(); + if (json.startsWith("{")) { + JSONObject page = new JSONObject(json); + result.add(page.getJSONObject("video").getString("contentUrl")); + } } - result.add(vidUrl); return result; }