A medida que entramos en la era de la IA, todo parece acelerarse a una velocidad sin precedentes. Generativo esto, generativo aquello: sobrecarga de datos por todas partes. Estoy bastante seguro de que ya estás mentalmente fatigado por tanta información, así que vayamos al grano, ¿de acuerdo?
Lo que quiero hacer:
Vídeo de YouTube → Información resumida → Aprendizaje ✨ + Compartir en redes sociales 🐦
… Eso es todo …
En esta carrera de la IA, todo gira en torno a la velocidad. Si podemos aprovechar la IA para acelerar nuestro aprendizaje, ¿por qué no? Así que comparte esto, ya sea con tu familia, amigos o seguidores, o incluso como influencer.
Repositorio: https://github.com/WorkSmarter-lol/yt2tweets-cli/
Este tutorial solo funciona para videos de YouTube con subtítulos en inglés y no es aplicable a YouTube Shorts.
Antes de comenzar, es fundamental tener algunos conocimientos básicos sobre cómo funcionan LangChain.js , Prompt Engineering y OpenAI Models .
En mi caso, estoy usando yarn para comenzar el desarrollo. En cuanto a un inicio rápido para probar el script, hice un MVP rápido usando CLI para probar el proyecto.
Para una referencia rápida y un nombre pegadizo, lo llamé “ yt2tweets
”, que esencialmente significa → “ YouTube to Tweets
”.
$ yt2tweets "https://youtu.be/1-TZqOsVCNM" # Result: # Tweet 1: Introduction ... 🧵👇 (1/X) # Tweet 2: ... 🧵 (2/X) # Tweet 3: ... 🧵 (3/X) # Tweet 4: ... 🧵 (4/X) # Tweet 5: Conclusion ... 🧵 (5/X)
Lo ideal sería proporcionar la transcripción como contexto para el modelo de IA, que es GPT-4o-mini en nuestro caso, para que pueda comprender el contexto y resumir la entrada en el formato de salida que especificamos.
Aquí radica la fórmula secreta ✨ para que las cosas funcionen: la ingeniería rápida es una habilidad básica necesaria para realizar el trabajo.
Para personalizar la forma en que la CLI convierte los videos de YouTube en hilos de Twitter/X, sigue la sencilla y fácil configuración de 3 pasos que he definido. Puedes ajustar el tono, la duración y el estilo para que se ajusten a tus necesidades. Para guiar a la IA, sigue el bloque de inserción que aparece a continuación para que el proceso de configuración sea sencillo.
Establezca el rol y los objetivos de la IA con el bloque Identidad y propósito. Defina su función y sus objetivos para garantizar que genere contenido que se ajuste a sus necesidades y los resultados deseados.
Define las acciones paso a paso que debe seguir la IA, garantizando un enfoque claro y estructurado para generar tu contenido.
Especifique los formatos en los que la IA debe entregar el contenido.
Ejemplo como el siguiente:
import { ChatPromptTemplate } from '@langchain/core/prompts'; const prompt = ChatPromptTemplate.fromMessages([ { role: 'system', content: ` # IDENTITY AND PURPOSE {identity} # STEPS {steps} # OUTPUT INSTRUCTIONS {formats} # INPUT INPUT: {input} `, }, ]);
{input}
es donde pongo toda la transcripción para que GPT haga el resumen.
La referencia sobre cómo agregué mi mensaje se puede encontrar aquí , con un ejemplo a continuación:
Por último, para que funcione, debes tener instalado @langchain/openai
y lista tu clave API de OpenAI. Una vez que todo esté resuelto, puedes iniciar el modelo y comenzar a pasar indicaciones y feeds a la IA para obtener una respuesta.
import { ChatOpenAI } from '@langchain/openai'; // Instantiate Model const llm = new ChatOpenAI({ modelName: 'gpt-4o-mini', temperature: 0.7, // <-- feel free to adjust temperature here apiKey, }); // ... // add prompts here // ... // Ensure that chain.invoke correctly passes the variables result = await prompt.pipe(llm).invoke({ identity, steps, formats, input, }); // get result console.log('>> result?.content'); // Tweet 1: Introduction ... 🧵👇 (1/X) ...
Para mayor comodidad, exporté la función como CLI para que me resulte fácil usarla en el futuro.
Para lograrlo utilicé:
A continuación se proporciona un fragmento del código (el código completo al final):
import { Command } from 'commander'; import chalk from 'chalk'; import ora from 'ora'; const spinner = ora('Loading...'); // Initialize the command line interface const program = new Command(); // Command to convert a YouTube URL program .argument('<url>') .description('Turn YouTube Videos into Twitter Threads with AI') .action(async url => { const apiKey = readApiKey(); // Read the saved API key // ... spinner.start(); await convertYt2Tweets(url, apiKey); // ... });
https://github.com/WorkSmarter-lol/yt2tweets-cli
Nuevamente, espero que este proyecto te ayude a acelerar tu aprendizaje y a digerir el contenido de YouTube, o compartirlo con tus amigos, familiares y seguidores.
Si prefieres acceder al proyecto con interfaz de usuario lista, he creado una interfaz de usuario para el mismo proyecto. Puedes encontrar el enlace a continuación:
https://yt2tweets.worksmarter.lol