Github Education Application Tutorial
Github 105

前言

对于每一位热爱编程与技术的学生而言,GitHub 学生开发者包无疑是一座金矿,它集成了众多顶级的开发工具、云服务和学习资源,能极大地助力你的学习和项目实践。但这份“大礼包”的获取之路,有时也并非一帆风顺。

本教程专为那些在申请 GitHub 学生包过程中遇到困惑,特别是面临地理位置限制、学生证上传不便,或因 OBS 虚拟摄像头无法正常工作而烦恼的同学们量身打造。我们将以哈佛大学的申请流程为例,详细拆解每一个步骤,分享包括指纹浏览器配置、Tampermonkey 油猴脚本应用、OBS Studio 技巧乃至注册表修改等多种实用方法。无论你是初次尝试,还是屡次受挫,都希望本文能为你指明方向,助你成功解锁这份专属福利。

准备工具

  1. OBS Studiohttps://obsproject.com

  2. Tampermonkey Extensionhttps://www.tampermonkey.net/

  3. 有效的学生邮箱一个

  4. 代理工具

  5. 指纹浏览器(非必需)


大致流程

  1. 打开指纹浏览器,创建环境,主要修改一下位置信息为你所要申请的学校位置,经纬度可以在Google地图上获取。
    如图,搜索并选择Harvard University后,地址栏有纬度,经度,缩放级别,对应填写即可。

  2. 准备好学校所在州的代理(如有学校自带的VPN最好),打开环境,访问Github官网注册页进行注册。

    - 填写邮箱(学生邮箱),用户名,密码,人机验证,验证码,过程略。

  3. 注册完成后打开设置,修改一下部分内容:
    - 首先修改Public profile,主要填写Name和修改头像。
    - 其次修改Billing and licensing子菜单的Payment information,地址从Google地图上找住宅地址对应填写即可。
    - 最后修改Password and authentication,主要是添加Two-factor authentication,推荐添加Authenticator app。

  4. 完成上述修改后,打开Education benefits,点申请,选择学生、学校,分享位置,接着继续下一步,选择第一项学生卡证明,拍摄或上传学生证,提交即可。


细节部分

位置修改

  • 如果没有使用指纹浏览器,可以在开发者工具(F12)中修改,位置如图。

  • 打开传感器,对应修改位置即可。


上传照片

如果无法上传照片,我们还可以采取其他方法,如:

Tampermonkey

脚本来源

wooncha大佬提供的脚本,后经bqx619大佬修正后的脚本

使用方法

  1. 安装脚本

  2. 打开GitHub Education · GitHub 点击“Join GitHub Education”

  3. 点击Load按钮,上传学生证照片

  4. 点击“Start an application”,点击Student,然后这里注意一定要手动输入自己的学校名称,不能点“Use this School”,否则会修改不到定位。

  5. 点击继续,选择1号School ID ,然后打开摄像头,设置没问题的话就可以看到自己的学生证图片了,点击确认上传即可。

脚本代码

代码具体内容需注册为Linux Do成员并升级为二级后方可查看,注册方式见https://halo.musifei.live/archives/1747847251573


OBS Studio

使用方法

  • 下载OBS Studiohttps://obsproject.com ,安装并打开。

  • 准备好学生证,调整好角度,启动虚拟摄像机

  • 注意:如果虚拟摄像头无法替换,可以尝试禁用原有的所有摄像头,然后重新启用虚拟摄像头。

特殊说明

  • 如果使用OBS Studio遇到下面的提示,请使用下述方法修改注册表后,即可解决。

  • 注意:修改注册表有风险,请谨慎操作,运行前请备份注册表。

使用方法
  1. 第一个代码块 :

    • 这是一个 Windows 批处理脚本

    • 应该保存为 .bat 文件。

    • 例如:run_powershell_admin.bat

    @echo off
    chcp 65001 > nul
    setlocal enabledelayedexpansion
    
    echo Starting script execution...
    
    REM 检查是否以管理员权限运行
    NET SESSION >nul 2>&1
    if %errorlevel% neq 0 (
        echo This script requires administrator privileges.
        echo "右键以管理员身份运行."
        pause
        exit /b 1
    )
    
    echo Attempting to run PowerShell script...
    
    REM 直接调用 PowerShell 执行脚本
    powershell -NoProfile -ExecutionPolicy Bypass -File "%~dp0modify_registry.ps1"
    
    if %errorlevel% neq 0 (
        echo An error occurred while running the PowerShell script.
    ) else (
        echo PowerShell script executed successfully.
    )
    
    echo.
    echo Script execution completed.
    pause
  2. 第二个代码块 :

    • 这是一个 PowerShell 脚本

    • 应该保存为 .ps1 文件。

    • 这个文件应该命名为 modify_registry.ps1 并与 .bat 文件放在同一目录下。

    # 检查管理员权限
    if (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
        Write-Host "请以管理员权限运行此脚本!"
        Exit
    }
    
    # 定义搜索和替换值
    $searchValue = "OBS Virtual Camera"
    $replaceValue = "Logitech c1000e"
    
    # 定义搜索路径
    $registryPaths = @(
        "HKLM:\SOFTWARE\Classes\CLSID",
        "HKLM:\SOFTWARE\WOW6432Node\Classes\CLSID"
    )
    
    $modifiedList = @()
    
    foreach ($path in $registryPaths) {
        Write-Host "搜索路径: $path"
        if (Test-Path $path) {
            Get-ChildItem -Path $path -Recurse -ErrorAction SilentlyContinue | ForEach-Object {
                $key = $_
                $key | Get-ItemProperty -ErrorAction SilentlyContinue | ForEach-Object {
                    $properties = $_.PSObject.Properties | Where-Object { $_.Value -is [string] -and $_.Value -like "*$searchValue*" }
                    foreach ($prop in $properties) {
                        try {
                            Set-ItemProperty -Path $key.PSPath -Name $prop.Name -Value $replaceValue -ErrorAction Stop
                            $modifiedList += "路径: $($key.Name), 键: $($prop.Name), 新值: $replaceValue"
                            Write-Host "已修改: $($key.Name) -> $($prop.Name)" -ForegroundColor Green
                        } catch {
                            Write-Host "无法修改: $($key.Name) -> $($prop.Name). 错误: $($_.Exception.Message)" -ForegroundColor Red
                        }
                    }
                }
            }
        } else {
            Write-Host "路径不存在: $path" -ForegroundColor Yellow
        }
    }
    
    if ($modifiedList.Count -gt 0) {
        Write-Host "`n修改的内容列表:"
        $modifiedList | ForEach-Object { Write-Host $_ }
    } else {
        Write-Host "`n未找到需要修改的内容。"
    }
    
    Write-Host "`n脚本执行完毕。按任意键退出..."
    $null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
  3. 将这两个代码分别正确保存在同一目录,然后右键以管理员身份运行 .bat 文件即可,运行结果大致如下:

    
    Starting script execution...
    Attempting to run PowerShell script...
    搜索路径: HKLM:\SOFTWARE\Classes\CLSID
    已修改: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{860BB310-5D01-11d0-BD3B-00A0C911CE86}\Instance\{A3FCE0F5-3493-419F-958A-ABA1250EC20B} -> FriendlyName
    已修改: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{A3FCE0F5-3493-419F-958A-ABA1250EC20B} -> (default)
    搜索路径: HKLM:\SOFTWARE\WOW6432Node\Classes\CLSID
    已修改: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Classes\CLSID\{860BB310-5D01-11d0-BD3B-00A0C911CE86}\Instance\{A3FCE0F5-3493-419F-958A-ABA1250EC20B} -> FriendlyName
    已修改: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Classes\CLSID\{A3FCE0F5-3493-419F-958A-ABA1250EC20B} -> (default)
    
    修改的内容列表:
    路径: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{860BB310-5D01-11d0-BD3B-00A0C911CE86}\Instance\{A3FCE0F5-3493-419F-958A-ABA1250EC20B}, 键: FriendlyName, 新值: Logitech c1000e
    路径: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{A3FCE0F5-3493-419F-958A-ABA1250EC20B}, 键: (default), 新值: Logitech c1000e
    路径: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Classes\CLSID\{860BB310-5D01-11d0-BD3B-00A0C911CE86}\Instance\{A3FCE0F5-3493-419F-958A-ABA1250EC20B}, 键: FriendlyName, 新值: Logitech c1000e
    路径: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Classes\CLSID\{A3FCE0F5-3493-419F-958A-ABA1250EC20B}, 键: (default), 新值: Logitech c1000e
    
    脚本执行完毕。按任意键退出...
    PowerShell script executed successfully.
注意事项
  • 请以管理员权限运行此脚本。

  • 本脚本是将摄像头名称从OBS Virtual Camera替换为Logitech c1000e,可以根据实际情况修改被替换值。

申请状态

  • 初审通过(Approved)
    进入审查程序,权益未获取

  • 终审通过(Coupon applied)
    恭喜,权益已可以正常使用!

  • 机器拒绝(Denied)
    看提示是哪里有问题,对应改就行,尽可能不要多的被机器拒绝

  • 人工拒绝(Revoked)
    如果出现这种情况,那么账号已经被标记,主要体现为申请时提示要联系GitHub支持或者点击申请跳转付费使用界面。
    若为真实学生,发工单就行;
    若不是,建议删号,静置几天后重新注册(此种情况下,如若通过应尽快使用所有权益,因为随时会被人工拒绝)

结语

成功申请 GitHub 学生开发者包,无疑能为你的学习和项目开发带来巨大便利。

虽然部分操作可能初看略显复杂,但通过本文的指引,希望能让整个过程更加清晰和易于操作。掌握这些技巧不仅能帮助你顺利获得学生包,也能提升你解决实际问题的能力。

再次提醒,操作时请务必细心,特别是涉及系统修改的部分,确保理解每一步的含义和潜在风险。

预祝大家都能成功解锁 GitHub 的学习宝库,开启更广阔的编程探索之旅!


ℳ𝓊𝓈𝒾𝒻ℯ𝒾

Github Education Application Tutorial
https://sifeimu.me/archives/1747834006146
作者
Musifei
发布于
更新于
许可