Skip to content

gamdl: init at 2.8#432872

Open
bdim404 wants to merge 3 commits into
NixOS:masterfrom
bdim404:bdim-gamdl-init
Open

gamdl: init at 2.8#432872
bdim404 wants to merge 3 commits into
NixOS:masterfrom
bdim404:bdim-gamdl-init

Conversation

@bdim404

@bdim404 bdim404 commented Aug 11, 2025

Copy link
Copy Markdown
Member

This PR introduces the gamdl package.

gamdl is a command-line tool for downloading songs, albums, playlists, and music videos from Apple Music. It automatically embeds metadata, lyrics, and cover art into the downloaded files. This is useful for users who want to maintain an offline backup of their Apple Music library.

Homepage: https://github.com/glomatico/gamdl

Things done

  • Built on platform:
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • Tested, as applicable:
  • Ran nixpkgs-review on this PR. See nixpkgs-review usage.
  • Tested basic functionality of all binary files, usually in ./result/bin/.
  • Nixpkgs Release Notes
    • Package update: when the change is major or breaking.
  • NixOS Release Notes
    • Module addition: when adding a new NixOS module.
    • Module update: when the change is significant.
  • Fits CONTRIBUTING.md, pkgs/README.md, maintainers/README.md and other READMEs.

Add a 👍 reaction to pull requests you find important.

@nixpkgs-ci nixpkgs-ci Bot added 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-darwin: 1 This PR causes 1 package to rebuild on Darwin. 10.rebuild-linux: 1 This PR causes 1 package to rebuild on Linux. 8.has: maintainer-list (update) This PR changes `maintainers/maintainer-list.nix` 9.needs: reviewer This PR currently has no reviewers requested and needs attention. labels Aug 11, 2025
@bdim404 bdim404 changed the title gamdl: init at 2.2.3 gamdl: init at 2.5.1 Aug 11, 2025
@bdim404

bdim404 commented Aug 11, 2025

Copy link
Copy Markdown
Member Author

nixpkgs-review result

Generated using nixpkgs-review.

Command: nixpkgs-review pr 432872
Commit: e95b7c7e22c43afbbb2b132a0127f895012ca806


x86_64-linux

✅ 2 packages built:
  • gamdl
  • gamdl.dist

Comment thread pkgs/by-name/ga/gamdl/package.nix Outdated
Comment thread pkgs/by-name/ga/gamdl/package.nix Outdated
Comment thread pkgs/by-name/ga/gamdl/package.nix Outdated
Comment thread pkgs/by-name/ga/gamdl/package.nix Outdated
Comment thread pkgs/by-name/ga/gamdl/package.nix Outdated
Comment thread pkgs/by-name/ga/gamdl/package.nix Outdated
Comment thread pkgs/by-name/ga/gamdl/package.nix Outdated
Comment thread pkgs/by-name/ga/gamdl/package.nix Outdated
Comment thread pkgs/by-name/ga/gamdl/package.nix Outdated
Comment thread pkgs/by-name/ga/gamdl/package.nix Outdated
Comment thread pkgs/by-name/ga/gamdl/package.nix Outdated
@nixpkgs-ci nixpkgs-ci Bot removed the 9.needs: reviewer This PR currently has no reviewers requested and needs attention. label Aug 11, 2025
@nix-owners
nix-owners Bot requested a review from natsukium August 12, 2025 03:00
@nixpkgs-ci nixpkgs-ci Bot added 6.topic: python Python is a high-level, general-purpose programming language. and removed 10.rebuild-darwin: 1 This PR causes 1 package to rebuild on Darwin. 10.rebuild-linux: 1 This PR causes 1 package to rebuild on Linux. labels Aug 12, 2025
@bdim404
bdim404 requested a review from Sigmanificient August 12, 2025 03:36
@bdim404

bdim404 commented Aug 12, 2025

Copy link
Copy Markdown
Member Author

I believe I have made all the changes you requested. Are there any other issues?

Comment thread pkgs/by-name/ga/gamdl/package.nix Outdated
Comment thread pkgs/by-name/ga/gamdl/package.nix Outdated
Comment thread pkgs/by-name/ga/gamdl/package.nix Outdated
Comment thread pkgs/by-name/ga/gamdl/package.nix Outdated
Comment thread pkgs/development/python-modules/pymp4/default.nix Outdated
Comment thread pkgs/development/python-modules/pywidevine/default.nix Outdated
Comment thread pkgs/development/python-modules/pywidevine/default.nix Outdated
Comment thread pkgs/by-name/ga/gamdl/package.nix Outdated
@Sigmanificient

Sigmanificient commented Aug 12, 2025

Copy link
Copy Markdown
Member

Missing flit-core import in pywidevine (we are almost there 😅)

@bdim404

bdim404 commented Aug 12, 2025

Copy link
Copy Markdown
Member Author

I apologize, but I am feeling quite overwhelmed at the moment. I will organize my thoughts and request your review once I have done so.

@bdim404

bdim404 commented Aug 12, 2025

Copy link
Copy Markdown
Member Author

Dear @Sigmanificient Actually, I'm not very familiar with how to integrate Python modules into nixpkgs. Currently, the files in the latest commit version can be successfully built on my local machine, but the built files cannot be executed smoothly. Could you please help me with this?

@Sigmanificient Sigmanificient left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bdim404 I tried to cleanup a bit the pr for you. Unfortunately, pymp4 tests are still failing. After some investigation, this is caused by construct dependency, being not compatible with the one expected. There is a pr that tries to upgrade from Construct 2.8.8 to 2.10.68, but it seems that more work it needed to make it work with python 3.13

@bdim404

bdim404 commented Aug 12, 2025

Copy link
Copy Markdown
Member Author

Thank you very much for your help! In your opinion, how should this situation be handled and resolved?

@Sigmanificient

Copy link
Copy Markdown
Member

Well a patch that makes pymp4 works properly with the latest version of constructs would be great

@bdim404
bdim404 requested a review from Stzx August 13, 2025 06:54
@yzhou216

Copy link
Copy Markdown
Contributor

Could you please do a rebase to squash e2bd184 into f3e1e8d?

@bdim404

bdim404 commented Aug 13, 2025

Copy link
Copy Markdown
Member Author

Could you please do a rebase to squash e2bd184 into f3e1e8d?

Yes, but it doesn't make much sense.

@yzhou216

Copy link
Copy Markdown
Contributor

Could you please do a rebase to squash e2bd184 into f3e1e8d?

Yes, but it doesn't make much sense.

Why not? The suggestion I made was to a file added in a previous commit.

@bdim404

bdim404 commented Aug 13, 2025

Copy link
Copy Markdown
Member Author

Could you please do a rebase to squash e2bd184 into f3e1e8d?

Yes, but it doesn't make much sense.

Why not? The suggestion I made was to a file added in a previous commit.

Currently, pymp4 is unavailable, and we still need to make changes. Won't we need to rebase again? Wouldn't it be better to organize the commits after we can run it?

@yzhou216

Copy link
Copy Markdown
Contributor

Could you please do a rebase to squash e2bd184 into f3e1e8d?

Yes, but it doesn't make much sense.

Why not? The suggestion I made was to a file added in a previous commit.

Currently, pymp4 is unavailable, and we still need to make changes. Won't we need to rebase again? Wouldn't it be better to organize the commits after we can run it?

That's up to you. Although I do think rebasing it right now is better since the commit message is very generic, and it's harder to track which commit did what once commits get built up.

@ryand56 ryand56 mentioned this pull request Sep 26, 2025
13 tasks
@bdim404
bdim404 marked this pull request as draft December 9, 2025 07:13
@nixpkgs-ci nixpkgs-ci Bot removed the 8.has: maintainer-list (update) This PR changes `maintainers/maintainer-list.nix` label Dec 9, 2025
@bdim404
bdim404 force-pushed the bdim-gamdl-init branch 2 times, most recently from c950dd0 to a68ffd4 Compare December 9, 2025 08:26
@bdim404
bdim404 marked this pull request as ready for review December 9, 2025 08:26
@bdim404 bdim404 changed the title gamdl: init at 2.5.1 gamdl: init at 2.8 Dec 9, 2025
@bdim404

bdim404 commented Dec 9, 2025

Copy link
Copy Markdown
Member Author

Hi @Sigmanificient, I tried to make a patch for pymp4, and it works well, pls check it.

@bdim404

bdim404 commented Dec 9, 2025

Copy link
Copy Markdown
Member Author

nixpkgs-review result

Generated using nixpkgs-review-gha

Command: nixpkgs-review pr 432872
Commit: a68ffd48c1d5c6bb2a9bcd3b6fec097c20e3cdc4 (subsequent changes)
Merge: 1bb336bff1f5e07d24e8d5526935b0abf006e9be

Logs: https://github.com/bdim404/nixpkgs-review-gha/actions/runs/20056885130


x86_64-linux

✅ 10 packages built:
  • gamdl
  • gamdl.dist
  • python312Packages.pymp4
  • python312Packages.pymp4.dist
  • python312Packages.pywidevine
  • python312Packages.pywidevine.dist
  • python313Packages.pymp4
  • python313Packages.pymp4.dist
  • python313Packages.pywidevine
  • python313Packages.pywidevine.dist

aarch64-linux

✅ 10 packages built:
  • gamdl
  • gamdl.dist
  • python312Packages.pymp4
  • python312Packages.pymp4.dist
  • python312Packages.pywidevine
  • python312Packages.pywidevine.dist
  • python313Packages.pymp4
  • python313Packages.pymp4.dist
  • python313Packages.pywidevine
  • python313Packages.pywidevine.dist

x86_64-darwin (sandbox = relaxed)

✅ 10 packages built:
  • gamdl
  • gamdl.dist
  • python312Packages.pymp4
  • python312Packages.pymp4.dist
  • python312Packages.pywidevine
  • python312Packages.pywidevine.dist
  • python313Packages.pymp4
  • python313Packages.pymp4.dist
  • python313Packages.pywidevine
  • python313Packages.pywidevine.dist

aarch64-darwin (sandbox = relaxed)

✅ 10 packages built:
  • gamdl
  • gamdl.dist
  • python312Packages.pymp4
  • python312Packages.pymp4.dist
  • python312Packages.pywidevine
  • python312Packages.pywidevine.dist
  • python313Packages.pymp4
  • python313Packages.pymp4.dist
  • python313Packages.pywidevine
  • python313Packages.pywidevine.dist

bdim404 and others added 3 commits December 9, 2025 16:41
Python implementation of Google's Widevine DRM CDM (Content Decryption
Module). Includes a patch for construct 2.10+ compatibility.

Co-authored-by: Yohann Boniface <edhyjox@gmail.com>
Python library for parsing and manipulating MP4 files. Uses the devine-dl
fork with construct 2.10+ compatibility from upstream PR NixOS#24.
Command-line tool for downloading Apple Music songs, music videos and
post videos. Automatically embeds metadata, lyrics, and cover art.

Co-authored-by: Yohann Boniface <edhyjox@gmail.com>
@bdim404 bdim404 added the 9.needs: reviewer This PR currently has no reviewers requested and needs attention. label Dec 9, 2025
@nixpkgs-ci nixpkgs-ci Bot removed the 9.needs: reviewer This PR currently has no reviewers requested and needs attention. label Dec 9, 2025
@yzhou216

yzhou216 commented Jan 1, 2026

Copy link
Copy Markdown
Contributor

nixpkgs-review result

Generated using nixpkgs-review-gha

Command: nixpkgs-review pr 432872
Commit: 62ce14815bcf2f2955ca2d8c196beb055e5ed5c6 (subsequent changes)
Merge: 720e2c750dc292a1d1ca33be1dca8ec2ab86bea2

Logs: https://github.com/yzhou216/nixpkgs-review-gha/actions/runs/20634215616

Download packages from cache:
  • x86_64-linux
    nix-store -r --add-root nixpkgs-pr-432872-x86_64-linux \
      --option binary-caches 'https://cache.nixos.org/ https://yzhou216.cachix.org' \
      --option trusted-public-keys '
      cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
      yzhou216.cachix.org-1:O7nGwQnLGGBGE8zYFMipVzPVN956FcV57y9SqwEP+O8=
      ' \
      /nix/store/nhmv8v1fkwwya60dlrbh8higfwvh2icy-gamdl-2.8 \
      /nix/store/9v7vrbxm9ff8yrdxa0jrkhpf7da2cxqm-gamdl-2.8-dist \
      /nix/store/7qpsyg9hfzlwgq10lw9xdbzr8r77b16h-python3.12-pymp4-1.4.0-unstable-2023-08-07 \
      /nix/store/99gw1v14x6xkay6mksanxzvgm0nm0nyk-python3.12-pymp4-1.4.0-unstable-2023-08-07-dist \
      /nix/store/r09jn7kcmnzigz90x27hzn84bjhrayaw-python3.12-pywidevine-1.8.0 \
      /nix/store/9p18hsp9d4sx2rjz8wqm04md7sc96xr2-python3.12-pywidevine-1.8.0-dist \
      /nix/store/1ip1lpg7amjz7d2iwv1699d678l4mba6-python3.13-pymp4-1.4.0-unstable-2023-08-07 \
      /nix/store/xxr424vx12h3k2lgki4f8kjqnm65ax3x-python3.13-pymp4-1.4.0-unstable-2023-08-07-dist \
      /nix/store/2asism5rkifwyq9kp2db3xfmmk66r80d-python3.13-pywidevine-1.8.0 \
      /nix/store/wvkx13x20d710a9h6wv6izvl727lxji0-python3.13-pywidevine-1.8.0-dist
  • aarch64-linux
    nix-store -r --add-root nixpkgs-pr-432872-aarch64-linux \
      --option binary-caches 'https://cache.nixos.org/ https://yzhou216.cachix.org' \
      --option trusted-public-keys '
      cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
      yzhou216.cachix.org-1:O7nGwQnLGGBGE8zYFMipVzPVN956FcV57y9SqwEP+O8=
      ' \
      /nix/store/3pqi08q7ffiykvpkhdrbhaxkqjlmi6i9-gamdl-2.8 \
      /nix/store/hx012zd6ibhf37zkfmddlhs8m8hd0hih-gamdl-2.8-dist \
      /nix/store/j4q4pch4l65kmzg8rlcy4rbxdjbz87lk-python3.12-pymp4-1.4.0-unstable-2023-08-07 \
      /nix/store/hv5cjsxaf1d6fskrfnfkbc60iiyzzbld-python3.12-pymp4-1.4.0-unstable-2023-08-07-dist \
      /nix/store/mh3r072h7rjy8lrrmqvpcg567w88b8va-python3.12-pywidevine-1.8.0 \
      /nix/store/zwpwlbfm44x7gljr3ymjw4m6znf86n7r-python3.12-pywidevine-1.8.0-dist \
      /nix/store/rjp613z1f9sk3ggkz3n6p1mw0nd2852l-python3.13-pymp4-1.4.0-unstable-2023-08-07 \
      /nix/store/r307sshs5hln1pwcbpnhssjml54j52yy-python3.13-pymp4-1.4.0-unstable-2023-08-07-dist \
      /nix/store/gqrpgwal6gz6bcm5j8h5kqxrwxw0k0j7-python3.13-pywidevine-1.8.0 \
      /nix/store/nzpz2ialvgiflyiwqcx0796ffl4v9xa8-python3.13-pywidevine-1.8.0-dist
  • x86_64-darwin
    nix-store -r --add-root nixpkgs-pr-432872-x86_64-darwin \
      --option binary-caches 'https://cache.nixos.org/ https://yzhou216.cachix.org' \
      --option trusted-public-keys '
      cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
      yzhou216.cachix.org-1:O7nGwQnLGGBGE8zYFMipVzPVN956FcV57y9SqwEP+O8=
      ' \
      /nix/store/2av9ccfca264li9fwid7x6bihnff1qq9-gamdl-2.8 \
      /nix/store/lg4jwjxrn6si3l8d8v3a1gvcqzc1hpxk-gamdl-2.8-dist \
      /nix/store/wy7bfvfpc55qgq5gfqqsnsnai6lhp0k2-python3.12-pymp4-1.4.0-unstable-2023-08-07 \
      /nix/store/fwik8impm79js890dj1n9qd3px3nfhc8-python3.12-pymp4-1.4.0-unstable-2023-08-07-dist \
      /nix/store/jlsj6qs4yk3fb5qqvmrns657kcrb403p-python3.12-pywidevine-1.8.0 \
      /nix/store/rm3rwn097mr2xp1z2nrh69qz770ddmsv-python3.12-pywidevine-1.8.0-dist \
      /nix/store/g16zl6vwmi9ml99f5hsm31bgxy8xzdix-python3.13-pymp4-1.4.0-unstable-2023-08-07 \
      /nix/store/v5vf3r8ng6mmfry6v17qz1937q714337-python3.13-pymp4-1.4.0-unstable-2023-08-07-dist \
      /nix/store/x5gmd4c948wh6byagbm89xd8nrm07lwm-python3.13-pywidevine-1.8.0 \
      /nix/store/408x09kgkdghvrc0rnlxqkvs387l2nhm-python3.13-pywidevine-1.8.0-dist
  • aarch64-darwin
    nix-store -r --add-root nixpkgs-pr-432872-aarch64-darwin \
      --option binary-caches 'https://cache.nixos.org/ https://yzhou216.cachix.org' \
      --option trusted-public-keys '
      cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
      yzhou216.cachix.org-1:O7nGwQnLGGBGE8zYFMipVzPVN956FcV57y9SqwEP+O8=
      ' \
      /nix/store/qxp34l0m8qq48z5vcm422jjqkfxa8mhj-gamdl-2.8 \
      /nix/store/i4giasr1b85afbaxa54z9vxd4pl07yp7-gamdl-2.8-dist \
      /nix/store/lnv4nv5i4bdp231c5c3lvkgvv20v89m2-python3.12-pymp4-1.4.0-unstable-2023-08-07 \
      /nix/store/19cc0xgggxrsk24s3g46pg1zyf124wj4-python3.12-pymp4-1.4.0-unstable-2023-08-07-dist \
      /nix/store/gc9zn7g7045y592ni9zldkal142yq8wg-python3.12-pywidevine-1.8.0 \
      /nix/store/z117crw75danxj4p17bdddpv8hlcvn6b-python3.12-pywidevine-1.8.0-dist \
      /nix/store/6n9gaijm78vyds1cgf6l22h8mp8l8l5f-python3.13-pymp4-1.4.0-unstable-2023-08-07 \
      /nix/store/l090hnizdykn9pkpqidhv87blszfil5i-python3.13-pymp4-1.4.0-unstable-2023-08-07-dist \
      /nix/store/n9iwgjpilmgh8wfpzrgnb4iwdpqkijmk-python3.13-pywidevine-1.8.0 \
      /nix/store/cc3pfbkjvblbqm3pxc36r6ryd5xka000-python3.13-pywidevine-1.8.0-dist

x86_64-linux

✅ 10 packages built:
  • gamdl
  • gamdl.dist
  • python312Packages.pymp4
  • python312Packages.pymp4.dist
  • python312Packages.pywidevine
  • python312Packages.pywidevine.dist
  • python313Packages.pymp4
  • python313Packages.pymp4.dist
  • python313Packages.pywidevine
  • python313Packages.pywidevine.dist

aarch64-linux

✅ 10 packages built:
  • gamdl
  • gamdl.dist
  • python312Packages.pymp4
  • python312Packages.pymp4.dist
  • python312Packages.pywidevine
  • python312Packages.pywidevine.dist
  • python313Packages.pymp4
  • python313Packages.pymp4.dist
  • python313Packages.pywidevine
  • python313Packages.pywidevine.dist

x86_64-darwin (sandbox = true)

✅ 10 packages built:
  • gamdl
  • gamdl.dist
  • python312Packages.pymp4
  • python312Packages.pymp4.dist
  • python312Packages.pywidevine
  • python312Packages.pywidevine.dist
  • python313Packages.pymp4
  • python313Packages.pymp4.dist
  • python313Packages.pywidevine
  • python313Packages.pywidevine.dist

aarch64-darwin (sandbox = true)

✅ 10 packages built:
  • gamdl
  • gamdl.dist
  • python312Packages.pymp4
  • python312Packages.pymp4.dist
  • python312Packages.pywidevine
  • python312Packages.pywidevine.dist
  • python313Packages.pymp4
  • python313Packages.pymp4.dist
  • python313Packages.pywidevine
  • python313Packages.pywidevine.dist

@yzhou216 yzhou216 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved automatically following the successful run of nixpkgs-review.

@nixpkgs-ci nixpkgs-ci Bot added the 12.approvals: 1 This PR was reviewed and approved by one person. label Jan 1, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is doCheck = false here?

@bdim404 bdim404 Jan 3, 2026

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tests are disabled because 10 out of 27 tests fail with offset/end field mismatches.

All failing tests show the same pattern:

  • Expected: offset=0, end=X
  • Actual: offset=4, end=X+4

This indicates a 4-byte offset discrepancy (the size of an MP4 box header),likely due to changes in the construct library behavior or outdated test expectations. The library itself remains functional for its intended use (as a dependency for gamdl), so tests are disabled to allow packaging.

Failed tests:

  • test_ftyp_parse, test_mdhd_parse, test_smhd_parse, test_stsd_parse
  • test_tenc_parse
  • test_iden_parse, test_payl_parse, test_sttg_parse, test_vlab_parse, test_vttC_parse

@bdim404
bdim404 requested a review from Sigmanificient January 3, 2026 15:45
@nixpkgs-ci nixpkgs-ci Bot added the 8.has: package (new) This PR adds a new package label Jan 26, 2026
@nixpkgs-ci nixpkgs-ci Bot added the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Jul 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md 6.topic: python Python is a high-level, general-purpose programming language. 8.has: package (new) This PR adds a new package 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 12.approvals: 1 This PR was reviewed and approved by one person.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants