Перейти к содержимому
claudecookie
Вернуться к конвертеру

Формат Netscape cookies.txt

Формат, на котором до сих пор говорят все консольные инструменты. Одна кука — одна строка, семь полей, разделённых табуляцией, а не пробелами. Строки, начинающиеся с #, считаются комментариями — с одним намеренным исключением.

cookies.txt
# Netscape HTTP Cookie File
# https://curl.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.

.example.com	TRUE	/	TRUE	1798761600	session_id	8f14e45fceea167a5a36dedd4bea2543
#HttpOnly_.example.com	TRUE	/	TRUE	1798761600	auth_token	eyJhbGciOiJIUzI1NiJ9.e30.ZRrHA1JJJW8opsbCGfG_HACGpVUMN_a9IV7pAx_Zmeo
example.com	FALSE	/account	FALSE	1798761600	theme	dark
.example.com	TRUE	/	FALSE	0	cart_preview	tmp-4471

Семь полей

#ПолеЗначениеВарианты
1domainХост, которому принадлежит кука. Ведущая точка означает, что она действует и на поддоменах..example.com
2includeSubdomainsВключены ли поддомены. Дублирует смысл ведущей точки, и парсеры расходятся в том, что важнее, — мы доверяем точке.TRUE или FALSE
3pathПуть URL, к которому привязана кука./ или /app
4secureПередаётся ли кука только по HTTPS.TRUE или FALSE
5expiresСрок жизни — unix-время в секундах. Ноль означает сессионную куку.1767225600 или 0
6nameИмя куки.session_id
7valueЗначение куки, берётся дословно до конца строки. Может свободно содержать = и ;.abc123

Префикс #HttpOnly_

Исходный формат не умел выражать http-only куки, поэтому curl добавил свой способ: поставить перед доменом префикс #HttpOnly_. Строка начинается с решётки, так что парсеры, которые об этом не знают, считают её комментарием и просто пропускают вместо того, чтобы упасть. curl, wget и yt-dlp этот префикс понимают.

На чём обычно спотыкаются

  • Разделитель — табуляция. При пересылке файла через мессенджер или веб-форму табы часто превращаются в пробелы, и строгие парсеры ломаются. Этот конвертер такие файлы всё равно разбирает и предупреждает об этом.

  • Значение тянется до конца строки, поэтому в нём могут быть = и ; без всякого экранирования. Разбиение по этим символам испортит JWT и base64.

  • Строка с истёкшим сроком остаётся валидной. Инструменты просто проигнорируют такую куку, и со стороны это выглядит так, будто её вообще нет.

  • Некоторые программы не ставят завершающую табуляцию, когда значение пустое, — остаётся шесть полей вместо семи.

Кто использует этот формат

curl
curl -b cookies.txt — отправить, -c cookies.txt — сохранить.
wget
--load-cookies и --save-cookies.
yt-dlp
--cookies cookies.txt — самая частая причина конвертировать браузерный экспорт.
Python requests
Через http.cookiejar.MozillaCookieJar.

Попробовать в конвертере

Конвертер