{"id":34947761,"url":"https://github.com/unknown321/poormansscrobbler","last_synced_at":"2026-05-23T06:02:23.782Z","repository":{"id":182351447,"uuid":"52739050","full_name":"unknown321/poormansscrobbler","owner":"unknown321","description":null,"archived":false,"fork":false,"pushed_at":"2016-03-21T20:25:39.000Z","size":824,"stargazers_count":0,"open_issues_count":6,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-07-19T17:34:07.698Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/unknown321.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2016-02-28T19:27:46.000Z","updated_at":"2023-07-19T17:34:18.520Z","dependencies_parsed_at":"2023-07-19T17:44:29.500Z","dependency_job_id":null,"html_url":"https://github.com/unknown321/poormansscrobbler","commit_stats":null,"previous_names":["unknown321/poormansscrobbler"],"tags_count":null,"template":null,"template_full_name":null,"purl":"pkg:github/unknown321/poormansscrobbler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unknown321%2Fpoormansscrobbler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unknown321%2Fpoormansscrobbler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unknown321%2Fpoormansscrobbler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unknown321%2Fpoormansscrobbler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/unknown321","download_url":"https://codeload.github.com/unknown321/poormansscrobbler/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unknown321%2Fpoormansscrobbler/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33384605,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T04:15:53.637Z","status":"ssl_error","status_checked_at":"2026-05-23T04:15:53.242Z","response_time":53,"last_error":"SSL_read: 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":[],"created_at":"2025-12-26T20:32:22.244Z","updated_at":"2026-05-23T06:02:23.778Z","avatar_url":"https://github.com/unknown321.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"#poormansscrobbler\nPython-based scrobbler for iPod Nano 7th gen.\n\n#how should it work\n\nTrack info is stored in `iPod_Control/iTunes/iTunes Library.itlp/Library.itdb` which is a simple sqlite3 db file. Playcounts are stored in `iPod_Control/iTunes/Play Counts` file, which is binary.\n\nFile format:\n\n| Address | stuff |\n| --- | --- |\n| 0x00000000 - 0x00000090 | header |\n| 0x00000090 - end | records |\n\nRecord size per track is 40 bytes long. First 4 bytes (or maybe 2?) are the track count, others are irrelevant.\n\nRecords are stored according to 'physical_order' value in `Library.itdb/items` table starting with 0, ie song with physical_order 0 will have its playcount at address 0x00000090.\n\n`Play Counts` file is created after at least one song has been fully played from the beginning till the end without pauses (pauses are not confirmed).\nThe file is hidden while iTunes is running for reasons unknown.\nIt is automatically cleaned after a successful synchronization with iTunes (manually pressing 'Sync', not autosync when you connect the device) so scrobbling should be performed before launching iTunes.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funknown321%2Fpoormansscrobbler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funknown321%2Fpoormansscrobbler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funknown321%2Fpoormansscrobbler/lists"}