{"id":23868127,"url":"https://github.com/dinoosauro/taglibsharp-web","last_synced_at":"2026-01-30T20:04:25.499Z","repository":{"id":253791730,"uuid":"844540539","full_name":"dinoosauro/taglibsharp-web","owner":"dinoosauro","description":"Edit metadata of audio and video files directly from your browser using TagLib-Sharp","archived":false,"fork":false,"pushed_at":"2025-08-25T14:36:44.000Z","size":2028,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-25T16:29:01.784Z","etag":null,"topics":["audio","audio-metadata","edit-metadata","file-metadata","metadata","taglib","taglib-sharp","video","video-metadata","web-metadata-tool"],"latest_commit_sha":null,"homepage":"https://dinoosauro.github.io/taglibsharp-web/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dinoosauro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-08-19T13:19:34.000Z","updated_at":"2025-08-25T14:36:48.000Z","dependencies_parsed_at":"2024-08-27T21:47:41.105Z","dependency_job_id":null,"html_url":"https://github.com/dinoosauro/taglibsharp-web","commit_stats":null,"previous_names":["dinoosauro/taglibsharp-web"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dinoosauro/taglibsharp-web","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dinoosauro%2Ftaglibsharp-web","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dinoosauro%2Ftaglibsharp-web/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dinoosauro%2Ftaglibsharp-web/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dinoosauro%2Ftaglibsharp-web/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dinoosauro","download_url":"https://codeload.github.com/dinoosauro/taglibsharp-web/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dinoosauro%2Ftaglibsharp-web/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28918235,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T19:10:10.838Z","status":"ssl_error","status_checked_at":"2026-01-30T19:06:40.573Z","response_time":66,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","audio-metadata","edit-metadata","file-metadata","metadata","taglib","taglib-sharp","video","video-metadata","web-metadata-tool"],"created_at":"2025-01-03T11:17:47.254Z","updated_at":"2026-01-30T20:04:25.494Z","avatar_url":"https://github.com/dinoosauro.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# taglibsharp-web\n\nEdit metadata of audio and video files directly from your browser using\nTagLib-Sharp\n\nTry it: https://dinoosauro.github.io/taglibsharp-web/\n\n## Usage\n\nFirst, open the website. Wait a few seconds that Blazor WebAssembly loads, and\nthen you'll be able to choose the files to edit:\n![The introduction UI](./readme_assets/introduction.jpg)\n\n### Grid UI\n\nThe website will read all the files. After that, you'll be able to see your\nfiles in a grid. Before the grid, you can choose which fields to show in the\ngrid. Click on them and they'll be added automatically.\n\nYou'll find a textbox where you can edit all the values. You can also find three\nbuttons at the left:\n\n- The image icon will show you the `Album art editor` dialog. Here you can see\n  the album art of the selected track, and you can remove it, or add another\n  one. You can also export the added album arts in a zip file.\n- The star icon will show you the `Custom metadata edtor` dialog. Here you can\n  add a custom metadata (if the container is supported), see all the metadata that have been added to the audio/video file and also download all the fetched information by TagLib Sharp in either a JSON or CSV (really experimental) file.\n- The attachment text icon will show you the `Upload lyrics` dialog. Here you can either upload the lyrics from a local LRC/TTML/text file, or you can fetch them from LRCLib. In this last case, you can also download a zip file with the synced lyrics.\n- The play icon will show you the `Play audio/video` dialog.\n\nBefore the table, you can find a dropdown menu: here you can choose \n- If you want to edit only the single entry;\n- If you want to edit all the files;\n- If you want to edit the files that have the same album;\n- If you want to edit the files that have the same album, but only if the field isn't one that is track-specific (for example, if it's not the track title).\n\n![Grid UI](./readme_assets/grid_ui.jpg)\n\n### Single file view\n\nIf you want something simpler, you can toggle the \"Single file view\" from the\nSettings. With this, you'll need to select both the file to edit and the\nmetadata field to edit manually.\n\n![Single file view UI](./readme_assets/single_metadata_ui.jpg)\n\nIn this UI, the four dialogs mentioned above can be opened by clicking on the `Edit other metadata` dropdown button. In both of the UIs you'll find a third button, \"Copy metadata\", that allows you to copy metadata from a\nfile to another. You can find more about this below.\n\n### Saving the edits\n\nYou can save the edits in three ways:\n\n- Save each file individually\n  - On the grid view, press on the file name to save it on your device\n  - On the single file view, press on the `Download edited file` button\n- Save the files directly on the drive\n  - If you're using a Chromium-based browser on desktop, you'll be able to\n    select a folder where the files will be written. Note that this will\n    overwrite the previously files\n  - If you're using another browser, the script will download every file on your\n    device\n- Save the files in a .zip file\n  - A zip file with all the video/audio files will be generated. Extract it and\n    you'll find the new files.\n\nYou can have a look about this in the screenshot below. The UI might be slightly\ndifferent if you're using the \"Grid UI\". As you can see, these buttons are below\nthe \"Copy metadata\" button.\n\n![Download files UI](./readme_assets/download_files.jpg)\n\n### Redownload files\n\nIn case you're not using the File System API, in that tab you can download again\nthe files.\n\n![Redownload files](./readme_assets/redownload_files.jpg)\n\n## Extra functionality\n\n### Album art\n\nYou can add one (or more) album arts, and edit them, directly from this app. You\ncan do this by clicking the `Change album art` button if you're using the\n`Single file view`, or by clicking the `Image` icon if you're using the\n`Grid UI`.\n\nIn this dialog, you'll find a preview of the album art. If multiple album arts\nare embedded in the file, you can view (and remove) them by choosing a new\nelement in the Select below the title.\n\nYou can also download:\n- The album art you're currently displaying;\n- All the album arts of the file you've selected;\n- All the album arts of all the files you've loaded\nby clicking the `Export album art` dropdown button.\n\n![The album art editor UI](./readme_assets/album_art.jpg)\n\n#### Adding a new album art\n\nLet's say you want to add a new album art. Click on the `Add new album art`\nbutton and choose the new image.\n\nThen, you'll find two accordions where you can customize the output image. The\ndefault settings should be enough, but here you can:\n\n- In the `Encoding options` accordion:\n  - Choose the output quality of the JPEG image\n  - Choosethe maximum width of the re-encoded image\n  - Choose the maximum height of the re-encoded image\n- In the `Advanced options` accordion:\n  - Choose the category of the album art\n  - Choose if the image should be re-encoded or not\n    - In case you don't want to re-encode it, you'll need to provide the\n      mimetype of the image.\n\nFinally, click on the `Add image` button to add it.\n\n![The accordions to edit the new image settings](./readme_assets/download_files_options.jpg)\n\n#### Saving the edits\n\nYou can save the edits in four different ways:\n\n- Save to the current file\n- Save to the files that have the same name (but different extension) of the\n  selected one\n- Save to the files that have the same album name as the selected one\n- Save to every file that has been opened in the application.\n\nYou'll find all these options in the `Save album art(s)` dropdown menu.\n\n### Custom metadata\n\n#### Adding a custom metadata \nYou can add custom metadata by providing a key/value pair. \n- If you're editing an MP4/M4A file, you can also customize the namespace (even if probably you shouldn't);\n- If you're editing an MP3 file, you can choose the type of the custom metadata;\n- If you're editing an MKV file, you can also add some subkeys.\n\nThen, you can choose to save the edit to the selected file, or to every file.\n\n![The custom metadata UI](./readme_assets/custom_metadata.jpg)\n\n#### Seeing all the metadata\n\nBelow, you'll find a section where you can see all the tags that have been added to the file. You can either delete or remove them. The key displayed is the same used to store the metadata in the container, so you might find a different key that you would expect (ex: `USLT` for lyrics in MP3 files).\n\n![The advanced metadata edit UI](./readme_assets/advanced_metadata_edit.jpg)\n\n#### Exporting metadata\n\nYou can also export the metadata in a JSON or CSV (really experimental) file. You can also choose if you want to include binary data or not in the output JSON/CSV.\n\n![The Export Metadata UI](./readme_assets/metadata_export.jpg)\n\n### Copy metadata\n\nWith this dialog, you can copy the metadata from a file to another. \n\nChoose the source file and the output one. You can copy the metadata:\n- From a specific file to another specific one;\n- To every file opened by the applicationM\n- To the files that have the same name (but different extension).\n  * In this case, you'll need to provide the extension of the files that'll be copied.\n- To the files that have the same album name.\n\nThen, you can choose to overwrite existing tags, and if you want to copy the\nalbum art. You can also choose to avoid copying metadata fields that are usually specific to each track (for example, track title, track artists, lyrics etc.)\n\n![The copy metadata UI](./readme_assets/copy_metadata.jpg)\n\n### Fetch lyrics\n\nWith this dialog, you can update the lyrics of either the file you've chosen, or all the files loaded in the application, or all the files with no lyrics from either a local file (LRC, TTML and plain text files are supported) or by fetching them from LRCLib. In this last case, you can also save the synced lyrics in a .LRC file that'll be downloaded on your device.\n\n![The lyrics upload UI](./readme_assets/lyrics_upload.jpg)\n\n### Play audio/video\nIf you're not sure about the audio or video file you've picked, you can view it using the browser's native Video or Audio controls. You'll also find below the audio/video content the most important metadata.\n\n![The audio player UI](./readme_assets/audio_player.jpg)\n\n## Settings\n\nIn the settings, you can change:\n\n- The website theme: a value closer to the left (0.01) will be darker, and a\n  value closer to the right (1) will be lighter.\n- The application color\n- The view (Grid UI or Single file UI)\n- If the File System API should be used for saving a single file (by clicking on\n  its name in the Grid UI, or on the `Downloaded edited file` button on the\n  Single file UI) (Only on desktop Chromium-based browsers)\n\n![Settings UI](./readme_assets/settings_ui.jpg)\n\n## Privacy\n\nThis website doesn't collect any data. All the files are elaborated locally, and\nthe website can be used offline (and installed as a Progressive Web\nApplication). The only time we might send some data to an external server is if you choose to get the lyrics of your track using LRCLib. In that case, we may share the track name, the album name and the track artists to that provider. You are able to choose what will be shared.\n\nThis website has been made possible by Blazor WebAssembly, the TagLib-Sharp library and the Newtonsoft.Json library.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdinoosauro%2Ftaglibsharp-web","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdinoosauro%2Ftaglibsharp-web","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdinoosauro%2Ftaglibsharp-web/lists"}