{"id":22307265,"url":"https://github.com/jherby2k/audioworks","last_synced_at":"2025-04-04T20:06:11.350Z","repository":{"id":52214535,"uuid":"100387380","full_name":"jherby2k/AudioWorks","owner":"jherby2k","description":"A cross-platform, multi-format audio conversion and tagging suite","archived":false,"fork":false,"pushed_at":"2025-03-20T17:58:27.000Z","size":128571,"stargazers_count":68,"open_issues_count":4,"forks_count":7,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-20T18:40:25.527Z","etag":null,"topics":["aac","apple-lossless","convert","decode","dotnet","ebur128","encode","flac","id3","linux","macos","mp3","mp4","music","ogg-vorbis","opus","powershell","replaygain","tag","windows"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jherby2k.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}},"created_at":"2017-08-15T14:45:42.000Z","updated_at":"2025-03-10T16:57:56.000Z","dependencies_parsed_at":"2025-03-20T18:42:33.665Z","dependency_job_id":null,"html_url":"https://github.com/jherby2k/AudioWorks","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jherby2k%2FAudioWorks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jherby2k%2FAudioWorks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jherby2k%2FAudioWorks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jherby2k%2FAudioWorks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jherby2k","download_url":"https://codeload.github.com/jherby2k/AudioWorks/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246085609,"owners_count":20721211,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["aac","apple-lossless","convert","decode","dotnet","ebur128","encode","flac","id3","linux","macos","mp3","mp4","music","ogg-vorbis","opus","powershell","replaygain","tag","windows"],"created_at":"2024-12-03T20:09:16.214Z","updated_at":"2025-03-28T19:05:19.497Z","avatar_url":"https://github.com/jherby2k.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\u003cimg src=\"https://github.com/jherby2k/AudioWorks/raw/main/Logo.png\" width=\"567\" /\u003e\u003c/h1\u003e\n\nA cross-platform, multi-format audio conversion and tagging suite for .NET and PowerShell. Formats currently supported are MP3, MP4 AAC, FLAC, Apple Lossless (ALAC), Opus, Ogg Vorbis and Wave.\n\nMain Branch | Dev branch\n-- | --\n![Build Status](https://github.com/jherby2k/AudioWorks/actions/workflows/build-and-test.yml/badge.svg?branch=main) | ![Build Status](https://github.com/jherby2k/AudioWorks/actions/workflows/build-and-test.yml/badge.svg?branch=dev)\n\n## How to Use\n\n### Encode some files\nPowerShell:\n```pwsh\n$flacFiles = Get-AudioFile '\u003cpath to an album\u003e\\*.flac'\n\n# Export the files to Opus format, organized into directories and named according to metadata\n$files | Export-AudioFile \"Opus\" -Path \"C:\\Output\\{Album} by {Artist}\" -Name \"{TrackNumber} - {Title}\" -SignalType Speech -BitRate 32 -Force\n```\n\nC#:\n```csharp\nvar flacFiles = new DirectoryInfo(\"\u003cpath to an album\u003e\")\n    .GetFiles(\"*.flac\")\n    .Select(file =\u003e new TaggedAudioFile(file.FullName));\n\n// Export the files to Opus format, organized into directories and named according to metadata\nvar opusEncoder = new AudioFileEncoder(\"Opus\")\n{\n    EncodedDirectoryName = @\"C:\\Output\\{Album} by {Artist}\",\n    EncodedFileName = \"{TrackNumber} - {Title}\",\n    Overwrite = true,\n    Settings = new()\n    {\n        [\"SignalType\"] = \"Speech\",\n        [\"BitRate\"] = 32\n    }\n};\nawait opusEncoder.EncodeAsync(flacFiles);\n```\n\n### Set metadata (tags)\nPowerShell:\n```pwsh\n$flacFiles = Get-AudioFile '\u003cpath to an album\u003e\\*.flac'\n\n# Add ReplayGain tags, analyzing the files as a single album\n$flacFiles | Measure-AudioFile -Analyzer ReplayGain\n\n# Set the artist as well, then persist the new tags to disk\n$flacFiles | Set-AudioMetadata -Artist \"Iron Butterfly\"\n$flacFiles | Save-AudioMetadata\n```\n\nC#:\n```csharp\nvar flacFiles = new DirectoryInfo(\"\u003cpath to an album\u003e\")\n    .GetFiles(\"*.flac\")\n    .Select(file =\u003e new TaggedAudioFile(file.FullName));\n\n// Add ReplayGain tags, analyzing the files as a single album\nvar replayGainAnalyzer = new AudioFileAnalyzer(\"ReplayGain\");\nawait replayGainAnalyzer.AnalyzeAsync(flacFiles);\n\n// Set the artist as well, then persist the new tags to disk\nforeach (var flacFile in flacFiles)\n{\n    flacFile.Metadata.Artist = \"Iron Butterfly\";\n    flacFile.SaveMetadata();\n}\n```\n\n## System Requirements\nAudioWorks runs on Windows, MacOS, and Linux.\nYou will need [PowerShell 7.4+](https://aka.ms/powershell). \"Windows PowerShell\" (aka PowerShell 5.1) which is included with Windows, is no longer supported.\n \n### On Windows:\n* For AAC and Apple Lossless (ALAC) support, [you need Apple's Core Audio library](https://github.com/jherby2k/AudioWorks/wiki/Apple-Core-Audio-dependency)\n\n### On Ubuntu 24.04 (other distros should also work, but are untested):\n* Install all dependencies with `apt install libflac12t64 libmp3lame0 libvorbisenc2 libopusenc0 libebur128-1`\n\nA standard installation should only be missing libopusenc and libebur128.\n\n## Installation\nThe AudioWorks PowerShell module can found on [the PowerShell Gallery](https://www.powershellgallery.com/packages/AudioWorks.Commands).\n\nKeep the module up to date with `Update-Module -Name AudioWorks.Commands`.\n\nThe .NET API is available via [NuGet](https://www.nuget.org/packages/AudioWorks.Api).\n\n## Special Thanks\nThis project wouldn't be possible without the work of these other fine projects and organizations:\n* [Hydrogen Audio Forums](https://hydrogenaud.io/), a scientifically-minded community of digital audio enthusiasts.\n* [The LAME Project](http://lame.sourceforge.net/), maintainers of the high-quality MP3 encoder.\n* [The Xiph.Org Foundation](https://xiph.org/), maintainers of Opus, Ogg Vorbis and FLAC (the Free Lossless Audio Codec).\n* [libebur128](https://github.com/jiixyj/libebur128), a library implementing the EBU R.128 loudness standard.\n* [QAAC](https://sites.google.com/site/qaacpage/), a command-line front-end for Apple's AAC and Apple Lossless encoders.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjherby2k%2Faudioworks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjherby2k%2Faudioworks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjherby2k%2Faudioworks/lists"}