Skip to content
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

analyser: analyze_replaygain crash with a FLAC containing non utf8 data #2910

Closed
mp3butcher opened this issue Jan 20, 2024 · 0 comments · Fixed by #2931 or #2893
Closed

analyser: analyze_replaygain crash with a FLAC containing non utf8 data #2910

mp3butcher opened this issue Jan 20, 2024 · 0 comments · Fixed by #2931 or #2893
Labels

Comments

@mp3butcher
Copy link
Contributor

mp3butcher commented Jan 20, 2024

Describe the bug

Import Failed with a flac:
analyze_replaygain crashes with a FLAC containing non utf8 data
it seams related to ffprobe output parsing ( Andr�as)
a try except pass can fix the problem but parsing may be improve..or not

To reproduce

need external storage

Expected behavior

import expected to work properly

Relevant log output or error messages

analyzer_1    | Traceback (most recent call last):
analyzer_1    |   File "/src/libretime_analyzer/pipeline/pipeline.py", line 94, in run_analysis
analyzer_1    |     raise exception #logger.error('analyze_replaygain FAILED');
analyzer_1    | UnboundLocalError: local variable 'exception' referenced before assignment
analyzer_1    | 2024-01-20 03:04:46,545 | ERROR    | libretime_analyzer.message_listener:spawn_analyzer_process:183 - Analyzer pipeline exception: local variable 'exception' referenced before assignment
analyzer_1    | Traceback (most recent call last):
analyzer_1    |   File "/src/libretime_analyzer/pipeline/pipeline.py", line 92, in run_analysis
analyzer_1    |     metadata = analyze_replaygain(audio_file_path, metadata)
analyzer_1    |   File "/src/libretime_analyzer/pipeline/analyze_replaygain.py", line 13, in analyze_replaygain
analyzer_1    |     track_gain = probe_replaygain(filepath)
analyzer_1    |   File "/src/libretime_analyzer/pipeline/_ffmpeg.py", line 39, in probe_replaygain
analyzer_1    |     cmd = _ffprobe("-i", filepath)
analyzer_1    |   File "/src/libretime_analyzer/pipeline/_ffmpeg.py", line 27, in _ffprobe
analyzer_1    |     return run_(FFPROBE, *args, **kwargs)
analyzer_1    |   File "/src/libretime_analyzer/pipeline/_utils.py", line 9, in run_
analyzer_1    |     return run(
analyzer_1    |   File "/usr/local/lib/python3.10/subprocess.py", line 505, in run
analyzer_1    |     stdout, stderr = process.communicate(input, timeout=timeout)
analyzer_1    |   File "/usr/local/lib/python3.10/subprocess.py", line 1154, in communicate
analyzer_1    |     stdout, stderr = self._communicate(input, endtime, timeout)
analyzer_1    |   File "/usr/local/lib/python3.10/subprocess.py", line 2063, in _communicate
analyzer_1    |     stderr = self._translate_newlines(stderr,
analyzer_1    |   File "/usr/local/lib/python3.10/subprocess.py", line 1031, in _translate_newlines
analyzer_1    |     data = data.decode(encoding, errors)
analyzer_1    | UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 2040: invalid continuation byte
 ffprobe version 4.4.2-0ubuntu0.22.04.1 Copyright (c) 2007-2021 the FFmpeg developers
  built with gcc 11 (Ubuntu 11.2.0-19ubuntu1)
  configuration: --prefix=/usr --extra-version=0ubuntu0.22.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 70.100 / 56. 70.100
  libavcodec     58.134.100 / 58.134.100
  libavformat    58. 76.100 / 58. 76.100
  libavdevice    58. 13.100 / 58. 13.100
  libavfilter     7.110.100 /  7.110.100
  libswscale      5.  9.100 /  5.  9.100
  libswresample   3.  9.100 /  3.  9.100
  libpostproc    55.  9.100 / 55.  9.100
Input #0, flac, from '/media/ZIK/03-andreas_et_nicolas-putain_putain_putain.flac':
  Metadata:
    Language        : French
    track           : 3
    Artist          : Andr�as et Nicolas
    Title           : Putain ! Putain ! Putain !
    Rip Date        : 2015-03-17
    Date            : 2014
    Retail Date     : 2014-05-05
    Media           : CD (LP)
    Encoder         : FLAC 1.2.1
    Ripping Tool    : EAC
    Release Type    : Normal release
    Genre           : Chanson
    Language 2-letter: -FR
    ORGANIZATION    : Verycords
    Album           : Singes du futur
  Duration: 00:03:16.19, start: 0.000000, bitrate: 1020 kb/s
  Stream #0:0: Audio: flac, 44100 Hz, stereo, s16




### LibreTime version

3.0.0-beta.1

### Installation method and OS / Environment

Operating system: Debian Bullseye
Method: Docker compose


### Installation details

_No response_

### Client Environment

Operating system: 22.01
Browser:


### Screenshots

_No response_
jooola added a commit that referenced this issue Feb 2, 2024
jooola added a commit to mp3butcher/libretime that referenced this issue Feb 2, 2024
jooola added a commit that referenced this issue May 5, 2024
🤖 I have created a release *beep* *boop*
---


## [4.1.0](4.0.0...4.1.0)
(2024-05-05)


### Features

* **api:** implement file deletion
([#2960](#2960))
([9757b1b](9757b1b))
* build schedule events exclusively in playout
([#2946](#2946))
([40b4fc7](40b4fc7))
* **legacy:** add aac/opus support to dashboard player
([#2881](#2881))
([95283ef](95283ef))
* **legacy:** disable public radio page and redirect to login
([#2903](#2903))
([170d095](170d095))
* **legacy:** trim overbooked shows after autoloading a playlist
([#2897](#2897))
([a95ce3d](a95ce3d))
* **legacy:** visual cue point editor
([#2947](#2947))
([da02e74](da02e74))
* start celery worker programmatically
([#2988](#2988))
([9c548b3](9c548b3))


### Bug Fixes

* **analyzer:** backslash non utf-8 data when probing replaygain
([#2931](#2931))
([29f73e0](29f73e0)),
closes [#2910](#2910)
* apply replay gain preferences on scheduled files
([#2945](#2945))
([35d0dec](35d0dec))
* **deps:** update dependency friendsofphp/php-cs-fixer to <3.49.1
([#2899](#2899))
([3e05748](3e05748))
* **deps:** update dependency friendsofphp/php-cs-fixer to <3.51.1
([#2963](#2963))
([22c303c](22c303c))
* **deps:** update dependency friendsofphp/php-cs-fixer to <3.53.1
([#2972](#2972))
([9192aaa](9192aaa))
* **deps:** update dependency gunicorn to v22 (security)
([#2993](#2993))
([a2cf769](a2cf769))
* incorrect docker compose version
([#2975](#2975))
([634e6e2](634e6e2))
* **installer:** setup the worker entrypoint
([#2996](#2996))
([71b20ae](71b20ae))
* **legacy:** allow deleting file with api token
([#2995](#2995))
([86da46e](86da46e))
* **legacy:** allow updating track types code
([#2955](#2955))
([270aa08](270aa08))
* **legacy:** avoid crash when lot of streams in configuration
([#2915](#2915))
([12dd477](12dd477))
* **legacy:** ensure validation is performed on the track type form
([#2985](#2985))
([5ad69bf](5ad69bf))
* **legacy:** fix hidden fields in edit file form
([#2932](#2932))
([f4b260f](f4b260f))
* **legacy:** replay_gain_modifier should be a system preference
([#2943](#2943))
([37d1a76](37d1a76))
* remove obsolete docker compose version
([#2982](#2982))
([fb0584b](fb0584b))
* trigger legacy tasks manager every 5m
([#2987](#2987))
([7040d0e](7040d0e))
* **worker:** ensure celery beat is started
([#3007](#3007))
([bfde17e](bfde17e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: jo <ljonas@riseup.net>
paddatrapper pushed a commit to libretime/website that referenced this issue May 5, 2024
🤖 I have created a release *beep* *boop*
---

## [4.1.0](libretime/libretime@4.0.0...4.1.0)
(2024-05-05)

### Features

* **api:** implement file deletion
([#2960](libretime/libretime#2960))
([9757b1b](libretime/libretime@9757b1b))
* build schedule events exclusively in playout
([#2946](libretime/libretime#2946))
([40b4fc7](libretime/libretime@40b4fc7))
* **legacy:** add aac/opus support to dashboard player
([#2881](libretime/libretime#2881))
([95283ef](libretime/libretime@95283ef))
* **legacy:** disable public radio page and redirect to login
([#2903](libretime/libretime#2903))
([170d095](libretime/libretime@170d095))
* **legacy:** trim overbooked shows after autoloading a playlist
([#2897](libretime/libretime#2897))
([a95ce3d](libretime/libretime@a95ce3d))
* **legacy:** visual cue point editor
([#2947](libretime/libretime#2947))
([da02e74](libretime/libretime@da02e74))
* start celery worker programmatically
([#2988](libretime/libretime#2988))
([9c548b3](libretime/libretime@9c548b3))

### Bug Fixes

* **analyzer:** backslash non utf-8 data when probing replaygain
([#2931](libretime/libretime#2931))
([29f73e0](libretime/libretime@29f73e0)),
closes [#2910](libretime/libretime#2910)
* apply replay gain preferences on scheduled files
([#2945](libretime/libretime#2945))
([35d0dec](libretime/libretime@35d0dec))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.49.1
([#2899](libretime/libretime#2899))
([3e05748](libretime/libretime@3e05748))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.51.1
([#2963](libretime/libretime#2963))
([22c303c](libretime/libretime@22c303c))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.53.1
([#2972](libretime/libretime#2972))
([9192aaa](libretime/libretime@9192aaa))
* **deps:** update dependency gunicorn to v22 (security)
([#2993](libretime/libretime#2993))
([a2cf769](libretime/libretime@a2cf769))
* incorrect docker compose version
([#2975](libretime/libretime#2975))
([634e6e2](libretime/libretime@634e6e2))
* **installer:** setup the worker entrypoint
([#2996](libretime/libretime#2996))
([71b20ae](libretime/libretime@71b20ae))
* **legacy:** allow deleting file with api token
([#2995](libretime/libretime#2995))
([86da46e](libretime/libretime@86da46e))
* **legacy:** allow updating track types code
([#2955](libretime/libretime#2955))
([270aa08](libretime/libretime@270aa08))
* **legacy:** avoid crash when lot of streams in configuration
([#2915](libretime/libretime#2915))
([12dd477](libretime/libretime@12dd477))
* **legacy:** ensure validation is performed on the track type form
([#2985](libretime/libretime#2985))
([5ad69bf](libretime/libretime@5ad69bf))
* **legacy:** fix hidden fields in edit file form
([#2932](libretime/libretime#2932))
([f4b260f](libretime/libretime@f4b260f))
* **legacy:** replay_gain_modifier should be a system preference
([#2943](libretime/libretime#2943))
([37d1a76](libretime/libretime@37d1a76))
* remove obsolete docker compose version
([#2982](libretime/libretime#2982))
([fb0584b](libretime/libretime@fb0584b))
* trigger legacy tasks manager every 5m
([#2987](libretime/libretime#2987))
([7040d0e](libretime/libretime@7040d0e))
* **worker:** ensure celery beat is started
([#3007](libretime/libretime#3007))
([bfde17e](libretime/libretime@bfde17e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: jo <ljonas@riseup.net>
libretime/libretime@1a985a4
paddatrapper pushed a commit to libretime/website that referenced this issue May 5, 2024
🤖 I have created a release *beep* *boop*
---

## [4.1.0](libretime/libretime@4.0.0...4.1.0)
(2024-05-05)

### Features

* **api:** implement file deletion
([#2960](libretime/libretime#2960))
([9757b1b](libretime/libretime@9757b1b))
* build schedule events exclusively in playout
([#2946](libretime/libretime#2946))
([40b4fc7](libretime/libretime@40b4fc7))
* **legacy:** add aac/opus support to dashboard player
([#2881](libretime/libretime#2881))
([95283ef](libretime/libretime@95283ef))
* **legacy:** disable public radio page and redirect to login
([#2903](libretime/libretime#2903))
([170d095](libretime/libretime@170d095))
* **legacy:** trim overbooked shows after autoloading a playlist
([#2897](libretime/libretime#2897))
([a95ce3d](libretime/libretime@a95ce3d))
* **legacy:** visual cue point editor
([#2947](libretime/libretime#2947))
([da02e74](libretime/libretime@da02e74))
* start celery worker programmatically
([#2988](libretime/libretime#2988))
([9c548b3](libretime/libretime@9c548b3))

### Bug Fixes

* **analyzer:** backslash non utf-8 data when probing replaygain
([#2931](libretime/libretime#2931))
([29f73e0](libretime/libretime@29f73e0)),
closes [#2910](libretime/libretime#2910)
* apply replay gain preferences on scheduled files
([#2945](libretime/libretime#2945))
([35d0dec](libretime/libretime@35d0dec))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.49.1
([#2899](libretime/libretime#2899))
([3e05748](libretime/libretime@3e05748))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.51.1
([#2963](libretime/libretime#2963))
([22c303c](libretime/libretime@22c303c))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.53.1
([#2972](libretime/libretime#2972))
([9192aaa](libretime/libretime@9192aaa))
* **deps:** update dependency gunicorn to v22 (security)
([#2993](libretime/libretime#2993))
([a2cf769](libretime/libretime@a2cf769))
* incorrect docker compose version
([#2975](libretime/libretime#2975))
([634e6e2](libretime/libretime@634e6e2))
* **installer:** setup the worker entrypoint
([#2996](libretime/libretime#2996))
([71b20ae](libretime/libretime@71b20ae))
* **legacy:** allow deleting file with api token
([#2995](libretime/libretime#2995))
([86da46e](libretime/libretime@86da46e))
* **legacy:** allow updating track types code
([#2955](libretime/libretime#2955))
([270aa08](libretime/libretime@270aa08))
* **legacy:** avoid crash when lot of streams in configuration
([#2915](libretime/libretime#2915))
([12dd477](libretime/libretime@12dd477))
* **legacy:** ensure validation is performed on the track type form
([#2985](libretime/libretime#2985))
([5ad69bf](libretime/libretime@5ad69bf))
* **legacy:** fix hidden fields in edit file form
([#2932](libretime/libretime#2932))
([f4b260f](libretime/libretime@f4b260f))
* **legacy:** replay_gain_modifier should be a system preference
([#2943](libretime/libretime#2943))
([37d1a76](libretime/libretime@37d1a76))
* remove obsolete docker compose version
([#2982](libretime/libretime#2982))
([fb0584b](libretime/libretime@fb0584b))
* trigger legacy tasks manager every 5m
([#2987](libretime/libretime#2987))
([7040d0e](libretime/libretime@7040d0e))
* **worker:** ensure celery beat is started
([#3007](libretime/libretime#3007))
([bfde17e](libretime/libretime@bfde17e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: jo <ljonas@riseup.net>
libretime/libretime@1a985a4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
1 participant