-
Notifications
You must be signed in to change notification settings - Fork 489
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
Replace tone with ffmpeg for metadata and cover embedding #3111
Conversation
Question: do we merge existing metadata with new one, or do we override existing metadata? Clarification: |
Can you give a specific example? I am interpreting this in a few different ways and not sure which one you are thinking of. |
ok, suppose the original audio file had metadata tags a=1, b=2, and c=3, and abs has tags b=4, c=5, e=6. then after embedding:
|
In my second commit, I implemented "merge" |
Another thing I noted: tone does not explicitly write |
In this case I think it makes sense to leave The trickier case would be if |
I put code that removes any empty/null values from the ffmetadata object, so right now the behavior is that if the series tag is empty in abs and exists in the original file, the original will be kept. |
OK, I think the code is ready for review now (and thanks for implementing track embedding). I haven't cleaned up Tone from the code yet. I'll do that once we've ran the ffmpeg-based embedding in prod for a few weeks. |
I also added some unit tests for the new functions in ffmpegHelpers. |
… node-tone dependency, remove TONE_PATH env
This was a long time coming. Thanks! |
Yes, third party, and I wasn't sure if the iOS and Android clients used
that API endpoint.
I try to be extra-cautious about breaking API - perhaps it's OK in this
case.
…On Sun, Jul 7, 2024 at 12:52 AM advplyr ***@***.***> wrote:
***@***.**** commented on this pull request.
------------------------------
In server/routers/ApiRouter.js
<#3111 (comment)>
:
> @@ -114,7 +114,7 @@ class ApiRouter {
this.router.post('/items/:id/play/:episodeId', LibraryItemController.middleware.bind(this), LibraryItemController.startEpisodePlaybackSession.bind(this))
this.router.patch('/items/:id/tracks', LibraryItemController.middleware.bind(this), LibraryItemController.updateTracks.bind(this))
this.router.post('/items/:id/scan', LibraryItemController.middleware.bind(this), LibraryItemController.scan.bind(this))
- this.router.get('/items/:id/tone-object', LibraryItemController.middleware.bind(this), LibraryItemController.getToneMetadataObject.bind(this))
+ this.router.get('/items/:id/metadata-object', LibraryItemController.middleware.bind(this), LibraryItemController.getMetadataObject.bind(this))
Right now the only place that uses that endpoint is the web client so it
won't break anything for Abs. That endpoint is documented so it is possible
someone built a third party tool using it. Is that what you mean?
—
Reply to this email directly, view it on GitHub
<#3111 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AFMDFVW76GRYPR6G6GOZHF3ZLBRLPAVCNFSM6AAAAABKDK5RDOVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDCNRRGYZDOOBUGY>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
Yeah it makes sense to be cautious, I appreciate that. There was another similar endpoint |
This is an early review for tone -> ffmpeg replacement.
Please let me know if you have any comments up until now, and please don't merge yet.