{"_id":"tiktok-api","_rev":"8-19480de92d9c1ed2a0d8c8173f204463","name":"tiktok-api","dist-tags":{"latest":"0.4.1"},"versions":{"0.3.0":{"name":"tiktok-api","version":"0.3.0","description":"Unofficial API wrapper for TikTok (previously musical.ly)","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"build":"npm run clean && tsc && npm run copy-types","clean":"rm -rf lib","copy-types":"mkdir -p lib/types && node scripts/copy-types","coverage":"nyc report --reporter=text-lcov | coveralls","lint":"npm run lint:ts && npm run lint:docs","lint:ts":"tslint --project tsconfig.json --config tslint.json","lint:docs":"markdownlint *.md","prepublishOnly":"npm run clean && npm run lint && npm run test && npm run build","test":"mocha","test-with-coverage":"nyc --reporter=text mocha","type-check":"tsc --project tsconfig.json --noEmit && tsc --lib es6 test/*.ts test/**/*.ts --noEmit","watch":"npm run clean && tsc -w"},"repository":{"type":"git","url":"git+https://github.com/szdc/tiktok-api.git"},"keywords":["tiktok","tik tok","musically","musical.ly"],"author":{"name":"Jack Willis-Craig"},"license":"MIT","bugs":{"url":"https://github.com/szdc/tiktok-api/issues"},"homepage":"https://github.com/szdc/tiktok-api#readme","dependencies":{"@types/qs":"^6.5.1","@types/tough-cookie":"^2.3.3","axios":"^0.18.0","axios-cookiejar-support":"^0.3.5","json-bigint":"^0.3.0","qs":"^6.5.2","tough-cookie":"^2.4.2"},"devDependencies":{"@types/chai":"^4.1.4","@types/chai-as-promised":"^7.1.0","@types/mocha":"^5.2.2","@types/node":"^10.3.0","axios-mock-adapter":"github:szdc/axios-mock-adapter","chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.1","glob":"^7.1.2","markdownlint-cli":"^0.10.0","mocha":"^5.2.0","nyc":"^12.0.2","ts-node":"^6.1.1","tslint":"^5.10.0","tslint-config-airbnb":"^5.9.2","typescript":"^2.9.1"},"nyc":{"extension":[".ts"],"include":["src/**"],"exclude":["**/*.d.ts"],"reporter":["html"],"all":true},"gitHead":"819b03870be068d6569b7698072529383fb0d8a3","_id":"tiktok-api@0.3.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.3","_npmUser":{"name":"szdc","email":"dot.szdc@gmail.com"},"dist":{"integrity":"sha512-rbpYcepD5I+FmNHkRjVWrX6pC/nTITOAfJiZ0qUyaAr1176qcVb+S6018Rx8s3XU9NBzbK7WHg5JSNIr1cKnBA==","shasum":"f69f682cab64067418720265b28a36c309716342","tarball":"https://registry.npmjs.org/tiktok-api/-/tiktok-api-0.3.0.tgz","fileCount":44,"unpackedSize":60272,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbavAtCRA9TVsSAnZWagAAmvcQAIpfik8Ik1o6NG9oTmoo\nn3olmAkqKpLusxhWzQxbjndt3+/b39zwuVciWnQ2y/G+YZQSAszLFWo4ke9S\np7/tTBJUzyWLsgq6pll+SGbHWFbHfRe8eNgitmQ4H1FFoPiXL5l6cnTbcLNx\naO3ewknJe/a1gyDdE9vKBgo4zSfeefTN95dub9kp4Z5QyjwMwK/kpwcRaaWQ\ndOWDF5thq50yNAOIacLXHW4xAzK5M8mkmzYkLIC98LSI7ljcZ1olKqUAEd7A\nCFvoXMwYXe84rz3iLSDG9gpywNag+Wmmmfi2eJgN8qCEVf4uYOmtmbLaB1rO\n2RNBWrwhj+8ooFJUCn4Cv2y+AtXM4DmuhJbP89nAc6eBFv07dTAMEyrKvcWi\nQLcDGEVhLJ6p2sBdyG/As5nSWtzyFcpvZHtvqPQQufgFep2akawDJIT6OIgp\nSJc0o3hDeZfBDJZA0QTOlMtnSzkd2nXNfjQvEIia22ilpiPuMY7aLQqQ/V1s\ncvhxL8S5iEB4Vbdesa+RcKR5Kx0U/HnIjcoFfEXKl1l38gtt1/hYa6bE1G9k\nyoB0pujkD11lz0ulGWTHE2z+4Hue8/ytcTLnq6xmxpjL5ma2fxPk9o9gzwI+\n4HqiOQ8nn5V95dp6nbXy3rSpl7pRozm5Jbd9qD+hKHsKrmUJzdPw1w6r1ARx\nmzX9\r\n=CMFc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCu55aUv1/bnMOOnkqPFxTncTT6g5QyJlz1mP76gGqn9gIhAPhvViBiIdKhLmo7+NOlkC6npzLlguxVjxkPepWOEqmc"}]},"maintainers":[{"name":"szdc","email":"dot.szdc@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tiktok-api_0.3.0_1533734957375_0.8549623475137738"},"_hasShrinkwrap":false},"0.3.1":{"name":"tiktok-api","version":"0.3.1","description":"Unofficial API wrapper for TikTok (previously musical.ly)","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"build":"npm run clean && tsc && npm run copy-types","clean":"rm -rf lib","copy-types":"mkdir -p lib/types && node scripts/copy-types","coverage":"nyc report --reporter=text-lcov | coveralls","lint":"npm run lint:ts && npm run lint:docs","lint:ts":"tslint --project tsconfig.json --config tslint.json","lint:docs":"markdownlint *.md","prepublishOnly":"npm run clean && npm run lint && npm run test && npm run build","test":"mocha","test-with-coverage":"nyc --reporter=text mocha","type-check":"tsc --project tsconfig.json --noEmit && tsc --lib es6 test/*.ts test/**/*.ts --noEmit","watch":"npm run clean && tsc -w"},"repository":{"type":"git","url":"git+https://github.com/szdc/tiktok-api.git"},"keywords":["tiktok","tik tok","musically","musical.ly"],"author":{"name":"Jack Willis-Craig"},"license":"MIT","bugs":{"url":"https://github.com/szdc/tiktok-api/issues"},"homepage":"https://github.com/szdc/tiktok-api#readme","dependencies":{"@types/qs":"^6.5.1","@types/tough-cookie":"^2.3.3","axios":"^0.18.0","axios-cookiejar-support":"^0.3.5","json-bigint":"^0.3.0","qs":"^6.5.2","tough-cookie":"^2.4.2"},"devDependencies":{"@types/chai":"^4.1.4","@types/chai-as-promised":"^7.1.0","@types/mocha":"^5.2.2","@types/node":"^10.3.0","axios-mock-adapter":"github:szdc/axios-mock-adapter","chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.1","glob":"^7.1.2","markdownlint-cli":"^0.10.0","mocha":"^5.2.0","nyc":"^12.0.2","ts-node":"^6.1.1","tslint":"^5.10.0","tslint-config-airbnb":"^5.9.2","typescript":"^2.9.1"},"nyc":{"extension":[".ts"],"include":["src/**"],"exclude":["**/*.d.ts"],"reporter":["html"],"all":true},"gitHead":"00a7b6eb0dc2859f3337fe5ec848b2ba4e3f296e","_id":"tiktok-api@0.3.1","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"szdc","email":"dot.szdc@gmail.com"},"dist":{"integrity":"sha512-1iFaeb5kIHy78Fgms4MgEvcD+cHzubARBFlxGr7OE/UXRspqo/H9YbvroZuvl+Fbw8WFF2p5Gs5Kwnj178G6yA==","shasum":"a1f62e479587bf41360ec675594461cf23d98883","tarball":"https://registry.npmjs.org/tiktok-api/-/tiktok-api-0.3.1.tgz","fileCount":56,"unpackedSize":77894,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbfWDoCRA9TVsSAnZWagAAMZAP/2a/NHRZFws+yvKfKID+\nMn5lDcpqPQ8wOg30BdKep7rLj/QQnOEIbIwQ6Po89em9Do8gkgTPEAb2bt2c\ntIvcsP8aa7IyLcmzT1nFnUDhX/U7lu7P0OGcW/TaGLyFn8ahSMYfVvUJdtmx\nK/nvX6M58LxS/aHd48RVi2TLH1qqwrdurEWcj2fI5IItSPHP55vTzDhpNyib\nKH8c5UxkTIx9TOfTRDojwDkwN1sIBmsArqe5tpHXMEMMd7GmJ3UnCiGmwxqu\nC/MMxiGtD4EMbcno7EDJQTpZvoTzOQc9BY4ZQZfiEmtVToSAFubfqW5uH4PY\ntXE8/djtIbKRukI8XsUD01JgoXjoQq5EkIvPibkUtzniPvrzDbs4bxJTZJ9J\n3zwcKxFuUji7L0laXs7A/h0e+FO0BZLljt1+ITws5dcigImwCjPfWoHp3WRU\np+RCo9fzknv0xsL6ibctDsxh6yVO5J9bl+Z7WjnxOg9ls62NQMmZNXfupxXn\nnzgwjMPveTwg2Cs+64YrazTGUDL5HtCwVHvhFc4h5vsYX9W15e/fX8Gb5L4F\nj04wX7/r8xGufa6FsL2l0xkSy4EMH6HlhlDH0XNGaLNnmUq2rjoGRrki/4GO\nQK62KhRcExEZH24zmcTF4pipFdsOrpeSbQ3h/L2Yrt0H3kp9WF/llfGepsRK\nn0dN\r\n=Pq8I\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDOboWhsA+OnUNB5zErKQig7YcX+inti8l9+2Z6Hkg2igIhAMfP/ZT4DWSEhTMDEevQFDw53xMlWijgFRuWwf+sO4LS"}]},"maintainers":[{"name":"szdc","email":"dot.szdc@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tiktok-api_0.3.1_1534943463862_0.46721299827538987"},"_hasShrinkwrap":false},"0.3.2":{"name":"tiktok-api","version":"0.3.2","description":"Unofficial API wrapper for TikTok (previously musical.ly)","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"build":"npm run clean && tsc && npm run copy-types","clean":"rm -rf lib","copy-types":"mkdir -p lib/types && node scripts/copy-types","coverage":"nyc report --reporter=text-lcov | coveralls","lint":"npm run lint:ts && npm run lint:docs","lint:ts":"tslint --project tsconfig.json --config tslint.json","lint:docs":"markdownlint *.md","prepublishOnly":"npm run clean && npm run lint && npm run test && npm run build","test":"mocha","test-with-coverage":"nyc --reporter=text mocha","type-check":"tsc --project tsconfig.json --noEmit && tsc --lib es6 test/*.ts test/**/*.ts --noEmit","watch":"npm run clean && tsc -w"},"repository":{"type":"git","url":"git+https://github.com/szdc/tiktok-api.git"},"keywords":["tiktok","tik tok","musically","musical.ly"],"author":{"name":"Jack Willis-Craig"},"license":"MIT","bugs":{"url":"https://github.com/szdc/tiktok-api/issues"},"homepage":"https://github.com/szdc/tiktok-api#readme","dependencies":{"@types/qs":"^6.5.1","@types/tough-cookie":"^2.3.3","axios":"^0.18.0","axios-cookiejar-support":"^0.3.5","json-bigint":"^0.3.0","qs":"^6.5.2","tough-cookie":"^2.4.2"},"devDependencies":{"@types/chai":"^4.1.4","@types/chai-as-promised":"^7.1.0","@types/mocha":"^5.2.2","@types/node":"^10.3.0","axios-mock-adapter":"github:szdc/axios-mock-adapter","chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.1","glob":"^7.1.2","markdownlint-cli":"^0.10.0","mocha":"^5.2.0","nyc":"^12.0.2","ts-node":"^6.1.1","tslint":"^5.10.0","tslint-config-airbnb":"^5.9.2","typescript":"^2.9.1"},"nyc":{"extension":[".ts"],"include":["src/**"],"exclude":["**/*.d.ts"],"reporter":["html"],"all":true},"gitHead":"a93455cfa89fd695b9463688a28457e6839d1e97","_id":"tiktok-api@0.3.2","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"szdc","email":"dot.szdc@gmail.com"},"dist":{"integrity":"sha512-hBrfEfB7Bon/3rHVBN8H8okb3yzijUR0mhtiFovmb6MDZ48tPMoFrgN3jXNq0Nf0rF4b0TnJl7e6ZenVllUWBA==","shasum":"8aca223f564a099d9f016dc78b08367816cce89c","tarball":"https://registry.npmjs.org/tiktok-api/-/tiktok-api-0.3.2.tgz","fileCount":66,"unpackedSize":88390,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbhVWTCRA9TVsSAnZWagAAbYAP/A5ZmpmOK0XGWt6L8BUt\nWWUBb3LxlC+qz2dupVev1hlHulXqEedONf1lZEnbnI75wZ7FWu+szfxNP9DZ\nWw3Hz/r4ZPn1+fuCfWqqYahsLgd0m/pnGrtJtBXaihr2LH+5WN/xa1HglJ3V\n88DFLbxL1JCdWNXsFWM3/6Rkv5dMjsJ2oWnmV8wx78FQigtKC5Al9KAwhAC4\nokMP1CKo0rtrhlrVaVsIqOkjOJlH3XMoEJdl1hfz4P50400hGX7GfxlcjFhS\nKZTfFAJcUem6HqVuizcwF23mjx/MwgBORoYGZwL33ujOvYR0pTgx7573dxNF\nlJseVIr31itmNFzOCiT0yEXDYB3kpZ+4vfnsucKKLtl8QQiWEglgPQ7u5WE4\nHotq6aQgT6bD9nT1vMnBO1Db6Em1ypjAxLHgURdFv3j8K4RPSs8Bx6BmZZbz\naariaozC7RAgXc6IkjQtSLDgbc1OfJvXQjX4QmV4f6wdC7DCidp3m6az2PwI\nGxrnq4wWfW+jcM4KseB0cEEDSrP+TAwCUB7CrWbPRKIkJ7mA0idp1CZ4IRX0\nxook4A1hNny8hK9JkpxyM6nkdy+EkvPf/qacj59PHBlhmkg2Q1jBTx8Y2xvs\nNSh4gW7jm3jt/465Lrhn4iJvD0z3MYq69PnRzgCZyXDyvAoBcRD5yEtUdTKX\nS13f\r\n=qeHy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3ohUxvXdocQMYF78y7w/Rbaakf7MlMMkVFanhLQti4wIhAOB+7GDwznfbaSlnPVFiXiGPJxv+QoJliX3aTNcm7qaA"}]},"maintainers":[{"name":"szdc","email":"dot.szdc@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tiktok-api_0.3.2_1535464851275_0.3811162437994182"},"_hasShrinkwrap":false},"0.3.3":{"name":"tiktok-api","version":"0.3.3","description":"Unofficial API wrapper for TikTok (previously musical.ly)","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"build":"npm run clean && tsc && npm run copy-types","clean":"rm -rf lib","copy-types":"mkdir -p lib/types && node scripts/copy-types","coverage":"nyc report --reporter=text-lcov | coveralls","lint":"npm run lint:ts && npm run lint:docs","lint:ts":"tslint --project tsconfig.json --config tslint.json","lint:docs":"markdownlint *.md","prepublishOnly":"npm run clean && npm run lint && npm run test && npm run build","test":"mocha","test-with-coverage":"nyc --reporter=text mocha","type-check":"tsc --project tsconfig.json --noEmit && tsc --lib es6 test/*.ts test/**/*.ts --noEmit","watch":"npm run clean && tsc -w"},"repository":{"type":"git","url":"git+https://github.com/szdc/tiktok-api.git"},"keywords":["tiktok","tik tok","musically","musical.ly"],"author":{"name":"Jack Willis-Craig"},"license":"MIT","bugs":{"url":"https://github.com/szdc/tiktok-api/issues"},"homepage":"https://github.com/szdc/tiktok-api#readme","dependencies":{"@types/qs":"^6.5.1","@types/tough-cookie":"^2.3.3","axios":"^0.18.0","axios-cookiejar-support":"^0.3.5","json-bigint":"^0.3.0","qs":"^6.5.2","tough-cookie":"^2.4.2"},"devDependencies":{"@types/chai":"^4.1.4","@types/chai-as-promised":"^7.1.0","@types/mocha":"^5.2.2","@types/node":"^10.3.0","axios-mock-adapter":"github:szdc/axios-mock-adapter","chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.1","glob":"^7.1.2","markdownlint-cli":"^0.10.0","mocha":"^5.2.0","nyc":"^12.0.2","ts-node":"^6.1.1","tslint":"^5.10.0","tslint-config-airbnb":"^5.9.2","typescript":"^2.9.1"},"nyc":{"extension":[".ts"],"include":["src/**"],"exclude":["**/*.d.ts"],"reporter":["html"],"all":true},"gitHead":"4a8c9db7e57cd9eb6b78d14dcf20d183ec2a9c70","_id":"tiktok-api@0.3.3","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"szdc","email":"dot.szdc@gmail.com"},"dist":{"integrity":"sha512-ACTkWuTxgXWMW+aGR/KHGVocReuU2GUfxGpS8WE0pE2GXdXQqWb7FRreqCFAB63WzOWuwHZWy4aE6VrAbUbIMA==","shasum":"62225a959966dcb1f2b231de8c619925e641f57e","tarball":"https://registry.npmjs.org/tiktok-api/-/tiktok-api-0.3.3.tgz","fileCount":72,"unpackedSize":96666,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb7rL3CRA9TVsSAnZWagAAb5UP/j0alB+Q+1gVc/q4npXX\n5MOc9lO13lSPsuQ+FwLSJhZuiRDVQMnoOmIFAamYj+b+rvzB+42oGn3Q9OGP\nmkPbj0qQT4D83xO8zNcnFZP6lD5p2m0wtk6UzBg7maPUlJQt2Uo7NUGf4tN6\nWe+cmIQ9/gZD3WDuReYS/UggCeTVM+8deYm9fhI164nqP+A9rKc3h1nGV0kW\nBS7Ue4l93vGQMWt3JtuQMskHMfO6JszP9vaWwreMfZPvGwyfk7CXLkscu+8m\nLAotOJG28JRnX4MOsPsu1fZ3DsgnS+9fl3SBHqS7AGw0HeHyocmtMRU03HPV\nWAD3N2L00sJxZfTwNEVzFoj7gAqFaYpcXfYL1IRqEEy1Ap98KfrqVsnBxP16\neStNCn/8O44nBUYpl/Pu9IZV5z8pFeuLBw+Xc/WgmewhvWeANluU0vsqrmtr\n7fsRQ0ugln/1DWXXQrldIITqYgGuGCFxWYWkbGrqawd5oiyGVOn9Q0SzQxx8\n0WTn50NAIWsbGlmjBKyEakKH/DPcCEgSv4984U4iyN8juiwErdDa/1ZOnVpc\n4M6ZYqUtG8q+q3SAJXoI3GEVJx/JqfsZ9siJl9rqURzCkBjUvdxYQUs7hoPL\nCzwhn6ri9a3BMBVrRHHnyZ5pMRKKiT4z6iTHsRaknOf6TWAAIR2hRKtD4M1H\nE/fb\r\n=GKGI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEVRa7tOVl9hOdLUApL7SNg/Z4B8Q0jHB5TWxNkcqZiIAiEA4l7jYzewpsgp/iyzg5HSJCQWwG7oqbB71lNEWDX6jIQ="}]},"maintainers":[{"name":"szdc","email":"dot.szdc@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tiktok-api_0.3.3_1542370038741_0.6166363767411931"},"_hasShrinkwrap":false},"0.3.4":{"name":"tiktok-api","version":"0.3.4","description":"Unofficial API wrapper for TikTok (previously musical.ly)","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"build":"npm run clean && tsc && npm run copy-types","clean":"rm -rf lib","copy-types":"mkdir -p lib/types && node scripts/copy-types","coverage":"nyc report --reporter=text-lcov | coveralls","lint":"npm run lint:ts && npm run lint:docs","lint:ts":"tslint --project tsconfig.json --config tslint.json","lint:docs":"markdownlint *.md","prepublishOnly":"npm run clean && npm run lint && npm run test && npm run build","test":"mocha","test-with-coverage":"nyc --reporter=text mocha","type-check":"tsc --project tsconfig.json --noEmit && tsc --lib es6 test/*.ts test/**/*.ts --noEmit","watch":"npm run clean && tsc -w"},"repository":{"type":"git","url":"git+https://github.com/szdc/tiktok-api.git"},"keywords":["tiktok","tik tok","musically","musical.ly"],"author":{"name":"Jack Willis-Craig"},"license":"MIT","bugs":{"url":"https://github.com/szdc/tiktok-api/issues"},"homepage":"https://github.com/szdc/tiktok-api#readme","dependencies":{"@types/qs":"^6.5.1","@types/tough-cookie":"^2.3.3","axios":"^0.18.0","axios-cookiejar-support":"^0.3.5","json-bigint":"^0.3.0","qs":"^6.5.2","tough-cookie":"^2.4.2"},"devDependencies":{"@types/chai":"^4.1.4","@types/chai-as-promised":"^7.1.0","@types/mocha":"^5.2.2","@types/node":"^10.3.0","axios-mock-adapter":"github:szdc/axios-mock-adapter","chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.1","glob":"^7.1.2","markdownlint-cli":"^0.10.0","mocha":"^5.2.0","nyc":"^12.0.2","ts-node":"^6.1.1","tslint":"^5.10.0","tslint-config-airbnb":"^5.9.2","typescript":"^2.9.1"},"nyc":{"extension":[".ts"],"include":["src/**"],"exclude":["**/*.d.ts"],"reporter":["html"],"all":true},"gitHead":"6361eae7b84f52e620916179f16dfb987a7a2e08","_id":"tiktok-api@0.3.4","_npmVersion":"6.4.1","_nodeVersion":"10.14.1","_npmUser":{"name":"szdc","email":"dot.szdc@gmail.com"},"dist":{"integrity":"sha512-cIfq35iH+Ncel3V2GuAVZJQ+4m1NuptqR3RUOiF+4mK1BYH5WMnJSGkGo8k13Un/aA8ee/pcNZhZnJwRK/eH4Q==","shasum":"62fbb28c94732008711a62a4bb92e2fbb3a35783","tarball":"https://registry.npmjs.org/tiktok-api/-/tiktok-api-0.3.4.tgz","fileCount":80,"unpackedSize":115003,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcBSs+CRA9TVsSAnZWagAAifAP/1OnyOHRmBaYhH1mECvt\ntu1Qz/cQrpPYNbj7pMhZqRoocBuLSaO+cmTCZBRhTLWp8eTlePSLHAqU9Jjv\nha07hYoEDAGO2cVvJ/FekQdhVO+besfC/48ezQLMp8pS021G2KF8rqgne+M/\nTI+sXTZMN7U03ojahsVjs9sa9+9/8aBIQtu/MPBSXF6ZyBJejTm0n6Fzlnke\nye8dk1ufEEWwOozYMphidaJqWU1zqmxu+9uPYZ77pIF0Nv2HeD9cDgbfclpZ\nUJCe869kQaMDzZkhtCN538D9FlrXuj7xFz5GFrCg3V4l8EU9exfhYxzz+Bi0\nhTrjpwVCGeE8XdP/rEk5kqtPB+ZS8domkAEAMoSb6htYFPO6wV8chwUr6SqV\nmCTYsvtNCPKHsGwyGc2COGk5bWuLnWPsZOYoO6A+wsuenG/o7K2/kcmlgmy9\nPQ3iYn4SCdoYgEnmFBR4MHe//g9R2MP5Aij3H4WLy+1b6n3jQtm0rNdn8uGH\n11fwQVix1jeEhv4hwXHd6pTswSVDrqPIYKZ66xjG20GlgdjBRM16GZjpbY/z\nLv74cPtPGY+74/J6aXNysMsTSUKmgdV19+AFMY5+aZisTOFztOHPWXi2LoGE\ntDDqygfW2Bl6guAmussN8/CdmxawTgFHcwd36+IYCMJ3wwvparcFoJSKunRA\nYRdd\r\n=onhj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCtIphy7jDg2DiWnD16E7QKvhso7G9bHWTaUn/NZuCiLQIgTWS37c/5aPbG3dRZwSP2JNY5GeF5AqcIH6+vPEB6cTQ="}]},"maintainers":[{"name":"szdc","email":"dot.szdc@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tiktok-api_0.3.4_1543842621238_0.09162004019834291"},"_hasShrinkwrap":false},"0.3.5":{"name":"tiktok-api","version":"0.3.5","description":"Unofficial API wrapper for TikTok (previously musical.ly)","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"build":"npm run clean && tsc && npm run copy-types","clean":"rm -rf lib","copy-types":"mkdir -p lib/types && node scripts/copy-types","coverage":"nyc report --reporter=text-lcov | coveralls","lint":"npm run lint:ts && npm run lint:docs","lint:ts":"tslint --project tsconfig.json --config tslint.json","lint:docs":"markdownlint *.md","prepublishOnly":"npm run clean && npm run lint && npm run test && npm run build","test":"mocha","test-with-coverage":"nyc --reporter=text mocha","type-check":"tsc --project tsconfig.json --noEmit && tsc --lib es6 test/*.ts test/**/*.ts --noEmit","watch":"npm run clean && tsc -w"},"repository":{"type":"git","url":"git+https://github.com/szdc/tiktok-api.git"},"keywords":["tiktok","tik tok","musically","musical.ly"],"author":{"name":"Jack Willis-Craig"},"license":"MIT","bugs":{"url":"https://github.com/szdc/tiktok-api/issues"},"homepage":"https://github.com/szdc/tiktok-api#readme","dependencies":{"@types/qs":"^6.5.1","@types/tough-cookie":"^2.3.3","axios":"^0.18.0","axios-cookiejar-support":"^0.3.5","json-bigint":"^0.3.0","qs":"^6.5.2","tough-cookie":"^2.4.2"},"devDependencies":{"@types/chai":"^4.1.4","@types/chai-as-promised":"^7.1.0","@types/mocha":"^5.2.2","@types/node":"^10.3.0","axios-mock-adapter":"github:szdc/axios-mock-adapter","chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.1","glob":"^7.1.2","markdownlint-cli":"^0.10.0","mocha":"^5.2.0","nyc":"^12.0.2","ts-node":"^6.1.1","tslint":"^5.10.0","tslint-config-airbnb":"^5.9.2","typescript":"^2.9.1"},"nyc":{"extension":[".ts"],"include":["src/**"],"exclude":["**/*.d.ts"],"reporter":["html"],"all":true},"gitHead":"4c9fa47dc57faf283d95e5d1e8013380e1fd3b43","_id":"tiktok-api@0.3.5","_npmVersion":"6.4.1","_nodeVersion":"10.14.1","_npmUser":{"name":"szdc","email":"dot.szdc@gmail.com"},"dist":{"integrity":"sha512-uLjjvvZyik1NS2PL5eIoqP5DhmVMdZyYuwHNWSKBo4v+6Iq+nhF2FbvbbwSIjSAqPrS/sHluBsrS+bSCRYadmg==","shasum":"cb021d70e079e0da77a177ca0af04db26551a24e","tarball":"https://registry.npmjs.org/tiktok-api/-/tiktok-api-0.3.5.tgz","fileCount":78,"unpackedSize":114621,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcD7VCCRA9TVsSAnZWagAAgcgQAJWxid9KR1f3jEWCzVdD\nzowjCDXIwADim+5b++KZoEG82qI3D0Dr8vp7Cf/z2OEQDXjW9H9OVixZvyPB\n/AAnHHtURWhWRTq4nXgyOUwXU0xt9LxmvCMUtDAD/PmcE3RzIWQ2mVEMrxlt\nyxlf7LaezYYWgSUdkTd0+KTDfnpx/GoKqY8Fbc84KjJenxHlUhCz1ksPq5wH\nvzPD1rwSsy+Wv/VzaR+02I5nAEvlCAckA2auDMuOw/NYITev7EeebbjiHedA\n/q0upGzJnUHvnhwbBKFUQNLolfDlkCrSp4dnU1B1yC5FLzfPgaWafJBtStJ+\n1bu2+8M0pQCRXxd0Rzm8pE/3fffGQwVem/kzRHyr+DgEzBnT9zVeRYjat870\nqWduVLvlEzT1HPYE728Upqxxj4YQTKmswVzXio9OnnFaHdbc7zVHUz2w/kxw\n1liglBNDU0SkI+o5BkyCvSjIbe+T7LIU3l/5wXUsdhR/ra91fmaUv5GcU4j1\neQI7M81i8mk6eNtCCMzHQmMRgUvCZWtKzP95VNa2+P8rgaDhv7JSNJGjQYWe\nd7Y94j+s3bQkYlHMkOtD+b8QKx/KyAI57DHQlkJepXsyOR1sx1IQR0E7LG/g\nZ1ZYWbxunZVlIfmAES7Kb+vA6c7Jr4iLt2FFqIfIgibKimoPoVPObFl6vSgz\nBZAz\r\n=FBTm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFSbwtiHbzOS/0q9O/ExJii+eanTxemOLpOGhIoE9qQQAiEAusJNlyq4kd74I3nCIX6cGqsA141cVE9/FtmzKTP4SZ8="}]},"maintainers":[{"name":"szdc","email":"dot.szdc@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tiktok-api_0.3.5_1544533313611_0.7258656401674743"},"_hasShrinkwrap":false},"0.4.0":{"name":"tiktok-api","version":"0.4.0","description":"Unofficial API wrapper for TikTok (previously musical.ly)","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"build":"npm run clean && tsc && npm run copy-types","clean":"rm -rf lib","copy-types":"mkdir -p lib/types && node scripts/copy-types","coverage":"nyc report --reporter=text-lcov | coveralls","lint":"npm run lint:ts && npm run lint:docs","lint:ts":"tslint --project tsconfig.json --config tslint.json","lint:docs":"markdownlint *.md","prepublishOnly":"npm run clean && npm run lint && npm run test && npm run build","test":"TS_NODE_PROJECT=test/tsconfig.json mocha","test-with-coverage":"TS_NODE_PROJECT=test/tsconfig.json nyc --reporter=text mocha","type-check":"tsc --project tsconfig.json --noEmit && tsc --lib es6 test/*.ts test/**/*.ts --noEmit","watch":"npm run clean && tsc -w"},"repository":{"type":"git","url":"git+https://github.com/szdc/tiktok-api.git"},"keywords":["tiktok","tik tok","musically","musical.ly"],"author":{"name":"Jack Willis-Craig"},"license":"MIT","bugs":{"url":"https://github.com/szdc/tiktok-api/issues"},"homepage":"https://github.com/szdc/tiktok-api#readme","dependencies":{"@types/qs":"^6.5.1","@types/tough-cookie":"^2.3.4","axios":"^0.18.0","axios-cookiejar-support":"^0.4.2","json-bigint":"^0.3.0","qs":"^6.6.0","tough-cookie":"^2.5.0"},"devDependencies":{"@types/chai":"^4.1.7","@types/chai-as-promised":"^7.1.0","@types/mocha":"^5.2.5","@types/node":"^10.12.12","axios-mock-adapter":"github:szdc/axios-mock-adapter","chai":"^4.2.0","chai-as-promised":"^7.1.1","coveralls":"^3.0.2","glob":"^7.1.3","markdownlint-cli":"^0.13.0","mocha":"^5.2.0","nyc":"^13.1.0","ts-node":"^7.0.1","tslint":"^5.11.0","tslint-config-airbnb":"^5.11.1","typescript":"^3.2.2"},"nyc":{"extension":[".ts"],"include":["src/**"],"exclude":["**/*.d.ts"],"reporter":["html"],"all":true},"gitHead":"1fc40f9dd05591a225d10408e47b62af7b6fcc90","_id":"tiktok-api@0.4.0","_npmVersion":"6.4.1","_nodeVersion":"10.14.1","_npmUser":{"name":"szdc","email":"dot.szdc@gmail.com"},"dist":{"integrity":"sha512-O513LECx34gCbPUfiMR7zKRvmm1UVBcapOYccmDZideBGjvwnWoHjIRdWfnfMUgxoGDAqK3rWjiMWQ8lW881YQ==","shasum":"95a933c2c6bb4f97ca2f65e2175f72982a6bc8af","tarball":"https://registry.npmjs.org/tiktok-api/-/tiktok-api-0.4.0.tgz","fileCount":78,"unpackedSize":114034,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcD8JWCRA9TVsSAnZWagAAMBYP/jWq3GsHnl7M/2XV+jAP\nkS0k11dhsU3O5Bz1dfkhXb+ybt0cMycUearG8njfBGrIQj6QkpO/ipzDNDtw\na8YKlcsbtO3xc4WSOa/r/sxDEINk7HhGkN9ApWCuoYTZZUim4AQXnz+zQ+2F\nMLPIXCxMiLCxFk0meEUZsha+siuYud7ea7XmeTowuDTjBd7Pog6qX5nxHXdd\naeXRsKyjIsxOgr/f+LAwxKi9r8PV45FDtWmmbKqUjKESpV5Oc62htqJxBZrP\nMVtySb4mEhkeC/UVLjP8wgMcWcyTB4zfT6DkgzRbhISjTHuv/0HrEmKytX06\no1ResHVXBXNYnbH/76ifnU3iWawGRCiTGdhX274MG+/EdBQcc8W5WtnaGPF6\ndyvrMgvDK6vFwOaxrtaXPyzKZwMP/NigJ7LG48XAZHupjH9Z1oAdEjMas8ap\nNaJHn6L8L1tp4qUwt5whltway39uxNX7sC1O0M/fW7bxyKxAv4tjS5f/KmtZ\n9eofyVmtW+sGyWgASKQGMOGZJSwcCWeZUgtGFUbaiDw9Wk/iND0/yoLN9AMl\nClOMkQ24gzVF7aiiZJOSJENn+cgrcTTpFdpPFJtsCAeljMkSNOaC3YS5yUPV\nGvRz5j6iKiwzwZU7FAbUqs8YrQaCsYe9jRFJJ0lrqHwZk6Nha7LEMuNhJ2+4\nKsZR\r\n=q27V\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDjhpKlQV+6ekMoAOSXkDF33d1AmAGAbtYWnJ2+OReAkgIhANvknPGr1Y37vrwqnThOxwKdfLLu0eN7OMnTU6dcZtbR"}]},"maintainers":[{"name":"szdc","email":"dot.szdc@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tiktok-api_0.4.0_1544536661000_0.30395179306542564"},"_hasShrinkwrap":false},"0.4.1":{"name":"tiktok-api","version":"0.4.1","description":"Unofficial API wrapper for TikTok (previously musical.ly)","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"build":"npm run clean && tsc && npm run copy-types","clean":"rm -rf lib","copy-types":"mkdir -p lib/types && node scripts/copy-types","coverage":"nyc report --reporter=text-lcov | coveralls","lint":"npm run lint:ts && npm run lint:docs","lint:ts":"tslint --project tsconfig.json --config tslint.json","lint:docs":"markdownlint *.md","prepublishOnly":"npm run clean && npm run lint && npm run test && npm run build","test":"TS_NODE_PROJECT=test/tsconfig.json mocha","test-with-coverage":"TS_NODE_PROJECT=test/tsconfig.json nyc --reporter=text mocha","type-check":"tsc --project tsconfig.json --noEmit && tsc --lib es6 test/*.ts test/**/*.ts --noEmit","watch":"npm run clean && tsc -w"},"repository":{"type":"git","url":"git+https://github.com/szdc/tiktok-api.git"},"keywords":["tiktok","tik tok","musically","musical.ly"],"author":{"name":"Jack Willis-Craig"},"license":"MIT","bugs":{"url":"https://github.com/szdc/tiktok-api/issues"},"homepage":"https://github.com/szdc/tiktok-api#readme","dependencies":{"@types/qs":"^6.5.1","@types/tough-cookie":"^2.3.4","axios":"^0.18.0","axios-cookiejar-support":"^0.4.2","json-bigint":"^0.3.0","qs":"^6.6.0","tough-cookie":"^2.5.0"},"devDependencies":{"@types/chai":"^4.1.7","@types/chai-as-promised":"^7.1.0","@types/mocha":"^5.2.5","@types/node":"^10.12.12","axios-mock-adapter":"github:szdc/axios-mock-adapter","chai":"^4.2.0","chai-as-promised":"^7.1.1","coveralls":"^3.0.2","glob":"^7.1.3","markdownlint-cli":"^0.13.0","mocha":"^5.2.0","nyc":"^13.1.0","ts-node":"^7.0.1","tslint":"^5.11.0","tslint-config-airbnb":"^5.11.1","typescript":"^3.2.2"},"nyc":{"extension":[".ts"],"include":["src/**"],"exclude":["**/*.d.ts"],"reporter":["html"],"all":true},"gitHead":"39d2a244e550654a70bbb3ffd62603fde6a8403f","_id":"tiktok-api@0.4.1","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-WfOjHMmfngypmv96Dcdgg7GQdPZU2EPgl/5Cq/K8vtHo2ANaWmJsFbBHZkKljaT3C5LzvT9hlcarb5k5NRnOYA==","shasum":"eb9ef28ebb7a4403c38e62259d524e1c61851f20","tarball":"https://registry.npmjs.org/tiktok-api/-/tiktok-api-0.4.1.tgz","fileCount":86,"unpackedSize":128073,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc8ilYCRA9TVsSAnZWagAA4VUQAISt/rpnAl7NA+cHOvDc\nnVdDjgHllASNDvSYUUImu+lR+zlOE9RV55YKgiyfsS4yXqSl//4KNPzygFKm\neLPJwa3kzo2HeNCTZR2NL+R5UYrmsQZ60fA78pJyidoWGjxGFGq18qhQRWle\no2xbt+Wf1K8k6UqsvpMPkcAnqk53A6kV/i1othp5EeajUzBxGwEoLkfsKqZ2\n/kC4a2tI/2p816bMUWxq1z8CS05JOc7MeJ9XueLz+IyqX0eJZhz9yclQlfFR\nebOk1eqsEbgZs49d0UCeu4Ms/E/ddZMKz4ebfrxgLZJUU4lWbmIVLT4D/95e\nWp4OfLTeyhFD3ktvTG186LZcVOXWNrdfeVr/9GvlkvWWh7tw9wbb1x2JRkwG\n98acKleNWgcG8ftE/1e5QKgBi/JlEr95Ty+oZ5OXVkUkUZhF3k59h1pVSJt/\nos6qMSu0VyaMSR4ABkooDNZYsjEuQv6D4Nitl+xl0ravVi+rg7mp8vdutzjG\ntGjy3qq9LWh+fRIWRZF4G97WkL87Jns/40LjORWJ7VeL/GLnUW10PExHicX0\nf6PRRQ7bMHVJWLq28wIATmsGAVi2pR9Jzn4tkljY/vGXV/ZlZdOpBosnYvOq\n/77KKM7e0fG4NllPlI3WKUUydLzpnRIH+pWKPxvbWe2Zd8AACuKUpnI8z4Ya\nRHwf\r\n=gx7t\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQClOQv0MG5zmlRRTLwyULExyNDntUTKI556z5AlJuYEMAIgQwiQx1ulemgNV38sfG6eBo3ELiKsxrDqgRT1FEx7jvQ="}]},"maintainers":[{"name":"szdc","email":"dot.szdc@gmail.com"}],"_npmUser":{"name":"szdc","email":"dot.szdc@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tiktok-api_0.4.1_1559374167397_0.06656037279896121"},"_hasShrinkwrap":false}},"time":{"created":"2018-08-08T13:29:17.375Z","0.3.0":"2018-08-08T13:29:17.472Z","modified":"2022-05-21T20:28:29.900Z","0.3.1":"2018-08-22T13:11:03.949Z","0.3.2":"2018-08-28T14:00:51.398Z","0.3.3":"2018-11-16T12:07:18.833Z","0.3.4":"2018-12-03T13:10:21.400Z","0.3.5":"2018-12-11T13:01:53.816Z","0.4.0":"2018-12-11T13:57:41.440Z","0.4.1":"2019-06-01T07:29:27.519Z"},"maintainers":[{"name":"szdc","email":"dot.szdc@gmail.com"}],"description":"Unofficial API wrapper for TikTok (previously musical.ly)","homepage":"https://github.com/szdc/tiktok-api#readme","keywords":["tiktok","tik tok","musically","musical.ly"],"repository":{"type":"git","url":"git+https://github.com/szdc/tiktok-api.git"},"author":{"name":"Jack Willis-Craig"},"bugs":{"url":"https://github.com/szdc/tiktok-api/issues"},"license":"MIT","readme":"# Unofficial TikTok/Musical.ly API\n\n<!-- markdownlint-disable MD013 -->\n[![npm version](https://img.shields.io/npm/v/tiktok-api.svg?style=flat)](https://www.npmjs.com/package/tiktok-api) [![Coverage Status](https://img.shields.io/coveralls/szdc/tiktok-api/master.svg?style=flat)](https://coveralls.io/github/szdc/tiktok-api?branch=master) [![Build Status](https://travis-ci.com/szdc/tiktok-api.svg?branch=master)](https://travis-ci.com/szdc/tiktok-api) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/szdc/tiktok-api/issues) ![Supported TikTok version](https://img.shields.io/badge/TikTok-9.1.0-blue.svg)\n<!-- markdownlint-enable MD013 -->\n\nA reverse-engineered implementation of the [TikTok](https://www.tiktok.com/) (previously musical.ly) app's API.\n\n## Installation\n\n```bash\nnpm i tiktok-api\n```\n\n## Usage\n\n### Creating an instance\n\n```js\nimport TikTokAPI, { getRequestParams } from 'tiktok-api';\n\n// Required - a method that signs the URL with anti-spam parameters\n// You must provide an implementation yourself to successfully make\n// most requests with this library.\nconst signURL = async (url, ts, deviceId) => {\n  const as = 'anti-spam parameter 1';\n  const cp = 'anti-spam parameter 2'\n  const mas = 'anti-spam parameter 3';\n  return `${url}&as=${as}&cp=${cp}&mas=${mas}`;\n}\n\n// Required - device parameters\n// You need to source these using a man-in-the-middle proxy such as mitmproxy,\n// CharlesProxy or PacketCapture (Android)\nconst params = getRequestParams({\n  device_id: '<device_id>',\n  fp: '<device_fingerprint>',\n  iid: '<install_id>',\n  openudid: '<device_open_udid>',\n});\n\nconst api = new TikTokAPI(params, { signURL });\n\n// You are now able to make successful requests\n\n```\n\n### Instance methods\n\n* [.loginWithEmail(email, password)](#loginwithemailemail-password)\n* [.loginWithUsername(username, password)](#loginwithusernameusername-password)\n* [.getUser(id)](#getuserid)\n* [.searchUsers(params)](#searchusersparams)\n* [.getQRCode(id, [schemaType])](#getqrcodeid-schematype)\n* [.getPost(id)](#getpostid)\n* [.listPosts(params)](#listpostsparams)\n* [.listFollowers(params)](#listfollowersparams)\n* [.listFollowing(params)](#listfollowingparams)\n* [.follow(id)](#followid)\n* [.unfollow(id)](#unfollowid)\n* [.listReceivedFollowRequests(params)](#listreceivedfollowrequestsparams)\n* [.approveFollowRequest(id)](#approvefollowrequestid)\n* [.rejectFollowRequest(id)](#rejectfollowrequestid)\n* [.likePost(id)](#likepostid)\n* [.unlikePost(id)](#unlikepostid)\n* [.listComments(params)](#listcommentsparams)\n* [.postComment(postId, text, [tags])](#postcommentpostid-text-tags)\n* [.listCategories(params)](#listcategoriesparams)\n* [.searchHashtags(params)](#searchhashtagsparams)\n* [.listPostsInHashtag(params)](#listpostsinhashtagparams)\n* [.listForYouFeed([params])](#listforyoufeedparams)\n* [.listFollowingFeed([params])](#listfollowingfeedparams)\n* [.getSticker(id)](#getstickerid)\n* [.getStickers([ids])](#getstickersids)\n* [.listPostsBySticker(params)](#listpostsbystickerparams)\n* [.joinLiveStream(id)](#joinlivestreamid)\n* [.leaveLiveStream(id)](#leavelivestreamid)\n* [.canStartLiveStream()](#canstartlivestream)\n* [.startLiveStream(title, [contactsAuthorized])](#startlivestreamtitle-contactsauthorized)\n* [.endLiveStream(roomId, streamId)](#endlivestreamroomid-streamid)\n* [.createLiveStreamRoom(title, [contactsAuthorized])](#createlivestreamroomtitle-contactsauthorized)\n* [.updateLiveStreamStatus(params)](#updatelivestreamstatusparams)\n\n#### .loginWithEmail(email, password)\n\nAuthenticates you with the API and stores your session data in a cookie jar.\nSubsequent requests will include these cookies.\n\n```javascript\napi.loginWithEmail('<email>', '<password>')\n  .then(res => console.log(res.data))\n  .catch(console.log)\n\n// Outputs:\n// { email: '<email>', session_key: '123456', user_id: '123456', ... }\n\n```\n\nSee the [login types](src/types/login.d.ts) for the response data.\n\n#### .loginWithUsername(username, password)\n\nAuthenticates you with the API and stores your session data in a cookie jar.\nSubsequent requests will include these cookies.\n\n```javascript\napi.loginWithUsername('<username>', '<password>')\n  .then(res => console.log(res.data))\n  .catch(console.log)\n\n// Outputs:\n// { username: '<email>', session_key: '123456', user_id: '123456', ... }\n\n```\n\nSee the [login types](src/types/login.d.ts) for the response data.\n\n#### .getUser(id)\n\nGets a user's profile.\n\n```javascript\napi.getUser('<user_id>')\n  .then(res => console.log(res.data.user))\n  .catch(console.log);\n\n// Outputs:\n// { aweme_count: 1000, nickname: 'example', unique_id: 'musername', ... }\n\n```\n\nSee the [user types](src/types/user.d.ts) for the response data.\n\n#### .searchUsers(params)\n\nSearches for users.\n\n```javascript\napi.searchUsers({\n  keyword: 'example',\n  count: 10,\n  cursor: 0,\n})\n  .then(res => console.log(res.data.user_list))\n  .catch(console.log);\n\n// Outputs:\n// [{ user_info: {...}, position: [], uniqposition: [] }, ...]\n\n```\n\nSee the [search types](src/types/search.d.ts) for the complete request/response objects.\n\n#### .getQRCode(id, [schemaType])\n\nGets the QR code for a user.\n\n```javascript\napi.getQRCode('<user_id>')\n  .then(res => console.log(res.data.qrcode_url.url_list[0]))\n  .catch(console.log);\n\n// Outputs:\n// 'http://p16.muscdn.com/img/musically-qrcode/1111111111111111111~c5_720x720.image'\n\n```\n\nSee the [QR code types](src/types/qr-code.d.ts) for the complete request/response objects.\n\n#### .getPost(id)\n\nGets a post.\n\n```javascript\napi.getPost('<user_id>')\n  .then(res => console.log(res.data.aweme_detail))\n  .catch(console.log);\n\n// Outputs:\n// { author: {...}, aweme_id: '999', desc: 'description', music: {...}, statistics: {...}, video: {...}, ... }\n\n```\n\nSee the [post types](src/types/post.d.ts) for the complete response object.\n\n#### .listPosts(params)\n\nLists a user's posts.\n\n```javascript\napi.listPosts({\n  user_id: '<user_id>',\n  max_cursor: 0,\n})\n  .then(res => console.log(res.data.aweme_list))\n  .catch(console.log);\n\n// Outputs:\n// [{ author: {...}, aweme_id: '999', desc: 'description', music: {...}, statistics: {...}, video: {...} }, ...]\n\n```\n\nSee the [post types](src/types/post.d.ts) for the complete request/response objects.\n\n#### .listFollowers(params)\n\nLists the users that follow the specified user.\n\n```javascript\napi.listFollowers({\n  user_id: '<user_id>',\n  max_time: Math.floor(new Date().getTime() / 1000),\n})\n  .then(res => console.log(res.data.followers))\n  .catch(console.log);\n\n// Outputs:\n// [{ unique_id: 'follower1' }, { unique_id: 'follower2' }, ...]\n\n```\n\nSee the [follower types](src/types/follower.d.ts) for the complete request/response objects.\n\n#### .listFollowing(params)\n\nLists the users that the specified user follows.\n\n```javascript\napi.listFollowing({\n  user_id: '<user_id>',\n  max_time: Math.floor(new Date().getTime() / 1000),\n})\n  .then(res => console.log(res.data.followings))\n  .catch(console.log);\n\n// Outputs:\n// [{ unique_id: 'following1' }, { unique_id: 'following2' }, ...]\n\n```\n\nSee the [following types](src/types/follower.d.ts) for the complete request/response objects.\n\n#### .follow(id)\n\nFollows a user.\n\n```javascript\napi.follow('<user_id>')\n  .then(res => console.log(res.data.follow_status))\n  .catch(console.log);\n\n// Outputs:\n// 1\n\n```\n\nSee the [follow types](src/types/follow.d.ts) for the response data.\n\n#### .unfollow(id)\n\nStops following a user.\n\n```javascript\napi.unfollow('<user_id>')\n  .then(res => console.log(res.data.follow_status))\n  .catch(console.log);\n\n// Outputs:\n// 0\n\n```\n\nSee the [follow types](src/types/follow.d.ts) for the response data.\n\n#### .listReceivedFollowRequests(params)\n\nLists the users that have requested to follow the logged in user.\n\n```javascript\napi.listReceivedFollowRequests({\n  max_time: Math.floor(new Date().getTime() / 1000),\n  count: 10,\n})\n  .then(res => console.log(res.data.request_users))\n  .catch(console.log);\n\n// Outputs:\n// [{ unique_id: 'user1' }, { unique_id: 'user2' }, ...]\n\n```\n\nSee the [follow types](src/types/follow.d.ts) for the complete request/response objects.\n\n#### .approveFollowRequest(id)\n\nApproves a user's request to follow you.\n\n```javascript\napi.approveFollowRequest('<user_id>')\n  .then(res => console.log(res.data.approve_status))\n  .catch(console.log);\n\n// Outputs:\n// 0\n\n```\n\nSee the [follow types](src/types/follow.d.ts) for the response data.\n\n#### .rejectFollowRequest(id)\n\nRejects a user's request to follow you.\n\n```javascript\napi.rejectFollowRequest('<user_id>')\n  .then(res => console.log(res.data.reject_status))\n  .catch(console.log);\n\n// Outputs:\n// 0\n\n```\n\nSee the [follow types](src/types/follow.d.ts) for the response data.\n\n#### .likePost(id)\n\nLikes a post.\n\n```javascript\napi.likePost('<post_id>')\n  .then(res => console.log(res.data.is_digg))\n  .catch(console.log);\n\n// Outputs:\n// 1\n\n```\n\n#### .unlikePost(id)\n\nUnlikes a post.\n\n```javascript\napi.unlikePost('<post_id>')\n  .then(res => console.log(res.data.is_digg))\n  .catch(console.log);\n\n// Outputs:\n// 0\n\n```\n\n#### .listComments(params)\n\nLists comments for a post.\n\n```javascript\napi.listComments({\n  aweme_id: '<post_id>',\n  cursor: 0,\n})\n  .then(res => console.log(res.data.comments))\n  .catch(console.log);\n\n// Outputs:\n// [{ text: 'first!', user: {...} }, { text: 'second!', user: {...} }, ...]\n\n```\n\nSee the [comment types](src/types/comment.d.ts) for the response data.\n\n#### .postComment(postId, text, [tags])\n\nComments on a post.\n\n```javascript\napi.postComment('<post_id>', 'first!')\n  .then(res => console.log(res.data.comment))\n  .catch(console.log);\n\n// Outputs:\n// { cid: '<comment_id>', text: 'first!', user: {...}, ... }\n\n```\n\nSee the [comment types](src/types/comment.d.ts) for the response data.\n\n#### .listCategories(params)\n\nLists popular categories/hashtags.\n\n```javascript\napi.listCategories({\n  count: 10,\n  cursor: 0,\n})\n  .then(res => console.log(res.data.category_list))\n  .catch(console.log);\n\n// Outputs:\n// [{ { challenge_info: { cha_name: 'posechallenge', cid: '123' }, desc: 'Trending Hashtag' }, ...]\n\n```\n\nSee the [category types](src/types/category.d.ts) for the complete request/response objects.\n\n#### .searchHashtags(params)\n\nSearches for hashtags.\n\n```javascript\napi.searchHashtags({\n  keyword: 'example',\n  count: 10,\n  cursor: 0,\n})\n  .then(res => console.log(res.data.challenge_list))\n  .catch(console.log);\n\n// Outputs:\n// [{ challenge_info: {...}, position: [] }, ...]\n\n```\n\nSee the [search types](src/types/search.d.ts) for the complete request/response objects.\n\n#### .listPostsInHashtag(params)\n\nLists posts in a hashtag.\n\n```javascript\napi.listPostsInHashtag({\n  ch_id: '<hashtag_id>',\n})\n  .then(res => console.log(res.data.aweme_list))\n  .catch(console.log);\n\n// Outputs:\n// [{ author: {...}, aweme_id: '999', desc: 'description', music: {...}, statistics: {...}, video: {...} }, ...]\n\n```\n\nSee the [hashtag types](src/types/hashtag.d.ts) for the complete request/response objects.\n\n#### .listForYouFeed([params])\n\nLists posts in the For You feed.\n\n```javascript\napi.listForYouFeed()\n  .then(res => console.log(res.data.aweme_list))\n  .catch(console.log);\n\n// Outputs:\n// [{ author: {...}, aweme_id: '999', desc: 'description', music: {...}, statistics: {...}, video: {...} }, ...]\n\n```\n\nSee the [feed types](src/types/feed.d.ts) for the complete request/response objects.\n\n#### .listFollowingFeed([params])\n\nLists posts in the Following feed.\n\n```javascript\napi.listFollowingFeed()\n  .then(res => console.log(res.data.aweme_list))\n  .catch(console.log);\n\n// Outputs:\n// [{ author: {...}, aweme_id: '999', desc: 'description', music: {...}, statistics: {...}, video: {...} }, ...]\n\n```\n\nSee the [feed types](src/types/feed.d.ts) for the complete request/response objects.\n\n#### .getSticker(id)\n\nGets information about a sticker/effect.\n\n```javascript\napi.getSticker('<sticker_id>')\n  .then(res => console.log(res.data.sticker_infos))\n  .catch(console.log);\n\n// Outputs:\n// [{ id: '100000', name: 'cloned', owner_nickname: 'Effect Assistant', ...}]\n\n```\n\nSee the [sticker types](src/types/sticker.d.ts) for the complete response object.\n\n#### .getStickers([ids])\n\nGets information about many stickers/effects.\n\n```javascript\napi.getStickers(['<sticker_id>', '<sticker_id>'])\n  .then(res => console.log(res.data.sticker_infos))\n  .catch(console.log);\n\n// Outputs:\n// [{ id: '100000', name: 'cloned', owner_nickname: 'Effect Assistant', ...}, ...]\n\n```\n\nSee the [sticker types](src/types/sticker.d.ts) for the complete response object.\n\n#### .listPostsBySticker(params)\n\nLists posts that use a sticker/effect.\n\n```javascript\napi.listPostsBySticker({\n  count: 20,\n  cursor: 0,\n  sticker_id: '100000',\n})\n  .then(res => console.log(res.data.aweme_list))\n  .catch(console.log);\n\n// Outputs:\n// [{ author: {...}, aweme_id: '999', desc: 'description', music: {...}, statistics: {...}, video: {...} }, ...]\n```\n\nSee the [sticker types](src/types/sticker.d.ts) for the complete request/response object.\n\n#### .joinLiveStream(id)\n\nJoins a live stream.  \n\nThe `rtmp_pull_url` value can be used with VLC's `Open Network Stream` option.\n\n```javascript\napi.joinLiveStream('<room_id>')\n  .then(res => console.log(res.data.room))\n  .catch(console.log);\n\n// Outputs:\n// { create_time: 1000000000, owner: {...}, stream_url: {...}, title: 'Example', user_count: 1000, ... }\n\n```\n\nSee the [live stream types](src/types/live-stream.d.ts) for the response data.\n\n#### .leaveLiveStream(id)\n\nLeaves a live stream.\n\n```javascript\napi.leaveLiveStream('<room_id>')\n  .then(res => console.log(res.data.status_code))\n  .catch(console.log);\n\n// Outputs:\n// 0\n\n```\n\n#### .canStartLiveStream()\n\nDetermines if the current user is allowed to start a live stream.\n\n```javascript\napi.canStartLiveStream()\n  .then(res => console.log(res.data.can_be_live_podcast))\n  .catch(console.log);\n\n// Outputs:\n// true\n\n```\n\nSee the [live stream types](src/types/live-stream.d.ts) for the response data.\n\n#### .startLiveStream(title, [contactsAuthorized])\n\nStarts a live stream by calling [`createLiveStreamRoom`](#createlivestreamroomtitle-contactsauthorized)\nthen [`updateLiveStreamStatus`](#updatelivestreamstatusparams).\n\nKeep note of the `room_id` and `stream_id` properties because you will need them to end the live stream.\n\nThe `rtmp_push_url` value can be used with streaming applications such as OBS.\n\n```javascript\napi.startLiveStream('title')\n  .then(res => console.log(res.data.room))\n  .catch(console.log);\n\n// Outputs:\n// { create_time: 1000000000, owner: {...}, stream_url: {...}, title: 'Example', user_count: 1000, ... }\n\n```\n\nSee the [live stream types](src/types/live-stream.d.ts) for the response data.\n\n#### .endLiveStream(roomId, streamId)\n\nEnds a live stream.\n\nYou **must** call this method to so you are no longer marked as \"live\" in the app.\n\n```javascript\napi.endLiveStream('<room_id>', '<stream_id>')\n  .then(res => console.log(res.data.status_code))\n  .catch(console.log);\n\n// Outputs:\n// 0\n\n```\n\n#### .createLiveStreamRoom(title, [contactsAuthorized])\n\nCreates a room to host a live stream.\n\nThe `rtmp_push_url` value can be used with streaming applications such as OBS.\n\n**Note:** This method only creates the room for the live stream.  You'll need to call\n[`updateLiveStreamStatus`](#updatelivestreamstatusparams) to mark the stream as started.\nSee [`startLiveStream`](#startlivestreamtitle-contactsauthorized) for a helper method that makes these calls for you.\n\n```javascript\napi.startLiveStream('title')\n  .then(res => console.log(res.data.room))\n  .catch(console.log);\n\n// Outputs:\n// { create_time: 1000000000, owner: {...}, stream_url: {...}, title: 'Example', user_count: 1000, ... }\n\n```\n\nSee the [live stream types](src/types/live-stream.d.ts) for the response data.\n\n#### .updateLiveStreamStatus(params)\n\nUpdates the status of a live stream.\n\n```javascript\napi.updateLiveStreamStatus({\n  room_id: '<room_id>',\n  stream_id: '<stream_id>',\n  status: LiveStreamStatus.Ended,\n  reason_no: LiveStreamStatusChangedReason.InitiatedByUser,\n})\n  .then(res => console.log(res.data.status_code))\n  .catch(console.log);\n\n// Outputs:\n// 0\n\n```\n\nSee the [live stream types](src/types/live-stream.d.ts) for the complete request/response objects.\n\n## Resources\n\n* [Reverse engineering the musical.ly API](https://medium.com/@szdc/reverse-engineering-the-musical-ly-api-662331008eb3)\n\n## Legal\n\nThis code is in no way affiliated with, authorized, maintained, sponsored or endorsed by TikTok\nor any of its affiliates or subsidiaries. This is an independent and unofficial API. Use at your own risk.\n","readmeFilename":"README.md"}