{"id":376016,"url":"https://github.com/songloft-org/songloft-player","last_synced_at":"2026-08-20T16:02:13.557Z","repository":{"id":346781566,"uuid":"1187783230","full_name":"songloft-org/songloft-player","owner":"songloft-org","description":"🎵 插件化、无广告的免费音乐播放器","archived":false,"fork":false,"pushed_at":"2026-08-15T13:21:03.000Z","size":34514,"stargazers_count":174,"open_issues_count":0,"forks_count":39,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-08-15T13:37:24.353Z","etag":null,"topics":["apk","app","dart","flutter","ipa","loft","mimusic","music","song","songloft","xiaomusic"],"latest_commit_sha":null,"homepage":"https://songloft.hanxi.cc/","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/songloft-org.png","metadata":{"files":{"readme":"README.en.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,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":"AGENTS.md","claude":"CLAUDE.md","gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2026-03-21T06:41:35.000Z","updated_at":"2026-08-15T13:21:13.000Z","dependencies_parsed_at":"2026-08-15T13:42:46.660Z","dependency_job_id":null,"html_url":"https://github.com/songloft-org/songloft-player","commit_stats":null,"previous_names":["mimusic-org/frontend","mimusic-org/mimusic-player","songloft-org/songloft-player"],"tags_count":83,"template":false,"template_full_name":null,"purl":"pkg:github/songloft-org/songloft-player","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/songloft-org%2Fsongloft-player","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/songloft-org%2Fsongloft-player/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/songloft-org%2Fsongloft-player/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/songloft-org%2Fsongloft-player/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/songloft-org","download_url":"https://codeload.github.com/songloft-org/songloft-player/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/songloft-org%2Fsongloft-player/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36715918,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-16T02:00:06.462Z","response_time":62,"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"}},"owner":{"login":"songloft-org","name":"songloft-org","uuid":"288701258","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/288701258?v=4","repositories_count":1,"last_synced_at":"2026-05-29T04:05:34.473Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/songloft-org","funding_links":[],"total_stars":221,"followers":1,"following":0,"created_at":"2026-05-29T04:05:34.495Z","updated_at":"2026-05-29T04:05:34.495Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/songloft-org","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/songloft-org/repositories"},"packages":[],"commits":{"id":12054369,"full_name":"songloft-org/songloft-player","default_branch":"master","total_commits":669,"total_committers":6,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":111.5,"dds":0.01195814648729443,"past_year_total_commits":669,"past_year_total_committers":6,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":111.5,"past_year_dds":0.01195814648729443,"last_synced_at":"2026-08-19T15:33:50.493Z","last_synced_commit":"3a8b2b71e60f88d0f65d31071bba295f66e133c1","created_at":"2026-07-31T06:01:08.233Z","updated_at":"2026-08-19T15:33:48.416Z","committers":[{"name":"涵曦","email":"im.hanxi@gmail.com","login":"hanxi","count":661},{"name":"Dev-Wiki","email":"devwiki2014@gmail.com","login":"Dev-Wiki","count":4},{"name":"蓝色的天空","email":"302602464@qq.com","login":"luayua","count":1},{"name":"dudubear","email":"316480161@qq.com","login":"hf5460","count":1},{"name":"altman08","email":"936396749@qq.com","login":"altman08","count":1},{"name":"Hieast","email":"andrewcai@lilith.com","login":"hieast","count":1}],"past_year_committers":[{"name":"涵曦","email":"im.hanxi@gmail.com","login":"hanxi","count":661},{"name":"Dev-Wiki","email":"devwiki2014@gmail.com","login":"Dev-Wiki","count":4},{"name":"蓝色的天空","email":"302602464@qq.com","login":"luayua","count":1},{"name":"dudubear","email":"316480161@qq.com","login":"hf5460","count":1},{"name":"altman08","email":"936396749@qq.com","login":"altman08","count":1},{"name":"Hieast","email":"andrewcai@lilith.com","login":"hieast","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/songloft-org%2Fsongloft-player/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-08-20T00:00:10.776Z","repositories_count":6758024,"commits_count":979573291,"contributors_count":41279941,"owners_count":1360538,"committers_count":3354833,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues":{"table":{"full_name":"songloft-org/songloft-player","html_url":"https://github.com/songloft-org/songloft-player","last_synced_at":"2026-08-19T15:30:54.833Z","status":null,"issues_count":30,"pull_requests_count":8,"avg_time_to_close_issue":919846.7586206896,"avg_time_to_close_pull_request":12653.75,"issues_closed_count":29,"pull_requests_closed_count":8,"pull_request_authors_count":6,"issue_authors_count":19,"avg_comments_per_issue":2.6333333333333333,"avg_comments_per_pull_request":0.625,"merged_pull_requests_count":6,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":30,"past_year_pull_requests_count":8,"past_year_avg_time_to_close_issue":919846.7586206896,"past_year_avg_time_to_close_pull_request":12653.75,"past_year_issues_closed_count":29,"past_year_pull_requests_closed_count":8,"past_year_pull_request_authors_count":6,"past_year_issue_authors_count":19,"past_year_avg_comments_per_issue":2.6333333333333333,"past_year_avg_comments_per_pull_request":0.625,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":6,"created_at":"2026-05-31T08:03:20.404Z","updated_at":"2026-08-19T15:30:54.833Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/songloft-org%2Fsongloft-player","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/songloft-org%2Fsongloft-player/issues","issue_labels_count":{"table":{"enhancement":3}},"pull_request_labels_count":{"table":{}},"issue_author_associations_count":{"table":{"NONE":29,"CONTRIBUTOR":1}},"pull_request_author_associations_count":{"table":{"CONTRIBUTOR":7,"NONE":1}},"issue_authors":{"table":{"sujiajun":7,"matrixnobody":5,"wanghao-5420":2,"qinggezhishang":1,"deerwan":1,"birdstudy-nj":1,"LiFeiJian":1,"altman08":1,"uiosun":1,"qiaolu0124":1,"cdwpc":1,"gzsdbb":1,"yen-soo":1,"AfeirWu":1,"pyy-alt":1,"braxiong":1,"dishuo183":1,"zj23564":1,"zchunh-max":1}},"pull_request_authors":{"table":{"Dev-Wiki":3,"luayua":1,"hieast":1,"altman08":1,"yuanruiyang":1,"hf5460":1}},"host":{"table":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-08-20T00:00:06.687Z","repositories_count":16159648,"issues_count":41574123,"pull_requests_count":132838742,"authors_count":11481031,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"}},"past_year_issue_labels_count":{"table":{"enhancement":3}},"past_year_pull_request_labels_count":{"table":{}},"past_year_issue_author_associations_count":{"table":{"NONE":29,"CONTRIBUTOR":1}},"past_year_pull_request_author_associations_count":{"table":{"CONTRIBUTOR":7,"NONE":1}},"past_year_issue_authors":{"table":{"sujiajun":7,"matrixnobody":5,"wanghao-5420":2,"zj23564":1,"zchunh-max":1,"yen-soo":1,"uiosun":1,"qinggezhishang":1,"qiaolu0124":1,"pyy-alt":1,"LiFeiJian":1,"gzsdbb":1,"dishuo183":1,"deerwan":1,"cdwpc":1,"braxiong":1,"birdstudy-nj":1,"altman08":1,"AfeirWu":1}},"past_year_pull_request_authors":{"table":{"Dev-Wiki":3,"altman08":1,"hf5460":1,"hieast":1,"luayua":1,"yuanruiyang":1}},"maintainers":[],"active_maintainers":[]}},"events":{"total":{"DeleteEvent":96,"IssuesEvent":3,"PushEvent":115,"ReleaseEvent":8,"WatchEvent":10},"last_year":{"DeleteEvent":96,"IssuesEvent":3,"PushEvent":115,"ReleaseEvent":8,"WatchEvent":10}},"keywords":["apk","app","dart","flutter","ipa","loft","mimusic","music","song","songloft","xiaomusic"],"dependencies":[{"ecosystem":"docker","filepath":"Dockerfile","sha":null,"kind":"manifest","created_at":"2026-06-14T07:00:31.814Z","updated_at":"2026-06-14T07:00:31.814Z","repository_link":"https://github.com/songloft-org/songloft-player/blob/main/Dockerfile","dependencies":[{"id":25874088798,"package_name":"debian","ecosystem":"docker","requirements":"bookworm-slim","direct":true,"kind":"build","optional":false}]},{"ecosystem":"maven","filepath":"android/build.gradle.kts","sha":null,"kind":"manifest","created_at":"2026-06-14T07:00:32.398Z","updated_at":"2026-06-14T07:00:32.398Z","repository_link":"https://github.com/songloft-org/songloft-player/blob/main/android/build.gradle.kts","dependencies":[]},{"ecosystem":"pub","filepath":"pubspec.yaml","sha":null,"kind":"manifest","created_at":"2026-06-14T07:00:32.468Z","updated_at":"2026-06-14T07:00:32.468Z","repository_link":"https://github.com/songloft-org/songloft-player/blob/main/pubspec.yaml","dependencies":[{"id":25874088802,"package_name":"flutter","ecosystem":"pub","requirements":"{\"sdk\" =\u003e \"flutter\"}","direct":true,"kind":"runtime","optional":false},{"id":25874088829,"package_name":"flutter_riverpod","ecosystem":"pub","requirements":"^3.1.0","direct":true,"kind":"runtime","optional":false},{"id":25874088838,"package_name":"riverpod_annotation","ecosystem":"pub","requirements":"^4.0.0","direct":true,"kind":"runtime","optional":false},{"id":25874088839,"package_name":"go_router","ecosystem":"pub","requirements":"^17.1.0","direct":true,"kind":"runtime","optional":false},{"id":25874088843,"package_name":"dio","ecosystem":"pub","requirements":"^5.7.0","direct":true,"kind":"runtime","optional":false},{"id":25874088844,"package_name":"just_audio","ecosystem":"pub","requirements":"^0.10.5","direct":true,"kind":"runtime","optional":false},{"id":25874088852,"package_name":"just_audio_media_kit","ecosystem":"pub","requirements":"^2.0.0","direct":true,"kind":"runtime","optional":false},{"id":25874088854,"package_name":"media_kit_libs_windows_audio","ecosystem":"pub","requirements":"any","direct":true,"kind":"runtime","optional":false},{"id":25874088856,"package_name":"audio_service","ecosystem":"pub","requirements":"^0.18.17","direct":true,"kind":"runtime","optional":false},{"id":25874088868,"package_name":"audio_session","ecosystem":"pub","requirements":"^0.2.3","direct":true,"kind":"runtime","optional":false},{"id":25874088872,"package_name":"permission_handler","ecosystem":"pub","requirements":"^12.0.1","direct":true,"kind":"runtime","optional":false},{"id":25874088875,"package_name":"shared_preferences","ecosystem":"pub","requirements":"^2.3.4","direct":true,"kind":"runtime","optional":false},{"id":25874088876,"package_name":"path_provider","ecosystem":"pub","requirements":"^2.1.0","direct":true,"kind":"runtime","optional":false},{"id":25874088879,"package_name":"cached_network_image","ecosystem":"pub","requirements":"^3.4.1","direct":true,"kind":"runtime","optional":false},{"id":25874088887,"package_name":"palette_generator","ecosystem":"pub","requirements":"^0.3.3+4","direct":true,"kind":"runtime","optional":false},{"id":25874088892,"package_name":"file_picker","ecosystem":"pub","requirements":"^10.3.10","direct":true,"kind":"runtime","optional":false},{"id":25874088893,"package_name":"intl","ecosystem":"pub","requirements":"^0.20.2","direct":true,"kind":"runtime","optional":false},{"id":25874088894,"package_name":"url_launcher","ecosystem":"pub","requirements":"^6.3.1","direct":true,"kind":"runtime","optional":false},{"id":25874088896,"package_name":"flutter_markdown","ecosystem":"pub","requirements":"^0.7.6","direct":true,"kind":"runtime","optional":false},{"id":25874088897,"package_name":"flutter_inappwebview","ecosystem":"pub","requirements":"^6.1.5","direct":true,"kind":"runtime","optional":false},{"id":25874088899,"package_name":"web","ecosystem":"pub","requirements":"^1.1.1","direct":true,"kind":"runtime","optional":false},{"id":25874088924,"package_name":"windows_single_instance","ecosystem":"pub","requirements":"any","direct":true,"kind":"runtime","optional":false},{"id":25874088929,"package_name":"flutter_svg","ecosystem":"pub","requirements":"^2.3.0","direct":true,"kind":"runtime","optional":false},{"id":25874088930,"package_name":"crypto","ecosystem":"pub","requirements":"^3.0.6","direct":true,"kind":"runtime","optional":false},{"id":25874088931,"package_name":"flutter_test","ecosystem":"pub","requirements":"{\"sdk\" =\u003e \"flutter\"}","direct":true,"kind":"development","optional":false},{"id":25874088933,"package_name":"flutter_lints","ecosystem":"pub","requirements":"^6.0.0","direct":true,"kind":"development","optional":false},{"id":25874088935,"package_name":"riverpod_generator","ecosystem":"pub","requirements":"^4.0.0+1","direct":true,"kind":"development","optional":false},{"id":25874088938,"package_name":"build_runner","ecosystem":"pub","requirements":"^2.4.14","direct":true,"kind":"development","optional":false},{"id":25874088939,"package_name":"json_serializable","ecosystem":"pub","requirements":"^6.9.3","direct":true,"kind":"development","optional":false},{"id":25874088940,"package_name":"custom_lint","ecosystem":"pub","requirements":"^0.8.1","direct":true,"kind":"development","optional":false},{"id":25874088941,"package_name":"riverpod_lint","ecosystem":"pub","requirements":"^3.1.0","direct":true,"kind":"development","optional":false},{"id":25874088942,"package_name":"flutter_launcher_icons","ecosystem":"pub","requirements":"^0.14.4","direct":true,"kind":"development","optional":false},{"id":25874088905,"package_name":"json_annotation","ecosystem":"pub","requirements":"^4.9.0","direct":true,"kind":"runtime","optional":false},{"id":25874088914,"package_name":"volume_controller","ecosystem":"pub","requirements":"^2.0.7","direct":true,"kind":"runtime","optional":false},{"id":25874088916,"package_name":"window_manager","ecosystem":"pub","requirements":"^0.4.3","direct":true,"kind":"runtime","optional":false},{"id":25874088922,"package_name":"tray_manager","ecosystem":"pub","requirements":"^0.2.4","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"cocoapods","filepath":"ios/Podfile.lock","sha":null,"kind":"lockfile","created_at":"2026-06-14T07:00:25.713Z","updated_at":"2026-06-14T07:00:25.713Z","repository_link":"https://github.com/songloft-org/songloft-player/blob/main/ios/Podfile.lock","dependencies":[{"id":25874088692,"package_name":"audio_service","ecosystem":"cocoapods","requirements":"0.0.1","direct":false,"kind":"runtime","optional":false},{"id":25874088695,"package_name":"audio_session","ecosystem":"cocoapods","requirements":"0.0.1","direct":false,"kind":"runtime","optional":false},{"id":25874088696,"package_name":"DKImagePickerController","ecosystem":"cocoapods","requirements":"4.3.9","direct":false,"kind":"runtime","optional":false},{"id":25874088697,"package_name":"DKPhotoGallery","ecosystem":"cocoapods","requirements":"0.0.19","direct":false,"kind":"runtime","optional":false},{"id":25874088698,"package_name":"file_picker","ecosystem":"cocoapods","requirements":"0.0.1","direct":false,"kind":"runtime","optional":false},{"id":25874088735,"package_name":"Flutter","ecosystem":"cocoapods","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":25874088743,"package_name":"flutter_inappwebview_ios","ecosystem":"cocoapods","requirements":"0.0.1","direct":false,"kind":"runtime","optional":false},{"id":25874088745,"package_name":"flutter_secure_storage_darwin","ecosystem":"cocoapods","requirements":"10.0.0","direct":false,"kind":"runtime","optional":false},{"id":25874088746,"package_name":"just_audio","ecosystem":"cocoapods","requirements":"0.0.1","direct":false,"kind":"runtime","optional":false},{"id":25874088747,"package_name":"OrderedSet","ecosystem":"cocoapods","requirements":"6.0.3","direct":false,"kind":"runtime","optional":false},{"id":25874088754,"package_name":"permission_handler_apple","ecosystem":"cocoapods","requirements":"9.3.0","direct":false,"kind":"runtime","optional":false},{"id":25874088757,"package_name":"SDWebImage","ecosystem":"cocoapods","requirements":"5.21.7","direct":false,"kind":"runtime","optional":false},{"id":25874088765,"package_name":"shared_preferences_foundation","ecosystem":"cocoapods","requirements":"0.0.1","direct":false,"kind":"runtime","optional":false},{"id":25874088768,"package_name":"sqflite_darwin","ecosystem":"cocoapods","requirements":"0.0.4","direct":false,"kind":"runtime","optional":false},{"id":25874088772,"package_name":"SwiftyGif","ecosystem":"cocoapods","requirements":"5.4.5","direct":false,"kind":"runtime","optional":false},{"id":25874088773,"package_name":"url_launcher_ios","ecosystem":"cocoapods","requirements":"0.0.1","direct":false,"kind":"runtime","optional":false}]},{"ecosystem":"cocoapods","filepath":"ios/Podfile","sha":null,"kind":"manifest","created_at":"2026-06-14T07:00:25.644Z","updated_at":"2026-06-14T07:00:25.644Z","repository_link":"https://github.com/songloft-org/songloft-player/blob/main/ios/Podfile","dependencies":[]},{"ecosystem":"actions","filepath":".github/workflows/build-and-release.yml","sha":null,"kind":"manifest","created_at":"2026-06-14T07:00:24.730Z","updated_at":"2026-06-14T07:00:24.730Z","repository_link":"https://github.com/songloft-org/songloft-player/blob/main/.github/workflows/build-and-release.yml","dependencies":[{"id":25874088690,"package_name":"actions/download-artifact","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":25874088680,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":25874088681,"package_name":"subosito/flutter-action","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":25874088683,"package_name":"actions/upload-artifact","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":25874088684,"package_name":"nuget/setup-nuget","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":25874088688,"package_name":"actions/setup-java","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":25874088689,"package_name":"requarks/changelog-action","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"maven","filepath":"android/app/build.gradle.kts","sha":null,"kind":"manifest","created_at":"2026-06-14T07:00:32.266Z","updated_at":"2026-06-14T07:00:32.266Z","repository_link":"https://github.com/songloft-org/songloft-player/blob/main/android/app/build.gradle.kts","dependencies":[]},{"ecosystem":"cocoapods","filepath":"macos/Podfile","sha":null,"kind":"manifest","created_at":"2026-06-14T07:00:30.555Z","updated_at":"2026-06-14T07:00:30.555Z","repository_link":"https://github.com/songloft-org/songloft-player/blob/main/macos/Podfile","dependencies":[]},{"ecosystem":"docker","filepath":"scripts/webf-verify/Dockerfile","sha":null,"kind":"manifest","created_at":"2026-08-15T13:42:46.465Z","updated_at":"2026-08-15T13:42:46.465Z","repository_link":"https://github.com/songloft-org/songloft-player/blob/main/scripts/webf-verify/Dockerfile","dependencies":[{"id":26147436769,"package_name":"ubuntu","ecosystem":"docker","requirements":"24.04","direct":true,"kind":"build","optional":false}]}],"score":6.950814768442584,"created_at":"2026-06-26T13:36:38.548Z","updated_at":"2026-08-20T16:02:13.557Z","avatar_url":"https://github.com/songloft-org.png","language":"Dart","codemeta":null,"publiccode":null,"project_url":"https://summary.ecosyste.ms/api/v1/projects/376016","html_url":"https://summary.ecosyste.ms/projects/376016"}