Skip to content

cli.console: keep unicode chars in JSON output #6080

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 13, 2024

Conversation

bastimeyer
Copy link
Member

@bastimeyer bastimeyer added the CLI label Jul 13, 2024
@bastimeyer bastimeyer force-pushed the cli/console/json-unicode branch from 2235407 to 261680c Compare July 13, 2024 12:29
@bastimeyer
Copy link
Member Author

Force-push with an update which makes ensure_ascii conditional, based on the output stream's encoding. UTF8 is not guaranteed to be the output encoding.
https://docs.python.org/3/library/sys.html#sys.stdout


Prior commit:

$ PYTHONIOENCODING=ascii streamlink https://www.youtube.com/@Nuke73-Live best -j
Traceback (most recent call last):
  File "/home/basti/venv/streamlink-312/bin/streamlink", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/basti/repos/streamlink/src/streamlink_cli/main.py", line 955, in main
    exit_code = run(parser)
                ^^^^^^^^^^^
  File "/home/basti/repos/streamlink/src/streamlink_cli/main.py", line 927, in run
    handle_url()
  File "/home/basti/repos/streamlink/src/streamlink_cli/main.py", line 564, in handle_url
    handle_stream(plugin, streams, stream_name)
  File "/home/basti/repos/streamlink/src/streamlink_cli/main.py", line 396, in handle_stream
    console.msg_json(
  File "/home/basti/repos/streamlink/src/streamlink_cli/console.py", line 83, in msg_json
    self.output.write(f"{msg}\n")
UnicodeEncodeError: 'ascii' codec can't encode characters in position 2058-2061: ordinal not in range(128)

Now:

$ PYTHONIOENCODING=ascii streamlink https://www.youtube.com/@Nuke73-Live best -j | grep title
    "title": "RGG-LAND \u041b\u0415\u0422\u041e 2024 \u2022 \u0414\u0435\u043d\u044c 16 \u2022 \u0427\u0430\u0441\u0442\u044c 2"
$ streamlink https://www.youtube.com/@Nuke73-Live best -j | grep title
    "title": "RGG-LAND ЛЕТО 2024 • День 16 • Часть 2"

@bastimeyer bastimeyer merged commit 09c19cf into streamlink:master Jul 13, 2024
23 checks passed
@bastimeyer bastimeyer deleted the cli/console/json-unicode branch July 13, 2024 12:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant