
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
A Fastify-based backend service that powers dynamic radio streaming experiences. This application enables the creation and management of customized radio stations with automated DJ voiceovers, music sequencing, and continuous streaming.
Nonstop FM Backend provides a complete infrastructure for building personalized radio experiences with AI narration and sweeper:
https://github.com/user-attachments/assets/fdb1777d-4538-4216-ae44-371f8db6f271
https://github.com/user-attachments/assets/278757f1-e755-4415-b139-52a71d4ca25a
For Linux systems, you can use the provided script:
# Make the script executable
chmod +x scripts/install-dependencies.sh
# Run the installation script
./scripts/install-dependencies.sh
For Windows:
pip install yt-dlp or download the executable from yt-dlp releasesSeveral Node.js scripts are included to help with song management:
@clack/prompts, form-data.bin directoryThe interactive song-cli.js tool handles the YouTube download and upload process in one step and is the recommended option for most users.
# Install dependencies
pnpm install
# Run in development mode with hot reload
pnpm dev
# Database migrations
pnpm migrate
# Create database migration
pnpm migrate:create add_table_users
# Rollback the last migration
pnpm migrate:down
YouTube blocks song downloads from many server IP addresses. To work around this limitation, the project includes utilities for manually downloading and uploading songs:
The easiest way to download and upload songs is with the interactive CLI tool:
# Install dependencies
npm install @clack/prompts form-data
# Run the interactive CLI
node song-cli.js
This interactive tool will:
Pre-built binaries are also available in the .bin directory for Windows, macOS, and Linux.
Since many server hosting providers have IP addresses that YouTube blocks for automated downloads, you'll often need to:
All these tools facilitate this workflow, with the interactive song-cli.js being the most user-friendly option.
The application follows a modular architecture (same as NestJS) with clear separation of concerns:
Each module follows a consistent structure:
src/modules/[module]/
├── [module].controller.ts
└── [module].service.ts
└── [module].types.ts
└── [module].utils.ts
└── [module].constants.ts
└── dto
└── [module]-voiceover.dto.ts (example)
└── ... any other files ...
Module: A self-contained feature or functionality
src/modules/Controllers: Handle HTTP requests and route them to appropriate services
src/modules/*/controller.ts (e.g., radio.controller.ts)[module].controller.tsServices: Contain business logic and application functionality
src/modules/*/service.ts (e.g., radio-core.service.ts)[module].service.tsDTOs: Data transfer objects (DTOs)
src/modules/*/dto/ (e.g., radio-voiceover.dto.ts)[name].dto.tsIMPORTANT:
Again, a module can contain only a service. Services should be encapsulated within a module, and most logic should be contained in a service to follow encapsulation and single responsibility principles.
Providers: Clients, external services, connections...
src/providers/ (e.g., elevenlabs.ts, kysely-dialect.ts)Helpers: Project-specific utility functions
src/helpers/ (e.g., migrate-latest.ts)Utils: Generic utility functions
src/utils/ (e.g., detect-project-root.ts)env.ts: Environment variables
paths.ts: Pre-defined file/directory paths for the project
Paths constant)resources: Static resources (e.g., audio files)
Paths.resourcesDir constantdownloaded_files: Locally downloaded file
migrations: Database migrations
pnpm migrate, it will run these migrations)openapi-client.ts)radio-voiceover.type.tsFAQs
Non-stop pop FM! Backend
The npm package ai-fm-cli receives a total of 2 weekly downloads. As such, ai-fm-cli popularity was classified as not popular.
We found that ai-fm-cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.