{"id":31843000,"url":"https://github.com/gniquyij/huz","last_synced_at":"2026-05-18T03:06:52.998Z","repository":{"id":50182610,"uuid":"204245076","full_name":"gniquyij/huz","owner":"gniquyij","description":"A tool for tracking listening habits","archived":false,"fork":false,"pushed_at":"2022-12-08T06:50:35.000Z","size":773,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-03-05T12:16:06.815Z","etag":null,"topics":["database","huz","listening-habits","music"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gniquyij.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}},"created_at":"2019-08-25T04:18:40.000Z","updated_at":"2020-07-20T22:25:01.000Z","dependencies_parsed_at":"2023-01-24T17:30:37.584Z","dependency_job_id":null,"html_url":"https://github.com/gniquyij/huz","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"purl":"pkg:github/gniquyij/huz","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gniquyij%2Fhuz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gniquyij%2Fhuz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gniquyij%2Fhuz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gniquyij%2Fhuz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gniquyij","download_url":"https://codeload.github.com/gniquyij/huz/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gniquyij%2Fhuz/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279010536,"owners_count":26084759,"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","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["database","huz","listening-habits","music"],"created_at":"2025-10-12T06:58:25.271Z","updated_at":"2025-10-12T06:58:33.555Z","avatar_url":"https://github.com/gniquyij.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# huz \n\n\u003cimg src='https://github.com/vjyq/huz/blob/master/huz-2019-11-10-v1.jpg?raw=true'\u003e\n\nhuz \\[hʌts] is an open source listening habit tracking tool designed to record/track/analyze your listening.\n\n## Installation\n\n### 1. Get huz\n```\ngit clone https://github.com/vjyq/huz.git\n```\n\n### 2. Config your info\n\n- Put your collections in `./src`[^1], or your could update `HUZ_SRC_PATH` in `./settings.py` with your collection path.\n\n[^1] Here i use a clip of 'A-1 \\[Rei I]' by 鷺巣詩郎 as the sample track. If any copywriting issues, i would appreciate it if you could contact me at yuqing.ji@outlook.com.\n\n### 3. Init\n\n2 init ways: Docker (recommended) or venv. You could move on with either.\n\n#### Docker\n\nDependencies: Docker 2.0.0.3+\n```\n# Config docker-compose\n# In ./docker-compose.yml, update \u003chuz-path\u003e with the absolute path of huz in your local.\n\n# Init\ncd huz\nbash docker-compose.sh\n```\n\nMy audio files in the cloud?\n\nIf the audio files are stored in s3, you could follow the steps herein to mount your S3 bucket in huz:\n\nexport the following environment variables\n```\nexport AWS_ACCESS_KEY_ID=\u003cYOUR_AWS_ACCESS_KEY_ID\u003e\nexport AWS_SECRET_ACCESS_KEY=\u003cYOUR_AWS_SECRET_ACCESS_KEY\u003e\n```\n\nthen comment back the the following scripts:\nin `./docker-compose.yml`\n```\n#    cap_add:\n#      - SYS_ADMIN\n#    devices:\n#      - /dev/fuse\n...\n#    environment:\n#      AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}\n#      AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}\n```\nin `./bin/init.sh`\n```\n#apt install -y s3fs\n#echo ${AWS_ACCESS_KEY_ID}:${AWS_SECRET_ACCESS_KEY} \u003e /etc/passwd-s3fs\n#chmod 600 /etc/passwd-s3fs\n#s3fs huz ${here}/../src -o passwd_file=/etc/passwd-s3fs -o nonempty -o url=https://s3-ap-northeast-1.amazonaws.com\n```\n\n#### venv \n\nDependencies: Python 3.7.1+\n\n**Install python requirements**\n```\ncd huz\npip install -r requirements.txt\n```\n**Install database**\n```\nbrew install postgresql   # 11.3\ncreateuser huzer with superuser\ncreatedb huz\n```\nupdate db config `\u003chuz-path\u003e/settings.py`   # \\\u003chuz-path\u003e is the absolute path of huz in your local\n```\n# HUZ_PSQL_HOST = '172.17.0.1'\nHUZ_PSQL_HOST = '0.0.0.0'\n```\n\n**Install audio solution**\n```\nbrew install ffmpeg\n```\n**Install frontend**\n```\nbrew install grafana\n```\nupdate grafana ini `/usr/local/opt/grafana/share/grafana/conf/defaults.ini`:\n```\n# provisioning = conf/provisioning\nprovisioning = \u003chuz-path\u003e/grafana\n```\nupdate UI template `\u003chuz-path\u003e/grafana/dashboards/dashboard.yml`\n```\n# path: /etc/grafana/provisioning/dashboards\npath: \u003chuz-path\u003e/grafana/dashboards\n```\nupdate data template `\u003chuz-path\u003e/grafana/dashboards/template.json`\n```\n# url: 172.17.0.1:5432\nurl: 0.0.0.0:5432\n```\n```\nbrew services start grafana\n```\n\n**Init**\n```\ncd ./bin\nbash init.sh\n```\n\n## Getting started\n\nhttp://127.0.0.1:3000\n\nadmin/admin is the default account/password\n\nor just access the database:\n```\npsql -h 127.0.0.1 -p 5432 huz huzer   # 'password' is the default db password\n```\n\n## huz in cloud (WIP)\n\nhttps://github.com/vjyq/huz-cloud/\n\n## Author\n\nyuqing.ji@outlook.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgniquyij%2Fhuz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgniquyij%2Fhuz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgniquyij%2Fhuz/lists"}