Skip to content

Instantly share code, notes, and snippets.

@vapronva
vapronva / filter-soundiiz-results-notfound.py
Created April 16, 2024 18:20
Process CSV files from the results of Soundiiz track transfers: read all CSV files in the results directory, parse the track data, and filter out the tracks where isFound is set to 0. The filtered data [tracks] is then written to a new CSV file. Main goal: identify tracks that were not found on the destination platform during the transfer proces…
from csv import DictReader, DictWriter
from pathlib import Path
from pydantic import BaseModel, Field, field_serializer
INPUT_FOLDER: Path = Path("results")
OUTPUT_FILE: Path = Path("not_found.csv")
@vapronva
vapronva / vrchat_metadata_processor.py
Last active January 30, 2024 12:32
Processes screenshots taken from VRChat, as well as Meta Quest recordings, extracting creation date and resolution information from their filenames. It then copies the files to an output directory (or an unparsable directory instead) and applies the extracted metadata to the media files using ExifTool. // https://gl.vprw.ru/-/snippets/2
import logging
import re
import shutil
from datetime import datetime
from pathlib import Path
import exiftool
from pydantic import BaseModel
@vapronva
vapronva / download_replay_modify_name_beatsaber.sh
Last active February 1, 2024 16:05
Renames recorded videos (with filename as BeatLeader replay ID) based on metadata fetched from BeatLeader's and BeatSaver's API (replay information and map data), downloads corresponding JSON data (replay data) and replay files (`.bsor`), and formats everything for organized archiving. // https://gl.vprw.ru/-/snippets/1
#!/bin/bash
fetch_api_data() {
local url=$1
local response
response=$(curl -f -S -L -H "accept: application/json" "$url")
echo "$response"
}
sanitize_filename() {
@vapronva
vapronva / boosterConfig.ini
Created May 29, 2022 18:57
Small script to add effects (mainly, bassboosting / earrape) to audio files with directories saving in many threads.
[AEQ]
; Audio equalizer settings
; start and end are in Hz (int) and must be divisible by 2
bassStart = 0
bassEnd = 80
bassGain = 80
midStart = 80
midEnd = 8600
midGain = 50