Uma biblioteca PHP simples para baixar vídeos do YouTube, Instagram, X e muito mais. Alimentado por cobalto
Alimentado por cobalto
Esta biblioteca depende da API gratuita do Cobalt.
Para instalar a biblioteca pira/ytdl , você precisa usar o Composer. Execute o seguinte comando:
composer require pira/ytdlDepois de instalar a biblioteca, você pode começar a usá -lo no seu projeto PHP. Aqui está um exemplo básico:
<?php
use pira YTDL ;
require_once ' vendor/autoload.php ' ;
try {
$ ytdl = new YTDL ( ' https://www.youtube.com/watch?v=OAr6AIvH9VY ' );
$ ytdl -> setQuality ( ' 480 ' );
$ response = $ ytdl -> sendRequest ();
print_r ( $ response );
} catch ( Exception $ e ) {
echo $ e -> getMessage ();
}__construct(string $url) Inicializa a classe YTDL com um URL.
$url (string): o URL a ser usado em solicitações.setQuality(string $quality): voidDefine a qualidade do vídeo para downloads.
$quality (String): A qualidade do vídeo desejada (por exemplo, 144 , 720 , max ).Exception se a qualidade fornecida não for válida.setFilenamePattern(string $pattern): voidDefine o padrão de nome do arquivo para arquivos baixados.
$pattern (string): o padrão de nome do arquivo desejado. Padrões disponíveis:youtube_dQw4w9WgXcQ_640x360_h264.mp4youtube_dQw4w9WgXcQ_audio.mp3Video Title (360p, h264).mp4Audio Title - Audio Author.mp3Video Title (360p, h264, youtube).mp4Audio Title - Audio Author (soundcloud).mp3Video Title (360p, h264, youtube, dQw4w9WgXcQ).mp4Audio Title - Audio Author (soundcloud, 1242868615).mp3Exception se o padrão fornecido não for válido.setVCodec(string $codec): voidDefine o codec de vídeo para downloads.
$codec (string): o codec de vídeo desejado (por exemplo, h264 , av1 , vp9 ).Exception se o codec fornecido não for válido.setAFormat(string $format): voidDefine o formato de áudio para downloads.
$format (string): o formato de áudio desejado (por exemplo, mp3 , ogg , wav ).Exception se o formato fornecido não for válido.enableAudioOnly(): voidAtiva o download apenas de áudio.
enableTTFullAudio(): voidAtiva o download do som original de um vídeo Tiktok.
enableAudioMuted(): voidAtiva o silenciamento da faixa de áudio em downloads de vídeo.
enableDubLang(): voidAtiva o uso do cabeçalho de linguagem aceita para faixas de áudio de vídeo do YouTube.
enableDisableMetadata(): voidAtiva os metadados do arquivo desativando.
enableTwitterGif(): voidPermite a conversão de GIFs do Twitter em formato .gif.
enableTiktokH265(): voidAtiva os vídeos preferidos de 1080p H265 para Tiktok.
setAcceptLanguage(string $language): voidDefine o valor do cabeçalho de linguagem de aceitação de aceitação personalizada para solicitações.
$language (string): o valor do cabeçalho da linguagem acelerada personalizada.sendRequest(): arrayEnvia a solicitação configurada para a API e retorna a resposta.
Retornos:
Lances:
Exception se houver um erro ao enviar a solicitação. | chave | tipo | variáveis |
|---|---|---|
status | string | error / redirect / stream / success / rate-limit / picker |
text | string | Vários texto, principalmente usados para erros |
url | string | Link direto para um arquivo ou um link para a renderização ao vivo do Cobalt |
pickerType | string | various / images |
picker | array | Gabinete de itens de seleção |
audio | string | Link direto para um arquivo ou um link para a renderização ao vivo do Cobalt |
Fonte: documentação da API de cobalto - variáveis do corpo de resposta
Tipo de item: object
| chave | tipo | variáveis | descrição |
|---|---|---|---|
type | string | video / photo / gif | usado apenas se pickerType for various |
url | string | Link direto para um arquivo ou um link para a renderização ao vivo do Cobalt | |
thumb | string | Item Miniatura que é exibida no seletor | usado para tipos video e gif |
Fonte: Documentação da API de cobalto - Variáveis de itens do selecionador
Esta lista não é final e continua se expandindo ao longo do tempo.
| serviço | vídeo + áudio | Apenas áudio | apenas vídeo | Metadados | Nomes de arquivos ricos |
|---|---|---|---|---|---|
| bilibili.com & bilibili.tv | ✅ | ✅ | ✅ | ➖ | ➖ |
| Dailymotion | ✅ | ✅ | ✅ | ✅ | ✅ |
| Postagens e bobinas do Instagram | ✅ | ✅ | ✅ | ➖ | ➖ |
| Vídeos do Facebook | ✅ | ➖ | ➖ | ||
| tear | ✅ | ✅ | ✅ | ➖ | |
| ok vídeo | ✅ | ✅ | ✅ | ✅ | |
| ✅ | ✅ | ✅ | ➖ | ➖ | |
| ✅ | ✅ | ✅ | |||
| Rutube | ✅ | ✅ | ✅ | ✅ | ✅ |
| Snapchat Stories & Spotlights | ✅ | ✅ | ✅ | ➖ | ➖ |
| Soundcloud | ➖ | ✅ | ➖ | ✅ | ✅ |
| streamable | ✅ | ✅ | ✅ | ➖ | ➖ |
| Tiktok | ✅ | ✅ | ✅ | ||
| Tumblr | ✅ | ✅ | ✅ | ➖ | ➖ |
| Clipes Twitch | ✅ | ✅ | ✅ | ✅ | ✅ |
| Twitter/x | ✅ | ✅ | ✅ | ➖ | ➖ |
| Vimeo | ✅ | ✅ | ✅ | ✅ | ✅ |
| Arquivo de Vine | ✅ | ✅ | ✅ | ➖ | ➖ |
| Vídeos e clipes VK | ✅ | ✅ | ✅ | ✅ | |
| Vídeos do YouTube, shorts e música | ✅ | ✅ | ✅ | ✅ | ✅ |
| Emoji | significado |
|---|---|
| ✅ | suportado |
| ➖ | impossível/irracional |
| não suportado |
Fonte: Cobalt - Serviços suportados
| serviço | notas ou recursos |
|---|---|
| Suporta bobinas, fotos e vídeos. Permite escolher o que salvar de postagens multimídia. | |
| Suporta apenas o conteúdo de vídeos acessíveis ao público. | |
| Suporta fotos, GIFs, vídeos e histórias. | |
| Suporta GIFs e vídeos. | |
| Snapchat | Suporta holofotes e histórias. Permite escolher o que salvar das histórias. |
| Rutube | Suporta links yappy e privados. |
| Soundcloud | Suporta links privados. |
| Tiktok | Suporta vídeos com ou sem marca d'água, imagens da apresentação de slides sem marca d'água e áudios completos (originais). |
| Twitter/x | Permite escolher o que salvar de postagens multimídia. Pode não ser 100% confiável devido ao gerenciamento atual. |
| Vimeo | Os downloads de áudio estão disponíveis apenas para traço. |
| YouTube | Suporta vídeos, música e shorts. Vídeos de 8K, 4K, HDR, VR e High FPS. Metadados e dubs ricos. codecs H264/AV1/VP9. |
Fonte: Cobalt - Notas ou recursos adicionais por serviço
Se o suporte para um serviço que você deseja estiver faltando, crie um problema (ou uma solicitação de tração?) No repositório do GitHub do Cobalt.
Esta biblioteca está licenciada sob a licença do MIT. Consulte o arquivo de licença para obter mais detalhes.
Para qualquer dúvida ou problema, entre em contato com: