npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

cloudst

v1.0.6

Published

Modulo basico para los mini desarrolladores.

Readme

NPM Version NPM Downloads License Node

Módulo npm de scrapers y herramientas para bots de WhatsApp. Incluye descargadores, buscadores y mas...


[!TIP] Scraper modular en Node.js para distintas plataformas (Wikipedia, Mediafire, Facebook, YouTube, Pinterest y más...).
Diseñado para ser usado como módulo con import o require y ejecutado con await.


📦 Instalación

npm install cloudst

🌱 Ejemplo en Package.json

"cloudst": "^1.0.6"

🧩 Codigos!

import { mediafiredl, fbDownloader, ytplay } from 'cloudst'

// - Ejemplo Mediafire
const mf = await mediafiredl('https://www.mediafire.com/file/xxxxxx')
console.log(mf)
/*
{
  filename: "archivo.zip",
  filetype: "ZIP",
  filesize: "15 MB",
  uploaded: "2024-05-10",
  download: "https://download.mediafire.com/xxxxxx/archivo.zip"
}
*/

// - Ejemplo Facebook
const fb = await fbDownloader('https://www.facebook.com/watch/?v=xxxxxx')
console.log(fb)
/*
[
  { quality: "720p", url: "https://fbcdn.net/video720.mp4" },
  { quality: "1080p", url: "https://fbcdn.net/video1080.mp4" }
]
*/

// - Ejemplo YouTube Play
const yt = await ytplay('Bad Bunny - Tití Me Preguntó', '320k')
console.log(yt)
/*
{
  title: "Bad Bunny - Tití Me Preguntó",
  channel: "Bad Bunny",
  duration: 240,
  views: 123456789,
  published: "2 years ago",
  cdnUrl: "https://files.catbox.moe/xxxxxx.mp3",
  fileName: "Tití_Me_Preguntó.mp3"
}
*/
import { wiki, tiktokSearch, pinterestSearch } from 'cloudst'

// - Ejemplo Wikipedia
const results = await wiki('Colombia')
console.log(results)
/*
[
  { title: "Colombia", snippet: "Colombia es un país situado en América del Sur..." },
  { title: "Historia de Colombia", snippet: "La historia de Colombia comienza con..." },
  { title: "Geografía de Colombia", snippet: "Colombia cuenta con regiones diversas..." }
]
*/

// TikTok
const tk = await tiktokSearch('Bad Bunny')
console.log(tk)
/*
{
  "status": true,
  "data": [
    {
      "title": "Funny dance",
      "id": "7234567890",
      "dl": "https://tikcdn.com/play/xxxx.mp4",
      "watermark": "https://tikcdn.com/wmplay/xxxx.mp4",
      "music": {
        "title": "Dance Song",
        "author": "DJ Test",
        "url": "https://tikcdn.com/music/xxxx.mp3"
      },
      "duration": "0:30",
      "cover": "https://tikcdn.com/cover/xxxx.jpg",
      "author": {
        "nickname": "user123",
        "unique_id": "user12345"
      },
      "stats": {
        "likes": 1200,
        "comments": 45,
        "shares": 10,
        "views": 5000,
        "downloads": 200
      }
    }
  ]
}
*/

// Pinterest
const pin = await pinterestSearch('paisajes', 10)
console.log(pin)
/*
{
  "status": true,
  "data": [
    {
      "title": "Paisaje de montaña",
      "id": "987654321",
      "description": "Hermoso paisaje al amanecer",
      "username": "naturelover",
      "full_name": "Nature Lover",
      "followers": 1200,
      "likes": 300,
      "created": "2024-05-10",
      "hd": "https://pinterest.com/img/large.jpg",
      "mini": "https://pinterest.com/img/small.jpg"
    }
  ]
}
*/
import { Copilot, ai } from 'cloudst'

// Copilot
const copilot = new Copilot()
const r1 = await copilot.chat("Explica qué es Node.js", "default")
console.log(r1)
/*
{
  text: "Node.js es un entorno de ejecución para JavaScript basado en el motor V8 de Chrome..."
}
*/

// ChatGPT (ConciseAI)
const r2 = await ai.chat("Dame un resumen de la película Matrix")
console.log(r2)
/*
{
  status: true,
  result: "Matrix es una película de ciencia ficción de 1999 dirigida por las hermanas Wachowski..."
}
*/
import { stickerlySearch, stickerlyDetail } from 'cloudst'

// - Ejemplo StickerLy Search
const packs = await stickerlySearch('anime')
console.log(packs)
/*
[
  {
    name: "Anime Stickers Pack",
    author: "Usuario123",
    stickerCount: 25,
    viewCount: 10234,
    exportCount: 543,
    isPaid: false,
    isAnimated: true,
    thumbnailUrl: "https://cdn.sticker.ly/xxxx/tray.png",
    url: "https://sticker.ly/s/abcd1234"
  },
  {
    name: "Naruto Pack",
    author: "OtakuFan",
    stickerCount: 40,
    viewCount: 20456,
    exportCount: 1200,
    isPaid: false,
    isAnimated: false,
    thumbnailUrl: "https://cdn.sticker.ly/yyyy/tray.png",
    url: "https://sticker.ly/s/efgh5678"
  }
]
*/

// - Ejemplo StickerLy Detail
const detail = await stickerlyDetail('https://sticker.ly/s/abcd1234')
console.log(detail)
/*
{
  name: "Anime Stickers Pack",
  author: {
    name: "Usuario123",
    username: "usuario123",
    bio: "Fan del anime",
    followers: 500,
    following: 120,
    isPrivate: false,
    avatar: "https://cdn.sticker.ly/avatar.png",
    website: "https://usuario123.com",
    url: "https://sticker.ly/u/usuario123"
  },
  stickers: [
    {
      fileName: "naruto.png",
      isAnimated: false,
      imageUrl: "https://cdn.sticker.ly/abcd/naruto.png"
    },
    {
      fileName: "goku.gif",
      isAnimated: true,
      imageUrl: "https://cdn.sticker.ly/abcd/goku.gif"
    }
  ],
  stickerCount: 25,
  viewCount: 10234,
  exportCount: 543,
  isPaid: false,
  isAnimated: true,
  thumbnailUrl: "https://cdn.sticker.ly/abcd/tray.png",
  url: "https://sticker.ly/s/abcd1234"
}
*/

[!CAUTION]
El módulo aún no está al 100% estable.
Puede presentar fallas o cambios inesperados en sus scrapers debido a modificaciones en las plataformas.


[!IMPORTANT] Los scrapers generan JSON dinámicos que dependen de la estructura actual del servicio.
Ten en cuenta que estos datos no siempre son precisos ni estables, ya que las plataformas pueden cambiar su HTML o API en cualquier momento.
Para depurar y validar la salida, se recomienda usar console.log y revisar los objetos completos antes de integrarlos en tu bot.


[!NOTE] Los scrapers usan cabeceras y técnicas específicas para obtener enlaces directos.
Algunos servicios pueden cambiar su HTML/API, por lo que el scraper podría necesitar ajustes.
ytplay soporta bitrate 128k y 320k.