403 forbidden with tiktok

This page summarizes the projects mentioned and recommended in the original post on /r/youtubedl

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • yt-dlp

    A feature-rich command-line audio/video downloader

  • S:\tiktok>yt-dlp.exe -vU https://www.tiktok.com/@catsnavu -S vcodec:h264 --cookies-from-browser opera -o "%(title).180s [%(id)s].%(ext)s" -S res:360,ext:mp4:m4a --no-mtime [debug] Command-line config: ['-vU', 'https://www.tiktok.com/@catsnavu', '-S', 'vcodec:h264', '--cookies-from-browser', 'opera', '-o', '%(title).180s [%(id)s].%(ext)s', '-S', 'res:360,ext:mp4:m4a', '--no-mtime'] [debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8 [debug] yt-dlp version 2022.09.01 [5d7c7d6] (pip) [debug] Python 3.9.6 (CPython 64bit) - Windows-10-10.0.19044-SP0 [debug] Checking exe version: ffmpeg -bsfs [debug] Checking exe version: ffprobe -bsfs [debug] exe versions: ffmpeg 2022-03-03-git-72684d2c2d-full_build-www.gyan.dev (setts), ffprobe 2022-03-03-git-72684d2c2d-full_build-www.gyan.dev [debug] Optional libraries: Cryptodome-3.12.0, brotli-1.0.9, certifi-2021.10.08, mutagen-1.45.1, sqlite3-2.6.0, websockets-10.1 [Cookies] Extracting cookies from opera [debug] Extracting cookies from: "C:\Users\hp\AppData\Roaming\Opera Software\Opera Stable\Network\Cookies" [debug] Found local state file at "C:\Users\hp\AppData\Roaming\Opera Software\Opera Stable\Local State" [Cookies] Extracted 202 cookies from opera [debug] cookie version breakdown: {'v10': 202, 'other': 0, 'unencrypted': 0} [debug] Proxy map: {} [debug] Loaded 1670 extractors [debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest Latest version: 2022.09.01, Current version: 2022.09.01 yt-dlp is up to date (2022.09.01) [tiktok:user] Setting up session WARNING: [tiktok:user] Unable to download webpage: HTTP Error 403: Forbidden [debug] [tiktok:user] Extracting URL: https://www.tiktok.com/@catsnavu [tiktok:user] catsnavu: Downloading webpage [tiktok:user] catsnavu: Downloading user video list page 1 WARNING: [tiktok:user] Expecting value: line 1 column 1 (char 0). Retrying... (attempt 1 of 5) [tiktok:user] catsnavu: Downloading user video list page 1 WARNING: [tiktok:user] Expecting value: line 1 column 1 (char 0). Retrying... (attempt 2 of 5) [tiktok:user] catsnavu: Downloading user video list page 1 WARNING: [tiktok:user] Expecting value: line 1 column 1 (char 0). Retrying... (attempt 3 of 5) [tiktok:user] catsnavu: Downloading user video list page 1 WARNING: [tiktok:user] Expecting value: line 1 column 1 (char 0). Retrying... (attempt 4 of 5) [tiktok:user] catsnavu: Downloading user video list page 1 WARNING: [tiktok:user] Expecting value: line 1 column 1 (char 0). Retrying (1/3)... [tiktok:user] catsnavu: Downloading user video list page 1 WARNING: [tiktok:user] Expecting value: line 1 column 1 (char 0). Retrying... (attempt 1 of 5) [tiktok:user] catsnavu: Downloading user video list page 1 WARNING: [tiktok:user] Expecting value: line 1 column 1 (char 0). Retrying... (attempt 2 of 5) [tiktok:user] catsnavu: Downloading user video list page 1 WARNING: [tiktok:user] Expecting value: line 1 column 1 (char 0). Retrying... (attempt 3 of 5) [tiktok:user] catsnavu: Downloading user video list page 1 WARNING: [tiktok:user] Expecting value: line 1 column 1 (char 0). Retrying... (attempt 4 of 5) [tiktok:user] catsnavu: Downloading user video list page 1 WARNING: [tiktok:user] Expecting value: line 1 column 1 (char 0). Retrying (2/3)... [tiktok:user] catsnavu: Downloading user video list page 1 WARNING: [tiktok:user] Expecting value: line 1 column 1 (char 0). Retrying... (attempt 1 of 5) [tiktok:user] catsnavu: Downloading user video list page 1 WARNING: [tiktok:user] Expecting value: line 1 column 1 (char 0). Retrying... (attempt 2 of 5) [tiktok:user] catsnavu: Downloading user video list page 1 WARNING: [tiktok:user] Expecting value: line 1 column 1 (char 0). Retrying... (attempt 3 of 5) [tiktok:user] catsnavu: Downloading user video list page 1 WARNING: [tiktok:user] Expecting value: line 1 column 1 (char 0). Retrying... (attempt 4 of 5) [tiktok:user] catsnavu: Downloading user video list page 1 WARNING: [tiktok:user] Expecting value: line 1 column 1 (char 0). Retrying (3/3)... [tiktok:user] catsnavu: Downloading user video list page 1 WARNING: [tiktok:user] Expecting value: line 1 column 1 (char 0). Retrying... (attempt 1 of 5) [tiktok:user] catsnavu: Downloading user video list page 1 WARNING: [tiktok:user] Expecting value: line 1 column 1 (char 0). Retrying... (attempt 2 of 5) [tiktok:user] catsnavu: Downloading user video list page 1 WARNING: [tiktok:user] Expecting value: line 1 column 1 (char 0). Retrying... (attempt 3 of 5) [tiktok:user] catsnavu: Downloading user video list page 1 WARNING: [tiktok:user] Expecting value: line 1 column 1 (char 0). Retrying... (attempt 4 of 5) [tiktok:user] catsnavu: Downloading user video list page 1 ERROR: [tiktok:user] catsnavu: catsnavu: Failed to parse JSON (caused by JSONDecodeError('Expecting value: line 1 column 1 (char 0)')); please report this issue on https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using yt-dlp -U File "C:\Users\hp\AppData\Roaming\Python\Python39\site-packages\yt_dlp\extractor\common.py", line 670, in extract ie_result = self._real_extract(url) File "C:\Users\hp\AppData\Roaming\Python\Python39\site-packages\yt_dlp\extractor\tiktok.py", line 666, in _real_extract thumbnail = traverse_obj(videos, (0, 'author', 'avatar_larger', 'url_list', 0)) File "C:\Users\hp\AppData\Roaming\Python\Python39\site-packages\yt_dlp\utils.py", line 5359, in traverse_obj val = _traverse_obj(obj, path) File "C:\Users\hp\AppData\Roaming\Python\Python39\site-packages\yt_dlp\utils.py", line 5347, in _traverse_obj obj = obj[key] File "C:\Users\hp\AppData\Roaming\Python\Python39\site-packages\yt_dlp\utils.py", line 2757, in __getitem__ self._cache.extend(itertools.islice(self._iterable, n)) File "C:\Users\hp\AppData\Roaming\Python\Python39\site-packages\yt_dlp\extractor\tiktok.py", line 634, in _video_entries_api for retry in self.RetryManager(): File "C:\Users\hp\AppData\Roaming\Python\Python39\site-packages\yt_dlp\utils.py", line 5794, in __iter__ self.error_callback(self.error, self.attempt, self.retries) File "C:\Users\hp\AppData\Roaming\Python\Python39\site-packages\yt_dlp\extractor\common.py", line 3858, in _error_or_warning RetryManager.report_retry(err, _count or int(fatal), _retries, info=self.to_screen, warn=self.report_warning, File "C:\Users\hp\AppData\Roaming\Python\Python39\site-packages\yt_dlp\utils.py", line 5802, in report_retry raise e File "C:\Users\hp\AppData\Roaming\Python\Python39\site-packages\yt_dlp\extractor\tiktok.py", line 636, in _video_entries_api post_list = self._call_api( File "C:\Users\hp\AppData\Roaming\Python\Python39\site-packages\yt_dlp\extractor\tiktok.py", line 128, in _call_api raise e File "C:\Users\hp\AppData\Roaming\Python\Python39\site-packages\yt_dlp\extractor\tiktok.py", line 121, in _call_api res = self._call_api_impl(ep, real_query, manifest_app_version, video_id, fatal, note, errnote) File "C:\Users\hp\AppData\Roaming\Python\Python39\site-packages\yt_dlp\extractor\tiktok.py", line 58, in _call_api_impl return self._download_json( File "C:\Users\hp\AppData\Roaming\Python\Python39\site-packages\yt_dlp\extractor\common.py", line 1030, in download_content res = getattr(self, download_handle.__name__)(url_or_request, video_id, **kwargs) File "C:\Users\hp\AppData\Roaming\Python\Python39\site-packages\yt_dlp\extractor\common.py", line 1000, in download_handle return parse(self, content, video_id, transform_source=transform_source, fatal=fatal, errnote=errnote), urlh File "C:\Users\hp\AppData\Roaming\Python\Python39\site-packages\yt_dlp\extractor\common.py", line 990, in parse return getattr(ie, parser)(content, *args, **kwargs) File "C:\Users\hp\AppData\Roaming\Python\Python39\site-packages\yt_dlp\extractor\common.py", line 977, in _parse_json self.__print_error('Failed to parse JSON' if errnote is None else errnote, fatal, video_id, ve) File "C:\Users\hp\AppData\Roaming\Python\Python39\site-packages\yt_dlp\extractor\common.py", line 960, in __print_error raise ExtractorError(f'{video_id}: {errnote}', cause=err) File "C:\Users\hp\AppData\Roaming\Python\Python39\site-packages\yt_dlp\extractor\common.py", line 974, in _parse_json return json.loads( File "C:\Program Files\Python39\lib\json\__init__.py", line 359, in loads return cls(**kw).decode(s) File "C:\Users\hp\AppData\Roaming\Python\Python39\site-packages\yt_dlp\utils.py", line 596, in decode return super().decode(s) File "C:\Program Files\Python39\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "C:\Program Files\Python39\lib\json\decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

  • tiktok-scraper

    TikTok Scraper. Download video posts, collect user/trend/hashtag/music feed metadata, sign URL and etc.

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts