TikTok API

by Konstantin Rouda

JavaScript

// Оригинальная референс страница https://www.tiktok.com/share/video/6694717157290282246?langCountry=en

$(function() {

  // Оверрайд UA для тестового запроса // гугл прокси использует этот UA
  setUserAgent(window, "Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html)");

  // Тестовый ID поста 
  var pid = '6691465450267610374';

  // Генерируем подпись
  var sign = generate_signature(pid);

  console.log(sign);

  // Гугл прокси для CORS AJAX запроса
  gproxy('https://m.tiktok.com/share/item/comment/list?id=' + pid + '&count=48&cursor=0&_signature=' + sign, function(json) {
    console.log(json);
  });


});



function generate_signature(pid) {

  var e = {};

  function x() {

    function e(e, a, r) {
      return (b[e] || (b[e] = t("x,y", "return x " + e + " y")))(r, a)
    }

    function a(e, a, r) {
      return (k[r] || (k[r] = t("x,y", "return new x[y](" + Array(r + 1).join(",x[++y]").substr(1) + ")")))(e, a)
    }

    function r(e, a, r) {
      var n, t, s = {},
        b = s.d = r ? r.d + 1 : 0;
      for (s["$" + b] = s, t = 0; t < b; t++) s[n = "$" + t] = r[n];
      for (t = 0, b = s.length = a.length; t < b; t++) s[t] = a[t];
      return c(e, 0, s)
    }

    function c(t, b, k) {
      function u(e) {
        v[x++] = e
      }

      function f() {
        return g = t.charCodeAt(b++) - 32, t.substring(b, b += g)
      }

      function l() {
        try {
          y = c(t, b, k)
        } catch (e) {
          h = e, y = l
        }
      }

      for (var h, y, d, g, v = [], x = 0;;) {
        g = t.charCodeAt(b++) - 32;
        //console.log(g);
        switch (g) {
          case 1:
            u(!v[--x]);
            break;
          case 4:
            v[x++] = f();
            break;
          case 5:
            u(function(e) {
              var a = 0,
                r = e.length;
              return function() {
                var c = a < r;
                return c && u(e[a++]), c
           ...