aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpukkandan <pukkandan.ytdlp@gmail.com>2022-10-14 11:48:45 +0530
committerpukkandan <pukkandan.ytdlp@gmail.com>2022-10-14 11:50:24 +0530
commit9b9dad119a5307fb847aa5626d9391b59f1865d5 (patch)
treee5c645829dbafda12ae89f32210afe2f126d3e67
parent6dca2aa66de8a142543d5c8b6ccadd251339648e (diff)
downloadhypervideo-pre-9b9dad119a5307fb847aa5626d9391b59f1865d5.tar.lz
hypervideo-pre-9b9dad119a5307fb847aa5626d9391b59f1865d5.tar.xz
hypervideo-pre-9b9dad119a5307fb847aa5626d9391b59f1865d5.zip
[outtmpl] Ensure ASCII in json and add option for Unicode
Closes #5236
-rw-r--r--README.md2
-rw-r--r--yt_dlp/YoutubeDL.py2
2 files changed, 2 insertions, 2 deletions
diff --git a/README.md b/README.md
index 7374e0e94..7b2c6ba71 100644
--- a/README.md
+++ b/README.md
@@ -1189,7 +1189,7 @@ The field names themselves (the part inside the parenthesis) can also have some
1. **Default**: A literal default value can be specified for when the field is empty using a `|` separator. This overrides `--output-na-placeholder`. E.g. `%(uploader|Unknown)s`
-1. **More Conversions**: In addition to the normal format types `diouxXeEfFgGcrs`, yt-dlp additionally supports converting to `B` = **B**ytes, `j` = **j**son (flag `#` for pretty-printing), `h` = HTML escaping, `l` = a comma separated **l**ist (flag `#` for `\n` newline-separated), `q` = a string **q**uoted for the terminal (flag `#` to split a list into different arguments), `D` = add **D**ecimal suffixes (e.g. 10M) (flag `#` to use 1024 as factor), and `S` = **S**anitize as filename (flag `#` for restricted)
+1. **More Conversions**: In addition to the normal format types `diouxXeEfFgGcrs`, yt-dlp additionally supports converting to `B` = **B**ytes, `j` = **j**son (flag `#` for pretty-printing, `+` for Unicode), `h` = HTML escaping, `l` = a comma separated **l**ist (flag `#` for `\n` newline-separated), `q` = a string **q**uoted for the terminal (flag `#` to split a list into different arguments), `D` = add **D**ecimal suffixes (e.g. 10M) (flag `#` to use 1024 as factor), and `S` = **S**anitize as filename (flag `#` for restricted)
1. **Unicode normalization**: The format type `U` can be used for NFC [unicode normalization](https://docs.python.org/3/library/unicodedata.html#unicodedata.normalize). The alternate form flag (`#`) changes the normalization to NFD and the conversion flag `+` can be used for NFKC/NFKD compatibility equivalence normalization. E.g. `%(title)+.100U` is NFKC
diff --git a/yt_dlp/YoutubeDL.py b/yt_dlp/YoutubeDL.py
index 39df79a3f..4e57dffa3 100644
--- a/yt_dlp/YoutubeDL.py
+++ b/yt_dlp/YoutubeDL.py
@@ -1249,7 +1249,7 @@ class YoutubeDL:
elif fmt[-1] == 'j': # json
value, fmt = json.dumps(
value, default=_dumpjson_default,
- indent=4 if '#' in flags else None, ensure_ascii=False), str_fmt
+ indent=4 if '#' in flags else None, ensure_ascii='+' not in flags), str_fmt
elif fmt[-1] == 'h': # html
value, fmt = escapeHTML(str(value)), str_fmt
elif fmt[-1] == 'q': # quoted