@akiver/csgo-voice-extractor 1.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,44 +1,13 @@
1
- # CSGO voice extractor
1
+ # Counter-Strike voice extractor
2
2
 
3
- CLI to export players' voices from CSGO demos into WAV files.
3
+ CLI to export players' voices from CSGO/CS2 demos into WAV files.
4
4
 
5
- **Valve Matchmaking demos do not contain voice audio data, hence there is nothing to extract from MM demos.**
5
+ > [!WARNING]
6
+ > **Valve Matchmaking demos do not contain voice audio data, hence there is nothing to extract from MM demos.**
6
7
 
7
8
  ## Installation
8
9
 
9
- ### Windows
10
-
11
- 1. Download the last release from [GitHub](https://github.com/akiver/csgo-voice-extractor/releases)
12
- 2. Copy/paste the following files from the `CSGO` installation folder next to the executable:
13
-
14
- - `tier0.dll`
15
- - `vaudio_celt.dll`
16
-
17
- > **Note**
18
- > By default, these files are located in `C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\bin`
19
-
20
- ### macOS
21
-
22
- 1. Download the last release from [GitHub](https://github.com/akiver/csgo-voice-extractor/releases)
23
- 2. Copy/paste the following files from the `CSGO` installation folder next to the executable:
24
-
25
- - `libtier0.dylib`
26
- - `libvstdlib.dylib`
27
- - `vaudio_celt.dylib`
28
-
29
- > **Note**
30
- > By default, these files are located in `~/Applications/Steam/steamapps/common/Counter-Strike Global Offensive/bin/osx64`
31
-
32
- ### Linux
33
-
34
- 1. Download the last release from [GitHub](https://github.com/akiver/csgo-voice-extractor/releases)
35
- 2. Copy/paste the following files from the `CSGO` installation folder next to the executable:
36
-
37
- - `libtier0_client.so`
38
- - `vaudio_celt_client.so`
39
-
40
- > **Note**
41
- > By default, these files are located in `~/.steam/steam/steamapps/common/Counter-Strike Global Offensive/bin`
10
+ Download the last release for your OS from [GitHub](https://github.com/akiver/csgo-voice-extractor/releases/latest).
42
11
 
43
12
  ## Usage
44
13
 
@@ -49,7 +18,7 @@ csgove.exe demoPaths... [-output]
49
18
  ```
50
19
 
51
20
  By default `.dll` files are expected to be in the same directory as the executable.
52
- You can change it by setting the `LD_LIBRARY_PATH` environment variable, example:
21
+ You can change it by setting the `LD_LIBRARY_PATH` environment variable. Example:
53
22
 
54
23
  ```bash
55
24
  LD_LIBRARY_PATH="C:\Users\username\Desktop" csgove.exe
@@ -57,7 +26,7 @@ LD_LIBRARY_PATH="C:\Users\username\Desktop" csgove.exe
57
26
 
58
27
  ### macOS
59
28
 
60
- > **Warning**
29
+ > [!CAUTION]
61
30
  > The environment variable `DYLD_LIBRARY_PATH` must be set before invoking the program and point to the location of the `.dylib` files!
62
31
 
63
32
  ```bash
@@ -66,7 +35,7 @@ DYLD_LIBRARY_PATH=. csgove demoPaths... [-output]
66
35
 
67
36
  ### Linux
68
37
 
69
- > **Warning**
38
+ > [!CAUTION]
70
39
  > The environment variable `LD_LIBRARY_PATH` must be set before invoking the program and point to the location of the `.so` files!
71
40
 
72
41
  ```bash
@@ -109,6 +78,7 @@ csgove -output "C:\Users\username\Desktop\output" myDemo.dem
109
78
 
110
79
  - [Go](https://go.dev/)
111
80
  - [GCC](https://gcc.gnu.org/)
81
+ - [Chocolatey](https://chocolatey.org/) (Windows only)
112
82
 
113
83
  _Debugging is easier on macOS/Linux **64-bit**, see warnings below._
114
84
 
@@ -116,27 +86,49 @@ _Debugging is easier on macOS/Linux **64-bit**, see warnings below._
116
86
 
117
87
  _Because the CSGO audio library is a 32-bit DLL, you need a 32-bit `GCC` and set the Go env variable `GOARCH=386` to build the program._
118
88
 
89
+ > [!IMPORTANT]
90
+ > Use a unix like shell such as [Git Bash](https://git-scm.com/), it will not work with `cmd.exe`!
91
+
92
+ > [!WARNING]
93
+ > The `$GCC_PATH` variable in the following steps is the path where `gcc.exe` is located.
94
+ > By default, it's `C:\TDM-GCC-64\bin` when using [TDM-GCC](https://jmeubank.github.io/tdm-gcc/) (highly recommended).
95
+
119
96
  1. Install `GCC` for Windows, [TDM-GCC](https://jmeubank.github.io/tdm-gcc/) is recommended because it handles both 32-bit and 64-bit when running `go build`.
120
97
  If you use [MSYS2](https://www.msys2.org/), it's important to install the 32-bit version (`pacman -S mingw-w64-i686-gcc`).
121
- 2. Copy/paste `tier0.dll` and `vaudio_celt.dll` from the CSGO installation folder in the project's root folder.
122
- 3. `CGO_ENABLED=1 GOARCH=386 go run .`
123
-
124
- > **Warning**
98
+ 2. Install `pkg-config` using [chocolatey](https://chocolatey.org/) by running `choco install pkgconfiglite`.
99
+ It's **highly recommended** to use `choco` otherwise you would have to build `pkg-config` and copy/paste the `pkg-config.exe` binary in your `$GCC_PATH`.
100
+ 3. Download the source code of [Opus](https://opus-codec.org/downloads/)
101
+ 4. Extract the archive, rename the folder to `opus` and place it in the project's root folder
102
+ 5. Open the `opus/win32/VS2015/opus.sln` file with Visual Studio (upgrade the project if asked)
103
+ 6. Build the `Release` configuration for `Win32` (**not `x64`** - it's important to build the 32-bit version!)
104
+ 7. Copy/paste the `opus.dll` file in `$GCC_PATH` and `dist/bin/win32-x64`
105
+ 8. Copy/paste the C header files located inside the `include` folder file in `$GCC_PATH\include\opus` (create the folders if needed)
106
+ 9. Copy/paste the `opus.pc.example` to `opus.pc` file and edit the `prefix` variable to match your `GCC` installation path **if necessary**.
107
+ 10. `PKG_CONFIG_PATH=$(realpath .) LD_LIBRARY_PATH=dist/bin/win32-x64 CGO_ENABLED=1 GOARCH=386 go run -tags nolibopusfile .`
108
+
109
+ > [!WARNING]
125
110
  > Because the Go debugger doesn't support Windows 32-bit and the CSGO lib is a 32-bit DLL, you will not be able to run the Go debugger.
126
111
  > If you want to be able to run the debugger for the **Go part only**, you could comment on lines that involve `C/CGO` calls.
127
112
 
128
113
  ### macOS
129
114
 
130
- 1. Copy/paste `libtier0.dylib`, `libvstdlib.dylib` and `vaudio_celt.dylib` from the CSGO installation folder in the project's root folder.
131
- 2. `DYLD_LIBRARY_PATH=. CGO_ENABLED=1 GOARCH=amd64 go run .`
115
+ > [!IMPORTANT]
116
+ > On macOS `ARM64`, the `x64` version of Homebrew must be installed!
117
+ > You can install it by adding `arch -x86_64` before the official command to install Homebrew (`arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`)
118
+
119
+ 1. Install [Homebrew](https://brew.sh) **x64 version**
120
+ 2. `arch -x86_64 brew install opus`
121
+ 3. `cp /usr/local/Cellar/opus/1.4/lib/libopus.0.dylib dist/bin/darwin-x64` (`arch -x86_64 brew info opus` to get the path)
122
+ 4. `DYLD_LIBRARY_PATH=dist/bin/darwin-x64 CGO_ENABLED=1 GOARCH=amd64 go run -tags nolibopusfile .`
132
123
 
133
- > **Warning**
124
+ > [!WARNING]
134
125
  > On macOS ARM64, the Go debugger breakpoints will not work because the executable must target amd64 but your OS is ARM64.
135
126
 
136
127
  ### Linux
137
128
 
138
- 1. Copy/paste `libtier0_client.so` and `vaudio_celt_client.so` from the CSGO installation folder in the project's root folder.
139
- 2. `LD_LIBRARY_PATH=. CGO_ENABLED=1 GOARCH=amd64 go run .`
129
+ 1. `sudo apt install pkg-config libopus-dev`
130
+ 2. `cp /usr/lib/x86_64-linux-gnu/libopus.so.0 dist/bin/linux-x64` (you may need to change the path depending on your distro)
131
+ 3. `LD_LIBRARY_PATH=dist/bin/linux-x64 CGO_ENABLED=1 GOARCH=amd64 go run -tags nolibopusfile .`
140
132
 
141
133
  ## Building
142
134
 
@@ -154,7 +146,8 @@ _Because the CSGO audio library is a 32-bit DLL, you need a 32-bit `GCC` and set
154
146
 
155
147
  ## Credits
156
148
 
157
- Thanks to [@saul](https://github.com/saul) and [@ericek111](https://github.com/ericek111) for their [investigation](https://github.com/saul/demofile/issues/83#issuecomment-1207437098).
149
+ Thanks to [@saul](https://github.com/saul) and [@ericek111](https://github.com/ericek111) for their [CSGO investigation](https://github.com/saul/demofile/issues/83#issuecomment-1207437098).
150
+ Thanks to [@DandrewsDev](https://github.com/DandrewsDev) for his work on [CS2 voice data extraction](https://github.com/DandrewsDev/CS2VoiceData).
158
151
 
159
152
  ## License
160
153
 
Binary file
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@akiver/csgo-voice-extractor",
3
- "version": "1.0.0",
4
- "description": "CLI to export players' voices from CSGO demos into WAV files.",
3
+ "version": "2.1.0",
4
+ "description": "CLI to export players' voices from CSGO/CS2 demos into WAV files.",
5
5
  "author": "AkiVer",
6
6
  "license": "MIT",
7
7
  "bugs": {
@@ -27,6 +27,7 @@
27
27
  "keywords": [
28
28
  "Counter-Strike",
29
29
  "CS",
30
+ "CS2",
30
31
  "CSGO",
31
32
  "audio"
32
33
  ]